Settings

Theme

Ask HN: How do you like developing on an M1 Mac so far?

135 points by robotcookies 5 years ago · 134 comments · 1 min read


I know VMs don't work for it yet. How has been otherwise programming on a mac with arm chip?

tbrock 5 years ago

I have the M1 MacBook Air and it’s best computer I’ve ever owned, hands down. Brought me back to Mac from my X1 carbon 6th gen running Linux (arch btw).

The machine itself?

     - Faster than blue blazes
     - Dead silent
     - Cold to the touch (even when cranking)
     - Has excellent screen and keyboard
     - No touchbar
     - Has bonkers battery life
     - Comes with tiny a/c adapter that charges it quickly
When I say fast I mean desktop processor fast. It hauls ass.

I do all of my development remotely via ssh and local forwards so the different platform doesn’t affect me at all.

Kinda bummed that I can only hook one LG5k display in at a time but whatever, that is kind of a fringe desire anyway. If there was a 14/16" version I'd throw money at Apple again.

Once I compared zoom using 120% cpu on my intel Mac to 30% cpu on my apple silicon Mac it was game over. The processors are just more efficient in so many ways. I've been pretty jaded on hardware recently but this made me sit up and go "holy crap" everything else just became obsolete.

Unless you have something x86 specific you need to be doing locally or need a huge screen do not hesitate to buy this machine. Apple has knocked it out of the park.

  • ataylor32 5 years ago

    Can you elaborate on this?:

    > I do all of my development remotely via ssh and local forwards

    I do a little with SSH tunnels, but not much. Do you mean you have it set up so that on your Mac you can go to localhost:8080 (or whatever) in your browser and it will actually go to the remote machine?

    • tbrock 5 years ago

      Yes, just set up a localforward in your .ssh/config like this:

          Host dev
              HostName <ip_of_dev_box>
              User <my_username>
              ForwardAgent yes
              AddKeysToAgent yes
              IdentityFile ~/.ssh/id_m1_air
              LocalForward 8443 localhost:8443
              LocalForward 8080 localhost:8080
              LocalForward 8065 localhost:8065
              LocalForward 3000 localhost:3000
              ...
      
      Those line's effectively mean forward my local port 8443 to the remote host's 8443. The local port + remote port (and even the remote host) don't need to be the same.

      Since it’s forwarding a TCP port your aren’t limited to forwarding just the web traffic either. I forward:

          - Database ports (run mysql or psql locally for example)
          - Docker socket
          - Backend api ports
          - Redis port
          - Webserver port
      
      And more...

      Then you just use local clients as if those things were all running on your local machine

    • beagle3 5 years ago

      It’s worth reading a bit about sshuttle. It basically leverages ssh into a simple one way VPN as far as ergonomics and user experience go (but the underlying implementation is closer to opening LocalForward connections on demand).

      Highly recommended.

      • crgwbr 5 years ago

        Almost as easy: just setup a point to point WireGuard tunnel. I used sshuttle for remote Docker dev for a while, but found that WireGuard way outperforms it.

        • beagle3 5 years ago

          sshuttle is definitely no efficiency daemon - however, it only requires being able to ssh to the other side, amd run Python there, and that’s it - whereas for Wireguard you need root on the other side, a sufficiently new kernel (or building an out of kernel module) - it’s way better if you can use it but IME it isn’t “almost as easy” - sshuttle usually just works if you can ssh.

  • mraza007 5 years ago

    Hey do you miss using Arch linux when you moved to m1 Mac

    • tbrock 5 years ago

      Yes I do. I love my Linux setup but I was getting sick of my computer performing like dogshit when I needed to be on a video call screen share AND do something at the same time.

      • mraza007 5 years ago

        I see I have been using Arch on my Dell XPS 13 running i3wm I’m kinda hesitant to switch to mac as I would loose the power to customize my environment compared to linux

  • kyawzazaw 5 years ago

    > i use arch btw

    :)))

cordite 5 years ago

I got mine this week, I'm surprised it doesn't even blow hot air while building node from source.

However, I am greatly disappointed in the fact that I cannot use both usb-c for displays, only one of them. I did not know of this limitation until I discovered things were not working as expected.

Everything is super responsive, it's far better than the 2014 mac mini (4GB of ram) with 2020 SSD.

Rosetta 2 seems to work without any hitches so far.

