Slightly off topic but - Does anyone here have an opinion on whether or not it's a good idea to update to an M1 macbook?
I'm usually weary of GEN1 products, but it's been hard for me to hold off on picking up one of these. The performance boosts seem to be quite impactful in a daily workflow especially if you're compiling a lot of code regularly.
I'd be upgrading from a late 2015, 15" non-dedicated GPU macbook pro. It works fine and I don't really have any complains other than of course I'd love if it were faster. Since I'm on my computer all the time, removing sources of friction are important.
The only downsides would be if you need to produce or deal with architecture-specific binaries. For example if you build container images or native code on your machine and ship them up to AWS, Google, etc. to run your service.
With the change to ARM you'll now build an ARM container (or exe, etc.) and it won't run on Intel or AMD-based servers. You'll need to invest time figuring out Rosetta 2, cross-compilation, QEMU, and other multi-architecture workarounds to produce non-native binaries. It's not difficult or particularly confusing once you understand all the moving parts, but it has tripped a lot of people up who thought things would just magically work.
If you're dealing with particularly gnarly messes of complex build systems with obfuscated and obtuse decades old makefile messes it can be quite daunting to add cross compilation and multiarch support. But most codesbases aren't like that and you'll probably be fine. Interpreted and JIT-compiled languages like Python, Node, etc. are generally smooth sailing (unless you link to native code). Modern systems languages like Go, Rust, etc. are very easy to cross compile. With C/C++ you're up against a bit more pain depending on how nice your build system behaves (but let's be honest if you're dealing with a C/C++ codebase in 2021 you're used to some pain).
The inverse problem is also now true. If you pull down a container image, download a binary, etc. it ideally has to be ARM to work. Rosetta 2 can help in the short term to get Intel dependencies working, but again there will need to be some work done to get the dependency moved to multiarch and ARM support.
There's also a major gap in this story if anyone on your team is using Intel machines. There is no good equivalent to Rosetta 2 for Intel--i.e. those Intel users are going to have trouble making an ARM binary or container that your mac can consume. You're going to have to coach them up and walk them through using something like QEMU to achieve this goal (this might not be easy, be warned). IMHO it will be easier to push this load onto your CI system (assuming it can support building ARM) so that people just push source code from their machines and CI takes care of ensuring Intel, ARM, etc. builds are available to everyone.
If this sounds like a lot of issues, try to stay on the happy path of using one architecture everywhere. M1 macs + AWS Graviton 2 instances in AWS is 100% ARM64 all the way and really something incredible once you live in that world. Other cloud providers (ahem Azure?? Google??) need to get their act together and get ARM64 instances available yesterday.
You can build a multi-platform docker container which runs on multiple platforms thanks to the buildx command:
https://www.docker.com/blog/multi-platform-docker-builds/
Already many docker images are published with both x86-64 and arm64.
Yep, the tooling is still lagging a bit in this regard so just be prepared to deal with confusing errors (invalid image format, etc.) when multiarch isn't available. Docker's manifest command is useful to see if a container has ARM builds: https://docs.docker.com/engine/reference/commandline/manifes...
I wouldn't right now. First versions after a major update tend to be disappointing compared to what comes afterward. It's usually a good idea to wait until the next refresh.
I'm a few months in on my M1 Air 8GB base model. To fund it I sold a 2020 Intel Air (before the prices started dropping) and a ThinkPad L14. I have no regrets.
For context, I'm a dev. I do DotNet Core, Node, Go, Python, and Ruby. All of them are far faster than previously on the Intel Air, and at least as fast as the L14 with its 16GB and Ryzen 7 Pro. The only performance downside being an initial hit of up to a second or two for the tooling the first time it's used since the last restart (whilst it does its Rosetta wonders). Everything is working as it should, although I have no current need for Docker so can't comment on the progress of that. I had some issues getting Homebrew using ARM versions of stuff (I think, it was a while ago now) but otherwise life is good.
The biggest benefit for me, though, is that unlike previously I am getting this enhanced performance from a stone-cold fanless machine with a battery life good enough that I only plug it in daily out of habit (I could easily go several days without).
Two ports is enough (for me) - bear in mind that really is two ports, as mostly there is no need to be connected to the power so you don't lose one during the day.
The keyboard isn't a patch on the ThinkPads, obviously, but its the proper Apple standard not the dodgy one from a few years back. Feels good, slightly shallow travel. One oddity is there are no longer hotkeys to control key backlights. Unless you open the settings, MacOS does it automatically. I didn't think I'd like that, but it works consistently well.
BTW in the couple of months I've had it, I've had three lock-ups. All when running JetBrains IDEs as it happens, but that's Java for you. Rebooting is quick enough that it wasn't an issue.
>in the couple of months I've had it, I've had three lock-ups
Everybody has hated on Microsoft my whole life, but you know, I can't remember the last time Windows 10 locked up on me. I don't even know if it "blue screens" the way windows used to. For all its faults, it "just works".
When I run Windows 10 Professional at home (which I still occasionally do) I get excellent reliability. The moment it hits heavily locked down networked office laptops is when it starts going bad, but to be fair to Microsoft I'm pretty sure that's more the interaction of complex software with a massive amount of commodity hardware in configurations that are way to varied for all combinations to ever be tested. HP being especially bad and Lenovo especially good in this regard.
I do find myself occasionally wishing that the Surface range had the same hardware as my M1 Air as I'm still more productive on Windows, partly due to the UI/UX (when it is consistent which isn't everywhere) being better, and partly because it's just a whole lot easier to keep my hands on the keyboard and away from the mouse/trackpad than it is on Mac OS.
Whilst I do Python, Node, Go, Ruby, etc., I've been a .Net developer since 2001 and in many ways (going back to DOS in the 80s) Microsoft are responsible for me having a good career. I'm not blind to their rapaciousness, but I am grateful too.
I have heard complaints when it comes to local development of apps running Python. Seems from [1] any version older than Python 3.9.1 may have problems:
"Python v3.9.1 becomes the first version of the language to support macOS 11 Big Sur. The developers note that the release is made possible thanks to Xcode 11..."
You would be going down to a smaller display, and losing i/o ports. Other than that, and a few apps still not optimized for AArch64, it's all positives.
What would you like your computer to be faster at? If you just want apps to open faster in general, go for it. If you want faster performance for Xcode or video editing, I'd say wait until the end of the year.
My opinion is to wait for the next iteration which is expected to be released in a few months. Those will have additional ports (almost confirmed) and hopefully a webcam that doesn’t suck and isn’t stuck in the distant past (not yet known if this will be handled, but it’s the biggest blot on the current lineup of M1 Mac laptops).
The extra grunt is impressive. On my old 2018 MBA playing Zwift on medium quality graphics would cause the fans to howl. My new M1 MBA will run Zwift on high quality graphics, at 2-3x the frame rate, and be 70% idle. Of course, the fans are quiet because there aren’t any.
I've got an M1 MBA that work sent me for debugging, it spends most of it's time collecting dust. Granted, I'm not a big fan of MacOS, but this computer isn't doing much to change that.
I'm usually weary of GEN1 products, but it's been hard for me to hold off on picking up one of these. The performance boosts seem to be quite impactful in a daily workflow especially if you're compiling a lot of code regularly.
I'd be upgrading from a late 2015, 15" non-dedicated GPU macbook pro. It works fine and I don't really have any complains other than of course I'd love if it were faster. Since I'm on my computer all the time, removing sources of friction are important.