I tried running some iOS apps, but it seems the ones available don't run all that well. From the ones I could install, it is nice to receive app notifications!

  • 6gvONxR4sf7o 5 years ago

    I’m so frustrated by what apple has done with externals in the last few iterations, especially displays. I am an outlier in that I use three external displays, and my current MacBook can just barely support it if I make sure to spread my devices over separate usb-c dongles. If I try to put keyboard, mouse, power, and monitor on a single advertised as supporting multiple USB and power and HDMI, the keyboard and especially mouse stop working correctly, even with “just” two external monitors. I thought things were moving in a direction where I’d have one hub/dock I plug all my peripherals into, leaving one cord to plug into the laptop, but now I have a maze of dongles I have to load balance!

    I don’t mind what they did on phones with the headphone jack, because they provided an excellent alternative. On MacBooks, they just take away ports without a solid replacement.

    • matthewmacleod 5 years ago

      Have you looked at the larger Thunderbolt hubs, rather than one of the cheaper and more ubiquitous USB-C dongles?

      I use a 15" MacBook Pro and a Caldigit TS3+ – more expensive, but I have a single cable supplying power, a bunch of USB ports, Ethernet, audio, an SD reader and 2x4k monitors. It pretty much feels like magic and has been completely flawless. It won't run three screens though – I do sometimes use a third myself, but that needs an additional direct HDMI -> USB-C cable.

      • zebnyc 5 years ago

        I usually use 3 external monitors and I just ordered the new M1 Mac Mini last week. I am having trepidations about buying a port expander which is almost half as expensive as the machine itself.

      • Terretta 5 years ago

        I own that magic box, mine runs 3 x 4K screens, via two USB-C and one DisplayPort. I have it plugged to right rear port because of the charging heat rumors.

        Rumor source: https://apple.stackexchange.com/questions/363337/how-to-find...

        EDIT: Not HDMI, DisplayPort.

      • rmilk 5 years ago

        Same here - using OWC (MacSales.com) TB3 hub on Mini 2018 for 4K and 1K display, supports up to 2x4K. Haven’t seen any that support 3 screens. Has USB A and C connectors, wired Ethernet, etc. They also have smaller versions, for example without Ethernet. Works from boot with MacOS and Windows. Only issue is with Windows safe mode (!).

      • 6gvONxR4sf7o 5 years ago

        Even that wouldn't support three monitors, right? I think I read somewhere that the 2019+ macbooks only support two monitors per side of the laptop, so not three through one USB-C port.

        • matthewmacleod 5 years ago

          Nope - as I mentioned above, it won’t work with three screens. You’ve got a minimum of two cables for three screens, unfortunately!

  • throw14082020 5 years ago

    Dual monitor (1hdmi + 1usbc) and small performance improvement (from benchmarks on youtube) is why I went with Mac Mini 8GB (Because 16GB ram didn't make a difference)

    • jeffbee 5 years ago

      The macbook does have dual displays, it's just that one of them is included.

  • ericol 5 years ago

    > it's far better than the 2014 mac mini (4GB of ram) with 2020 SSD

    Can you explain this a little better? I have a MAc Mini 2014 lying around that never got to put to good use (I inherited it when my father died) and one of my daughters tried to use for video editing but deciding against because of the memory limitations.

    Would you say even thought with the little RAM it is still good?

    • cordite 5 years ago

      So, I could dabble around in codepen on it, but if I try running Spotify, discord, a couple more tabs on the side, it becomes less responsive as memory pressure ramps up. It’s nearly impractical to use the chrome inspector.

      To get around that I’ve tried using both Spotify and discord in browser, and occasionally Spotify will cut out for a few seconds.

      At one point I resorted to using xquartz to run a few things remotely. It was.. okay but frankly vnc performed better.

    • ghufran_syed 5 years ago

      Not for video editing, and unfortunately the 2014 Mac mini doesn't allow upgrading the ram

    • InvaderFizz 5 years ago

      2014 Mini is nearly useless. It's a mobile dual core cpu.

  • yesimahuman 5 years ago

    Beyond two monitors, definitely noticing less consistent external display connectivity. Often have to cycle between closing and opening the lid to finally get it to connect. Unsure if that's just a Big Sur regression, however.

    • grishka 5 years ago

      I remember seeing a tweet from an Apple engineer saying how monitors sometimes break specs in all kinds of ways and how much they had to work around.

terhechte 5 years ago

- I had some trouble building the Rust lang toolchain (wanted to work on a PR), haven't tried again (used my other machine instead).

- The battery life is great.

- Something I wouldn't have thought is how much I enjoy that the machine is not heating up under stress. Difficult to describe, but that is really really nice

- I have the MBP and the only time I heard the fan was when I compiled the Rust toolchain.

- Tried to run Linux in Parallels but that didn't work (some sort of weird error, didn't investigate further)

- Within Xcode/Swift everything works as expected, just much faster ;)

- My M1 has problems when I'm connecting my external 5K display. It works great, but when I put the M1 to sleep and wake it up again it can't find the display anymore. Even plugging it in / out doesn't help. I read somewhere that that'll soon be fixed with a software update.

- I had higher hopes for the ability to run iOS apps. I really wanted Netflix and Amazon Alexa to work. I hope they'll reverse their stance to not support M1s at some point.

Overall, I'm very happy with the M1, but I still have a 2018 Mac mini that continues to be my main machine. I bought the M1 because I have an upcoming Mac app that I've worked on for ~2 years and I wanted to make sure it works on M1 (https://hyperdeck.io).

  • f6v 5 years ago

    All my MBPs were frustrating when it came to thermals. I can’t believe you can do programming with passively cooled Air.

  • l3s2d 5 years ago

    I wonder if Netflix is holding out for DRM-related reasons. I'd guess their VMP checks are broken when an iOS app is running on a Mac.

Abishek_Muthian 5 years ago

Also M1 owners, I would also like to know how much 8/16 GB memory has affected your workflow/productivity assuming you previously had at least 32GB RAM?

e.g. Those who never closed their apps before, kept several browsers with several dozen tabs, Note taking apps, IDE, VM etc. all the time.

Is lighting fast opening of apps on M1 = Never having to close the apps in any machine with large RAM?

  • photokandy 5 years ago

    My perspective: Going from a 2019 15" MacBook Pro with 16GB of memory to an 8GB M1 13" MacBook Pro

    You don't start to feel the 8GB until you:

    * have a lot of tabs open in Safari (like ~30+)

    * have heavy web apps (GMail & Outlook, I'm looking at you)

    * run a virtual machine (Only so much you can give a Parallels instance w/ 8GB)

    * run some known performance & memory hogs (Slack, Teams, etc.)

    * vpn seems to slow things down a bit

    I generally will close down apps when I don't need them (but that's _always_ been my habit). I do find the M1 to be fully sufficient (and still faster than my previous MBP) when doing my day-to-day (including VS Code, JIRA, Slack, Xcode, Node, etc.). I also use my M1 for music performance and composition, and that's worked just fine for my purposes (but so did the previous MBP). I will (as I did before) switch contexts by closing apps I don't need, so it's hard to say if apps from development impact the apps for music or not; they rarely run side-by-side.

    Things that have greatly improved my productivity:

    * This thing is as cool as a cucumber, and absolutely sips its battery. This means I can be more comfortable taking my MBP to the couch, or to the patio (when it was warm) and not worry about watching the battery %.

    * This thing _in general_ is much snappier. Native apps load quickly, and performance in the apps I use is about twice that of the previous MBP.

    * I can type on this keyboard!

    * Using a single external monitor is fine; I work from a couple of locations, and both my Dell P2415Q and my LG 24MD4KL-B 24" Ultrafine 4K work fine.

    There are edge cases here where the M1 falls short:

    * I can slow the poor thing to a crawl for a few seconds if I attach a 4K monitor and then try to AirPlay to another 4K display. It catches back up and is generally fine after, but you see the beachball for a while.

    * Lots of tabs in Safari will cause slow tab switching, and some web sites just chew through CPU. Battery life is still _way_ better than the previous MBP, but it definitely impacts the feel of the device.

    * Bluetooth mice -- ugh. I bought a Logitech MX ergo and had to switch to using the receiver instead because the MBP bluetooth felt so laggy.

    * Most iOS apps just aren't well suited for the device. Apollo (for Reddit) works pretty well, but even that has its quirks where sometimes keyboard shortcuts will just stop working.

    * VMs. If you run Windows in Parallels, you _will feel it_. I do not run VMs all the time for this reason, but spin them up and down as needed.

    • Abishek_Muthian 5 years ago

      This is so far(04:13:32 UTC) the best answer to my question, just because most other comments seems to be 'I use 16GB, so it should be fine' disregarding 'assuming you previously had at least 32GB RAM' part of the question.

      Thank you for your time writing this detailed comment.

      Few things which caused degraded performance were obvious e.g. tabs, VM.

      But things which surprised me,

      > * vpn seems to slow things down a bit

      With great single core performance and WiFi-6 I would have expected networking to fine.

      > Bluetooth mice -- ugh.

      Digging further, Bluetooth/WiFi/USB issues seems to documented by others as well[1] unfortunately these gets buried under other reviews following a common narrative for M1 macs.

      [1]https://www.youtube.com/watch?v=3xyFIF9jA5w

    • throw14082020 5 years ago

      That bluetooth lag was annoying me on my first day, but since then I haven't noticed it: either it was fixed or I got used to it. The cursor is quite responsive for me.

      Maybe you should try install "Logitech Options", because I did that immediately on the first day, which might have fixed it.

      • jondwillis 5 years ago

        I have noticed bluetooth lag apparent with first party keyboard, mouse, trackpad on an M1 Mini.

        But that was also happening in different ways on my non-M1 MBP.

  • 1996 5 years ago

    I have laptops with 64 and 32Gb of RAM, but I found my best work happens with 8Gb of RAM.

    I can't exactly explain how or why, but it seems to enforces discipline by reducing task (and context) switching - so much that I got myself another laptop with 4Gb.

    • ATsch 5 years ago

      This reads like an apple user parody.

      • xwdv 5 years ago

        I feel there’s some rationale to it. I used to have a lot of sprawling monitors, but I found I’m just much more focused with a single laptop screen and being able to just switch panes.

      • TheOperator 5 years ago

        I know exactly what he's talking about as somebody who ran a win7 and Linux VM on a 4gb MBA. I had to be incredibly choosy about what I kept open at any given time or my system would keel over. It enforced discipline that I just didn't have normally which helped keep me organized.

      • fortran77 5 years ago
      • 1996 5 years ago

        This is serious. A constrained environment helps me focus and think more creatively.

        The only think I'll never skimp on is storage. In 2018 I standardized on 2Tb SSDs in raid0.

        I'm currently upgrading to 4Tb (as I can't find much larger)

    • ratww 5 years ago

      My favourite development machine is still my 9 year old Air with 4GB. I mostly do frontend, a bit of Rails and some of GameDev with C++. It forces me to use lightweight tools (like Sublime) and it works like a charm.

      One advantage of having it is that the company I work for has a very international and diverse user base, but gives us developers super modern machines. Some developers tend to overgineer and cause performance issues on slower computers. With an older laptop I can understand better how the app will be perceived by users.

      • 1996 5 years ago

        > Some developers tend to overgineer and cause performance issues on slower computers. With an older laptop I can understand better how the app will be perceived by users.

        Exactly this. It forces me to optimize instead of taking shortcuts.

        But the #1 effect is on focus: I can't have many tabs open and procrastinate.

        8Gb is ideal for me. I'll see how it goes with 4Gb.

    • throwaway888abc 5 years ago

      Offtopic, but same apply to internet usage. Limit your self and you will be more productive.

  • blunte 5 years ago

    TL;DR: 16GB is enough for most use cases on Intel Macs, so it should be as good or better on M1 Macs.

    In my experience with 16GB Intel Macs for years, I have never had memory problems. I'm sure there are some large data migration cases which could make it a problem, but for my typical development (1-3 instances of a JetBrains IDE open, PostgreSQL and MySQL servers running, Docker running, sometimes even VirtualBox running, half a dozen or more terminal sessions, 1-5 Rails apps running - all of these simultaneously) I have been fine with 16GB.

    If anything does start to create memory pressure, it's usually Chrome or Firefox after they've been open for weeks (since my laptop uptimes are usually 30-90 days), with far too many tabs open.

    • zebnyc 5 years ago

      Have a 2019 2.6 GHz 16 GB Macbook pro. Between Chrome / Docker the machine can barely keep up. I notice that after Slack / Google hangout calls my laptop overheats and becomes generally unusable. Sometimes requires a reboot. Zoom calls don't cause same issues though.

      • blunte 5 years ago

        Strange. My work laptop is a 2019 13" pro with only an i5 and 16GB RAM, and I very rarely have any problems. On the rare times I do, it's usually because some app went nuts and needs to be killed. Google Hangouts, however, is a pig.

        But then, when on a Hangouts (now Meet, I guess) call, I typically won't be pushing any of the other apps; they'll be idling.

    • jayd16 5 years ago

      You also lose any dedicated VRAM. That's an extra 4-8 gigs the Intel Macs have.

      If you don't need it, you don't need it but to say 16 gigs on an M1 is somehow "better" seems silly to me.

      • blunte 5 years ago

        In the developer use cases I described, video memory should not be a big concern. (Edit - also, my described scenario is on my 2019 13" MBP with 16GB RAM, i5 CPU, and puny Intel GPU.)

    • Abishek_Muthian 5 years ago

      They key is whether you come from a workflow > 16GB intel mac, if you already had your workflow tuned for 16GB or lesser then you'll not find any issues w.r.t lack of memory.

  • nickjj 5 years ago

    While I don't have an M1 and I use Windows I did make a video the other week around the topic of what it's like doing full time web development / ops work / 1080p video creation with 16GB of RAM.

    That video is at: https://nickjanetakis.com/blog/for-the-time-being-16gb-of-ra...

    The TL;DR is 16GB holds up really nicely in most cases. That's also with running WSL 2 which is something you wouldn't need to do on macOS so in theory memory usage should be even more efficient on macOS.

pascoej 5 years ago

I got mine on release day. Go debugger support took a while, but now it's my dream computer.

My biggest complaint is that it doesn't warm my lap. The battery life makes up for that though.

My other computer has a 3900x and it's been getting very little use even though I'm homebound.

  • Razengan 5 years ago

    > My biggest complaint is that it doesn't warm my lap.

    May I recommend investing in a cat

jeffbee 5 years ago

It's a great little machine. I've been sticking with Go, C++ (with CMake, mostly) and JS in the browser. The worst problem for me so far has been that getting bazel to work properly has been a bigger job than anticipated. Its belief that macos implies x86_64 turns out to be hard-wired all over the place.

tehjoker 5 years ago

I think it'll be another month or two at least before doing scientific programming will be pleasant due to the lack of support from e.g. numpy and hacked versions of gfortran being used for R.

Dangeranger 5 years ago

My experience has been quite good, Mac Mini M1, 8GB RAM. It's very fast while running many applications, no CPU throttling, excellent thermal control.

- VS Code Insiders works well for Web, Nodejs, and Ruby.

- iTerm, Alfred, and Dash all work as expected.

- Homebrew support is excellent.

- Only a few issues with needing to re-install updated Ruby gems or Nodejs packages due to incompatibility issues from native C extensions, i.e. FFI (ruby), Sharp (nodejs), libvips (c++).

- CPU intensive tasks are very fast compared to a 2015 MacBook Pro.

- Input/Output is limited, and you will probably have to buy a dock and deal with display issues if you want more than one external monitor. I am still dealing with this.

Overall I would recommend, compatibility is 95% excellent. The feel of the Mac is satisfying and problems can be solved within an hour most times.

If you need many monitors for your work, you many want to wait until the compatibility improves, or buy a dock and roll the dice.

  • bluewalt 5 years ago

    But you own the mini, so you can use 2 external monitors right?

    • Dangeranger 5 years ago

      There is an known issue connecting two VGA monitors using an Apple adapter. I’ve only been able to connect one so far.

erdaniels 5 years ago

Gosh I love it so much. I’ve been doing golang and c/c++ on it and everything is buttery smooth. Few hiccups in the beginning with Rosetta but making sure I just run terminal with it ticked on makes everything fine. Once the Firefox M1 support came, I was very pleased. Everything is snappy, quiet, and light. I’d much rather trade in my mid-2019 16” rmbp for another of these at home. Battery life is amazing. 16gb hasn’t been an issue for me ever; it makes me actually question if the OS is just better at managing memory more recently; that being said I don’t do any AV workloads which would necessitate more RAM over programming tasks.

I am wanting to get virtualbox running though

  • thih9 5 years ago

    Which M1 device are you using?

    • erdaniels 5 years ago

      The air. I forgot to mention that having a retina screen in an air feels pretty good. I do miss my 16” resolution but this one is still good for me during coding tasks with no external monitor. No fan is a huge plus.

thoughtsimple 5 years ago

VMs work. Qemu is working with patches. You have to build it though. None of the releases seems to be patched yet. There is an early preview of Parallels. Both Linux and Windows on Arm are working. Docker has an early release as well. There are few prebuilt projects on Github too:

https://github.com/evansm7/vftool

https://github.com/KhaosT/SimpleVM

https://github.com/ubenmackin/ACVM

  • lstamour 5 years ago

    Since I installed it, Parallels preview has caused me nothing but purple-screened crashes at random. These might be caused by conflicts within the macOS beta I’m running or between running both Parallels preview and Docker for Mac preview at the same time. My laptop went back to being stable only when I quit both, though it seemed relatively stable with just Docker for Mac running previously. It’s easy enough to suggest that any crash is a bug Apple should fix, and hopefully will fix within this patch cycle. And it’s worth pointing out, I am running a dev beta release, so it’s more likely I’ll encounter such problems. Reviews of Parallels running Windows on ARM do not mention the issues I’ve had, for example, but this kind of frequent crashing is rare on my Intel MacBook performing the same tasks. But the M1 MacBook still impresses me with its speed under load, it feels nice and snappy even when running heavier IDEs with lots of background processing.

lddemi 5 years ago

So far have been very happy :)

Still waiting on native VS Code but rosetta works fine.

Recently after several big apps like Chrome, iTerm and Slack updated to native binaries everything has been _very_ smooth.

I use docker heavily with zero issues - arm64 or amd64.

evtothedev 5 years ago

I was literally just coming on here to ask this question! Specifically, whether or now homebrew is happy with the m1.

  • foobarbazetc 5 years ago

    homebrew mostly works, but if something depends on java or openjdk or whatever (like sbt) it tries to build it for x64.

    If you have the arm64 openjdk installed from Azul, you can edit out the dependency from the cask and it works fine.

  • pwinnski 5 years ago

    Much happier today than it was on the day M1 shipped!

bla3 5 years ago

I love it, but I find I don't really use it. My 16" MBP has a bigger screen, 4 usb ports so I can charge, two-factor auth, external microphone and external webcam at the same time. The downside is that it's much louder under load, but that is apparently worth it for me.

Also the 16" was much more expensive, but and it has much shorter time on battery - but I already paid for it and I'm usually close to a power plug anyways.

Maybe I'd use the M1 more if zoom was less prevalent.

  • Void_ 5 years ago

    I have 16” too. Didn’t get M1, wanted to wait for better processor. I wanna be blown away by it. :)

  • jondwillis 5 years ago

    I sold my top of the line 16” MBP and replaced it while making a “profit” with a $900 M1 mini, since I am working solely from home. The mini is faster in almost all tasks.

    • bla3 5 years ago

      I did quite a bit of benchmarking. I mostly compile code, which parallelizes well. For that workload, the higher core count on the 16" means it's (a bit) faster. For single-core work, the M1 wins.

manicdee 5 years ago

Up until it died, the MacBook was super nice to work on, super fast in waking from sleep, and pleasant to use in all lighting conditions except direct sunlight obliquely incident to the screen (in which case the sunlight made all the dust and fingerprints on the screen extremely bright and opaque).

Obviously I can't run my intel-based VMs, but I was able to run all my web development toolchains: Django, Vuex/Flask, PHP, Postgres/MySQL/SQLite.

I also play games: mostly KSP. The 8GB RAM isn't enough for a small KSP save (a dozen flights, a few hundred parts), and I had to restart KSP every couple of hours due to memory pressure.

Best computer I've ever owned, but I've already killed one inside two weeks of owning it and the replacement is going out the same way: something in my environment or in the way I use it caused the M1 to kill itself.

It starts off as the occasional panic/reboot. Continues to manifest as any activity that requires touching the disk ends up locking the computer up for tens of seconds (spinning beachball cursor, but you can't move the cursor with trackpad or external mouse). Ultimately the MacBook just dies in the middle of whatever it was you were doing, and nothing you or the Apple Genius can do will convince it to boot again.

kcartlidge 5 years ago

I've got the base model M1 Air (8GB, 8/7 cores). I sold 2020 models of the Intel Air and ThinkPad L14 (Ryzen 7 Pro) to fund the purchase and have no regrets.

- Cross-compiling code written in Go (latest beta is native ARM) takes less than 2 seconds (total) even though in that time it is building all 4 platforms (Linux, Windows, Mac ARM, Mac Intel).

- VS Code is more responsive than the Ryzen 7 Pro was (obviously subjective). The Insiders build is native ARM.

- DotNet 5 (Core, which is Intel only until .Net 6) builds apps as fast as the Ryzen 7, and running my own C# web sites/services is indistinguishable from it.

- After decades of coding, 2 of them with C#, I'm fast. So I flip between VS Code, Terminal, and Brave, at a very rapid pace as I iterate code. Not once have I been slowed down on this 8GB machine.

- Node and Python are working great. Node via Homebrew is ARM. Python 3.9.1 was already installed (I've not checked if it is ARM as it is behaving perfectly).

- Running `npm install` subjectively feels far faster.

- The keyboard is very good (not ThinkPad quality, but still better than most). It's using the new type that the 2020 Intel Air got, not the one from the last few years with all the issues.

- The keyboard backlight keys are no longer there, so unless you open up the preferences pane you have to rely on the auto-ambient-sensing, but that is working perfectly.

- Charges off any decent USB-C charger, not just the Apple one it comes with.

- Developing for a full day of combined Go and DotNet Core eats about 40% battery. Probably only that much because Core is under Rosetta. Still runs cold though.

- It never heats up, except for when using the non-ARM Go in which case it occasionally hangs and if I don't kill Terminal it starts eating 1% every few minutes. Nothing else has misbehaved at all.

As an aside, and I know you were only asking about dev work but it may help provide context to others, running DiRT 4 (rallying) on it for an hour only used about 4% of battery life, operating at high res high quality with no lag, and the Air never even got warm. The amazing thing about that is that this was running under Rosetta.

So this was emulating Intel. Running a game better than the Intel Air 2020 did, whilst under emulation, on the cheapest M1, silent, cold, using only 4% battery for an hour. Almost unbelievable.

EDIT: It also plays Monument Valley (iPad or iOS version, not sure which) perfectly, in full screen with mouse support. Bonus.

soheil 5 years ago

I had mine for over a month now and it’s great. Development is fast there is some libraries that are not compiled for M1 yet so if you use package managers like brew etc it might need to compile some libraries from source. But once everything is installed running code is extremely quick. You can have 100s of browser tabs without a noticeable drop in performance, I use a MacBook Air M1.

  • f6v 5 years ago

    How many hours of battery life do you get when doing programming?

    • lstamour 5 years ago

      I tend to have it plugged in while writing code so I can use a larger external display, but so far the most battery drain I’ve had with it was getting at best just shy of 9-10 hours when I wired up a Club3D DP 1.4 to HDMI 2.1 adapter and output HDR10 at native 4K resolution. That really started to chew through the battery, especially when running Dolby Vision content through Netflix in Safari. I ended up buying USB-C to DisplayPort adapters that also supply power in the same cable so I wouldn’t take up both the USB 4 ports with such activities.

      Normally though, I’ve had battery life hit up to 22-24 hours in light usage and the battery doesn’t drain much while it sleeps so that can sometimes mean multiple days of battery life.

      I find for programming the biggest limitation is the 13” screen when on the go, as it has been an adjustment for me from having a larger 15” or 16” screen. I’m looking forward to seeing the new 16” Apple Silicon arrive in June, if you can believe the rumours. Apparently they’ll be adding native ports for HDMI. Cross fingers that it natively supports HDMI 2.1 for example...

      • hjanos 5 years ago

        Hi! I am looking to purchase an M1 Air, but I would like to know first if it will work with my LG CX55OLED at 4K@120Hz. Can you confirm if it works in 4K120Hz resolution and refresh rate? Also what is the specific type of the Club3D adapter and the adapter you use to convert TB3 to DisplayPort?

        Thanks!

bschwindHN 5 years ago

I just got started with the M1 Mini, 16GB RAM.

I develop almost exclusively in Rust. Compared to my $1800 work MacBook Pro (early 2020, two fans, 16GB RAM), all my Rust projects literally compile twice as fast on 1.49.

The desktop seems snappy, but I haven't left it on long enough to see if it slows over time. Very satisfied with it so far!

erichsu 5 years ago

When it works, it’s a dream. Fast, cool. Rosetta 2 works quickly and well. I’ve found M1 builds for things like ffmpeg, VS Code, TeX.

The #1 problem is external monitor support. I use a Seiki 4K monitor. If you unplug it, the laptop regularly becomes unresponsive and kerneltask eats all your cycles. If it sleeps with a monitor on and wakes with it off, that’s almost a sure beach ball.

Rumors are that a fix is coming, but you never know. You can see from the other comments that in general external monitor support is erratic, and that’s very bad for a 13” laptop. I’ve taken to rebooting between monitor unplugs. Very obnoxious and I’m infuriated having to do it.

But then when it all works, it’s pretty sweet, so all is forgiven. So basically, it’s a slightly abusive relationship. Buyer beware.

joubert 5 years ago

Mac Mini, 16GB RAM.

Managed to compile FreePascal and Lazarus for M1 (aarch64); was fairly straight forward.

I’ve been playing / prototyping with FPC/Lazarus over the holidays so it’s nice to run without Rosetta.

Compiles are super fast, but of course fpc/Lazarus is pretty quick already. ;-)

  • kcartlidge 5 years ago

    Shout out for FPC/Lazarus - so underrated, and too often ignored. Like Delphi, but for free. If you want native binary GUI apps for multiple platforms it's great. And I can confirm it works very well indeed on the M1 MacBook Air 8GB base model too (for developing apps; I didn't need to compile the toolchain personally).

    • joubert 5 years ago

      Yeah I didn’t have to compile fpc/Lazarus for it to run on M1 (it works just fine), it is just that I wanted to give it a try!

dave_sid 5 years ago

Yeah it’s really nice. Xcode runs really fast. Wish it had more ports. That’s my only gripe.

thefourthchime 5 years ago

I mostly work in VSCode, the latest insiders build work much faster compared to my 2019 MBP. Browsing is also significantly faster with Chrome.

I have tried the Docker beta, it runs well, even with 8gb, but being limited to ARM images limits its use.

  • knotty66 5 years ago

    You can run intel/amd64 images too by passing '--platform linux/amd64'.

    I span up Hasura last week and it worked fine - there will be a speed impact but I couldn't notice it for that use case.

uncledave 5 years ago

M1 8Gb mini here. Main desktop machine. Writing Go on it mostly. Zero problems. Fast, reliable. Probably the best computer I've ever owned. I am using VMs in AWS for a lot of more complex development work though so it's fair to say that this is a limited terminal machine with some local development being done. The only third party applications I have installed are Zoom, Slack, MacVim, Go, Terraform, AWS CLI as an example. I am not using homebrew etc as I don't need to.

Main thing: it just works, silently and quickly!

leokennis 5 years ago

I don’t use my MacBook Air M1 for development, but I believing positive reinforcement so I need to add to all praise here, who knows someone from Apple sees it.

This machine is so super nice. The keyboard is awesome, the dedicated emoji button is useful. But the cherry on top is insane performance and insane battery life.

To me, this machine is to other laptops as the iPhone was to all smartphone before it.

throw14082020 5 years ago

When building Tensorflow from source (because you have to, to get it working even with Rosetta 2) was frustratingly slow, and the whole computer became unusable. After more than an hour of waiting, I stopped the bazel build process. Which reminds me, I'm going trigger the build now and go for a walk...

  • rjsw 5 years ago

    Is Bazel native or running under Rosetta2 ?

    • throw14082020 5 years ago

      First I ran it native, and after 5+ hours, it failed right at the end. So I restarted with Rosetta2, and after 2 hours, I gave up. I just downloaded the tensorflow_macOS fork that apple made to use the M1 GPU anyway.

qeternity 5 years ago

It’s pretty amazing. I’ve had it since launch and it was rougher at first, but at this point most things are native. I really miss having a Windows VM and I opted for 8gb RAM which means a lot of swapping and I’m a little worried about the NVMe drive failing.

gjsman-1000 5 years ago

Web development - works great through Homebrew and Rosetta. Native versions are available of most JetBrains IDEs, and I can't really complain. However, my workflow doesn't use Docker, so I can't speak to how well that works.

rock_artist 5 years ago

I’ve been using MacBook Air.

Battery life - I had bigger expectations :) , it’s indeed nice but still seems to run off quicker than reviews and reports I have read.

Compiling - that’s where it really chimes. I actually get better build times than my desktop 10700k machine (both with Xcode 12.2 and compiling same archs.

The hiccups, As we develop audio plug-ins (which are dlls). it seems that Apple now has extra XPC services ‘sandboxing’ those. (also for native arm64 binaries). So far, so good. but... with extra hardened runtime, it’s not debuggable! so unless we go the SIP off way we cannot debug under it (which is needed since it might behave differently).

I think you should focus the questions on what development tasks you expect. Since people developing for web will have different hiccups than people developing native macOS or iOS.

It’s still an ‘insider’ machine. :) Many major apps are still insider or test/tech builds. Docker, Parallels, Android Emulators, VS Code, etc...

TL;DR - it’s the bleeding edge. prepare to search workarounds for tiny issues while installing.

having a machine not frying your ‘laps’ and silent (no fan) while out-performing my desktop 10700k in many tasks is quite amazing.

  • jbverschoor 5 years ago

    Same here.

    Super happy with the keyboard, performance is superb. No airflow, sometimes it gets a liiiitle bit warmer. Nothing hot or warm. My previous one was a mbp 2013 16gb.

    Performance is buttery smooth, super fast..

    I also expected more from the battery, but I think that might be because of chrome :-)

  • robotcookiesOP 5 years ago

    I had considered asking this from a web developer/node perspective. But I increasingly do other things like run different databases, golang, etc so I left it open-ended for that reason.

  • f6v 5 years ago

    What’s the typical battery life?

ovhfy7364 5 years ago

Depends on what you need to develop. The M1 is great if you do web development with NodeJS style tools or Apple App Store development but don't need to run an x86 Windows VM to see exactly how Windows browsers render your site: Windows browsers which run on 90%+ of this planet's desktops, important corporate customer desktops in particular.

The M1 is not so great if:

- You want to develop real-time raytracing. The M1 using the Metal API does 3.6 FPS (20.1 million rays per second) while the RTX 2070 does 135.5 FPS (757 megarays/sec) on one benchmark: https://www.willusher.io/graphics/2020/12/20/rt-dive-m1

- You need reliable ECC memory and/or a corruption resistant filesystem like ZFS/BTRFS/ReFS. (You can get ECC on serious Thinkpads (X1/P15/P17), Dells, and HPs designed for science and engineering, and also RTX graphics, Cuda machine learning, etc., and run both Windows and Linux.)

- You need hi-performance x86 Linux VMs to compile and test your production back-end code locally on your device.

- You need a multidisk RAID drive configuration (available in laptops above mentioned) which allows you to keep working if one disk fails.

- You need to be able to quickly and inexpensively field-service/replace a failed disk drive, bad memory stick, broken screen, or damaged keyboard.

- You need to be able to quickly swap an old battery for a fresh one. (I replaced the battery in my MacBook Pro when it swelled up and almost cracked the trackpad glass; I had to use acetone nail polish remover to release the adhesive Apple uses to glue the battery into the case. Apple uses glue for everything these days and opposes right-to-repair legislation.)

- You need to be able to use portable graphics APIs such as Vulkan.

- You need to run industry standard CAD/CAM applications performantly and cost effectively.

- You want to develop VR applications.

- You want to run an 8K display. If you see a 280dpi Dell 8K next to a ~220dpi Apple 5K/6K you see there is no comparison. The Apple "retina" renders font edges softer than print.

- You need a device your device vendor allows you to configure to not phone home to said device vendor's servers. If you buy Windows Enterprise or Red Hat Enterprise or Ubuntu this level of privacy is officially supported. Apple aggressively markets itself as pro-privacy but does not offer this: your M1 will be sending quite a few packets to Apple-owned IP ranges.

- You need a device you can constructively criticize on internet forums when it doesn't work well for doing anything other than desktop-and-mobile Webkit webdev and Apple App Store development. If you ever need to share your frustration with your M1 on Reddit or HN you risk instant downvoting.

pid_0 5 years ago

So far I have done Go, little Rust, python, some docker stuff, etc. Its awesome. I have 8gb M1 air and its seriously faster than my 16gb MBP with an intel i7.

tyingq 5 years ago

I see that the M1 Mac Mini is only available with 8GB RAM. Is that likely to remain as a market segmentation thing, or could a 16GB Mini be available soonish?

coding123 5 years ago

No OP but looking for people with any reactions on using Docker, Node or Python on the M1? Likely going to get an M1 mini at some point.

  • photokandy 5 years ago

    Native Node is fine, and generally runs better than the equivalent MBP. My 8GB M1 handles Node & JS about twice as fast as my 16GB 15" Intel MBP from 2019.

    Where you can run into issues is architecture support. I'm running Node natively, but this means that some packages that don't support ARM will fail to build properly. I've been able to work around/do without for now, but depending on your use case, it could be an issue, if you want to run Node natively. (I do not have a feel for Node via Rosetta 2 performance.)

    • iijj 5 years ago

      I have to the run all my node development in x86 emulation and it's the same speed (both subjectively and by timing) as my 6 year old mac I was replacing.

      Things that rely on disk speed like npm install are much faster, though.

      I tried upgrading some projects so they could run arm native, but it some cases it would have forced my colleagues to update their OS since such-and-such updated library dropped support for their OS version.

      I briefly went down the path of having a patchwork of arm and x86 stuff running together (like having webpack be arm native but the rest of the project not) and it was lots of fiddling. If I wasn't careful to segregate x86 and arm into completely separate shell environments, I'd end up with ldd trying to link to shared libraries with the wrong arch during [brew, npm, bundle] install. It was more trouble than it was worth.

  • gabereiser 5 years ago

    Stuck on a docker tech preview on my M1, it works but only with arm64 images. Docker for me is the main crux to get me to use the M1 as my daily driver. Python works fine, node as well, but I don’t like modifying my environment and like to encapsulate it in docker (docker everything) and so far I’m not 100%. Docker works like I said, but it’s still a WIP and all. I think Q2/Q3 of this year we’ll see more mainline support.

  • shmoogy 5 years ago

    I couldn't get pymssql and pyodbc to work, but I didn't try very hard. Other than that, most things I use have no issues.

sz4kerto 5 years ago

VSCode remote plugin + a Linux server in the other room with dual Xeon and 64G RAM + Tailscale mesh VPN. Perfect for my use cases.

  • zarkov99 5 years ago

    That is roughly how I use it, except is ssh'd into an Emacs session. Even though I am not a fan of MacOS, I love the M1 air. Great keyboard, always cool, battery runs for days.

foobarbazetc 5 years ago

I’ve avoided installing Rosetta on mine by running betas of whatever it is, but it works well so far.

The battery life on the MBP is amazing.

hntrader 5 years ago

I'm very ignorant of the M1, but heard it has some hardware optimizations for Mac OS. If I buy this laptop and install Windows on it (because of a need for specific software), does that largely defeat the purpose and significantly reduce the benefit of the Mac OS-specific hardware optimizations?

  • cududa 5 years ago

    It doesn’t support Windows yet, and yes, it would defeat the purpose

  • nkellenicki 5 years ago

    You can't install Windows on it. The processor isn't x86, it's custom Apple silicon built on the ARM architecture. Windows is incompatible.

Tunecrew 5 years ago

I have an M1 mini 2TB/16GB arriving next week. Will add comments when I get it - my primary dev environment is Docker + JetBrains, so we'll see how far I get in that.

jonnycomputer 5 years ago

Macports? I don't brew

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection