DEV Community

loading...
Cover image for The M1 Mac - Is it worth it for devs?

The M1 Mac - Is it worth it for devs?

alexandrudanpop profile image Alexandru-Dan Pop Originally published at blog.alexandrudanpop.dev Updated on ・4 min read

I can say I was very impressed by the benchmarks results given by those machines, so I decided to try one out.

TLDR - I didn't choose the M1 Mac Mini as a mainly daily driver - yet - until docker will be fully supported. I'll use it for frontend workflows that involve running a bunch of the node.js tasks + mock APIs + continuously running tests in the background.

Why I choose the M1 Mac Mini with 16GB RAM

I wanted to use it with - 2 big monitors (M1 MacBooks support only one external display - although there are workarounds). I don't like staring into small laptop screens, so for using both my monitors and also having more ports I have chosen the Mac Mini instead of the MacBooks.

Also, I am working remotely and already have a Dell XPS 15 laptop. So buying an M1 laptop didn't make sense - since I can use my laptop when I need portability.

I went for 16GB of RAM because some of my development workflows require running multiple docker containers locally, and we all know how much memory docker consumes. Also, I noticed that the 16 GB model barely uses less than ~7-8GB RAM but I'll get to that later.

Impressions

A lot of my development work implies running VSCode and node.js locally for frontend workflows.

Running the native arm node.js on this machine is extremely performant. Can say for some frontend builds I was getting ~60% speed increases from my 2y old Dell XPS 15.

With a local frontend workflow (build and running unit tests), lots of Chrome tabs open, docker running a few containers, VSCode, Spotify, and other programs running in the background I haven't seen it use more than '~12,5GB' of RAM. It never used the full '16GB' RAM. But it does use SSD swap, so that's interesting.

I did see that with very little use - like a few Chrome tabs + other background apps that run by default it will quickly consume the "standard" 8GB of RAM.

Caveats

I spent countless hours getting around some issues like for a Gatsby project I could not make the 'sharp' module work. When I finally managed to do that, BigSur had an update and after that, the arm version of node.js didn't work anymore. 🙀

I also tried docker and certain images that work on my Windows 10 laptop or on an Intel MacBook. Around half of them don't work on the M1 with docker for M1 preview. With some tweaks, I managed to run some of them, but others without luck.

Things to consider

Before considering this as your main machine check:

I also recommend you to watch some of Alexander Ziskind's Youtube videos around the M1 Macs. He is comparing them to Intel Macs or laptops and trying out various programming tools.

Personal conclusions

My impression is that if you have moderately big projects to work on - with a lot of dependencies & especially if you need to use docker - you will run into various issues that you need to fix. Some of those fixes will be easier as the community posts issues and fixes on Github. But for some other issues, you will just need to wait for fixes and use an x86 machine in the meantime.

Overall, I consider it a good price for a performant machine.

If you do mostly web development or web design and don't rely on things like docker or if you can use a mock API to mock your backend dependencies - I think this system makes a lot of sense.

If you are just learning programming, an M1 Mac Mini is a good machine considering the costs - you could even go for the cheapest M1 Mac mini. ✌️

If you are patient and already have a good computer, you could probably wait around 3-6 months to see if more stable versions of the software you use pop up. Although seeing how fast the trend of fixing issues is - I think a lot of the current problems will be fixed soon.

If you are using Windows, I also have an article for setting things up for development and making a Windows machine more pleasant for development.

And, if you want to embrace Linux but like the MacOs BigSur look & feel, I wrote an article how to tweak Ubuntu to look like BigSur & configure some extra stuff to make it more pleasant:

Discussion (33)

pic
Editor guide
Collapse
trueneu profile image
Pavel Gurkov

To me, the transition to ARM news made me move to PC/Linux as a whole. It’s more and more of a lock-in: first they took away Linux from me, now they’re taking away software? My production environment runs on amd64/Linux, there’s no way I’m doing development on a completely different architecture while being at mercy of software vendors to make their stuff work on ARM.

Collapse
feldev profile image
Félix Paradis

I'm in the same boat.
Still using my old macbook, but next laptop won't be from Apple.
It just seems like a terrible company to give my money to.
Linux look like the good guys.

Collapse
thediamondcg profile image
Diamond

I mean, yea it sounds like a sudden, unexpected dick move but you have to factor in that intel majorly disappointed Apple. I don't think they would've spent all this time and money to make an ARM chip if there was already something else available on the market. The thing is, Intel promised Apple (and the rest of the world) 10 nm by ~2015. However, intel endlessly delayed this 10 nm launch, so much so to the point where their next MacBook would eventually come in with AWFUL thermals and a thin design... a thin design wrapped around this 10 nm design that never actually came. A design that was promised to them by Intel. Next came Apple making a statement on Intel's binning quality, saying that it was "unusually bad". Obviously, Apple's trust in Intel was rapidly diminishing by then and I think by now, we all know what Apple started to scheme. Their own chip designs to stray away from Intel. This must've been well in the works before AMD came up with their OWN thing in 2019 which blew everyone and everything out of the water, but even then the M1 chip outperformed the AMD chips (upon release, at least, I can't speak for in-development phase) so I think Apple would've just liked to stick with their current plan instead of scrapping M1 altogether and moving to AMD, especially considering they have likely, by that point, invested a lot in software costs and logistical costs as well as they prepared to integrate M1 into their pipelines AND they had added performance on top of that. And to top it all off, it would integrate PERFECTLY with their ecosystem where you have iPad and iPhone apps that can run on your MacBook, knitting tighter an already tight-knit ecosystem. I don't think Apple would've been content investing this much into their said "ecosystem" had it not been for Intel essentially ruining everything and f***ing over Apple's 2017 MacBook.

Thread Thread
feldev profile image
Félix Paradis

That was an interesting read!
But my ethical concerns with Apple are mostly not about the M1 chip but other things like

  • Planned obsolescence
  • Zero open source contributions ever (unless I missed something?)
  • Bits of bloatware in the OS I don't want but they make it hard to uninstall
Thread Thread
trueneu profile image
Pavel Gurkov

Right, make your choices and don’t pay for what you don’t want! :)

Collapse
alexandrudanpop profile image
Alexandru-Dan Pop Author

I think the transition to ARM is necessary at least for (non-gaming)laptops in the coming years. I don't know if there will be a huge transition in the PC world happening - probably not.

Since most CPUs are created for mobile use cases nowadays I think it does make sense to move to ARM since manufacturers will innovate more in the areas where they have the most consumers.

Collapse
trueneu profile image
Pavel Gurkov

And yeah, that doesn’t counter the proprietary chips with closed specs Apple is obsessed with. :)

Collapse
trueneu profile image
Pavel Gurkov

Sounds quite logical, but in this case I’ll wait for the majority to transition first. :)

Collapse
hassan_schroeder profile image
Hassan Schroeder

I recently got my M1 MacBook Air (replacement for a mid-2013 MBA) and I love it. It's both faster AND has much better battery life. The Touch ID feature is handy. There've been a few speed bumps installing what I need, but that's to be expected. I use asdf to install/manage languages and that's largely been problem-free.

The worst thing so far is losing MagSafe 😀

Collapse
leob profile image
leob

Mac Mini (Intel) is nice, but phew, going with the new ARM stuff, you gotta be adventurous ... bleeding edge! Sounds like it's only advisable if you're confident and knowledgeable and don't get nervous when you run into problems ...

Collapse
alexandrudanpop profile image
Alexandru-Dan Pop Author

A bit yeah ... I think in a few months most problems will go away but we will see. 🤞

That's why I wanted to write this article especially to point out the flaws, of course, some devs might not have the issues I have.

I was lucky enough to work on a project that didn't strictly require docker, so I was able to develop on it 99% of the last month of trying the M1 out.

Collapse
leob profile image
leob

You're talking about Docker and node.js but what about all the other stuff, things that you'd typically install with a brew install command - php, ruby, python, mysql, nginx, apache and so on, and so on ... has stuff like that been "ported" to ARM, as in, do you know if binary "brew bottles" are already available for that kind of software?

Thread Thread
alexandrudanpop profile image
Alexandru-Dan Pop Author

PHP, Ruby, and Python work natively and are available to install with brew.

I also tried an Nginx docker image and it worked - not sure about apache. I usually don't install those locally as I run them with docker.

Some things like mysql are not ported yet but should work through the Rosetta 2 translation layer.

Thread Thread
leob profile image
leob

Cool ... maybe "brew install from source" works in those cases where no native 'bottle' is available yet (mysql) ?

Thread Thread
alexandrudanpop profile image
Alexandru-Dan Pop Author

Haven't tried this only with node when I needed an issue fixed that was not published yet.

Basically, it should work as long as it can compile on arm. For MySQL I just checked and it runs on the new chip
formulae.brew.sh/formula/mysql

Collapse
ozzythegiant profile image
Oziel Perez

Just like @trueneu mentioned below, M1 was the final straw. I've been hoping for many years that iOS SDKs would be ported to other operating systems so that we are not forced to buy a mac to build iOS apps, but that never happened. Then they started soldering computer parts, then the STUPID touch bar came, eliminating ESC key, then the keyboard sucked, then I heard iPhones no longer have replaceable parts, forcing you to service the phone with Apple and not 3rd party repair companies, and now here we are with M1 forcing the entire software development industry to port many apps to their architecture. I'm sorry but we're just not ready for ARM processors at this time, given that many, if not all servers use x86 processors right now. Apple doesn't care about developers unless they comply in developing only for Apple products; they continuously lock the ecosystem down, forcing you to buy new products if they show the slightest hint of malfunction, all while keeping prices outrageously high. I'm warning everyone: move away while you can.

My next laptop will be either a Lenovo Legion or a Dell, configured to run Ubuntu. What? Can't live without Adobe apps and that beautiful user interface? Dump it. You can easily replicate the interface nowadays with Ubuntu and there's great open source alternatives, we just need to give more support so that these projects can thrive.

Collapse
estruyf profile image
Elio Struyf

Great to hear you are experiencing a huge performance boost. There is one thing to point out. You mentioned the ~60% performance improvement, and I assume you did the test on Windows vs macOS as you mentioned your old Dell. When using Node.js on macOS it will in many cases be ~50% faster compared to Windows in general (even on Intel). This has more to do with the OS, than with the hardware. For instance, try WSL2 on Windows, and you will also get a similar performance boost.

A while ago I wrote an article about this: Speed up SharePoint Framework builds with WSL 2. The outcome was this table:

I own a Macbook from 2017, the 16", an Intel Nuc Hackintosh, and Mac Mini M1. When it comes to developing Node.js, build times are very similar. We have one major mono-repo where it takes up to 10 minutes to build all projects. On the new M1, it takes about the same time as on my Intel Nuc.

I'm sure we'll see a bigger performance improvement in the future when a lot more applications are optimized for using the M1.

Collapse
webreaper profile image
Mark Otway

Been using an M1 MacBook Pro for development for a couple of months now. It's very nice. The Docker preview seems to work for most stuff I need, and most of the apps I use have already been rebuilt as Universal.

I'm primarily developing Blazor apps on .Net 6, with Visual Studio for Mac and it works fine, despite running with Rosetta 2. It's actually faster developing like that than it was on my 2020 i5 MacBook air....

Collapse
bartosz profile image
Bartosz Wójcik

This is waste of time and money. It's unrepairable (you won't be able to replace SSD, it's soldered to the board haha). It's completely new architecture.

youtube.com/watch?v=u7LOljirF6g

Plus I don't support company that uses cheap work labor from China (it's well documented over the years):

cnsnews.com/commentary/terence-p-j...

How much do you make? Read how much chinese workers make building your macs:

"Apple and Foxconn both said this issue has been corrected. Most factory workers are paid about 4,000 yuan ($562) a month, one CLW investigator found. After taxes and mandatory fees, they get roughly 3,000 yuan a month, according to the CLW report"

fortune.com/2019/09/09/apple-admit...

They make 463 USD per month so you can walk proudly with a new mac book...

16 GB of ram in 2021 is just hmm... try 64 GB next time :), RAM is cheap.

Every new AMD Ryzen 3 CPU will beat M1 in terms of performance.

Collapse
alexandrudanpop profile image
Alexandru-Dan Pop Author • Edited

Yep, I updated the Things to consider section with the SSD tear rumors.

Mine is still at 0% used after 1 month.
image of ssd check

I am not completely sold of on the idea that only Apple does profit on cheap labor. I think most hardware manufacturers do, unfortunately, so you need to consider this for all hardware you buy and probably most other things you buy.

Also, consider that the evolution in robotics manufacturing will slowly take over the manual labor over time.

Collapse
bartosz profile image
Bartosz Wójcik

It's not about SSD tear, but about the design of the hardware, to make it hard to replace parts, I can't imagine I cannot replace my own faulty hard drive to any other brand I wish.

Louis Rossmann also said he is unable to fix any new macs until 1-2 years, when he is finally able to get his hands on the unofficial schematics, and Apple is known for making things harder to independent repair shops to fix the macs for half the price they take.

Apple forbids manufacturers to sell replacement chips from their boards to anyone else than Apple:

youtu.be/lTpHa70DDX0?t=216

This company is not consumer, nor developer-friendly, they charge 30% off every app sold on their closed platform, keeping away everyone else and banning companies that tried to get payment some other way (Fortnite).

bbc.com/news/technology-55678496

Collapse
jaqko profile image
Jacko

In my opinion, it would be cool if some other companies like Microsoft took this mini-computer trend and priced it lower. I don't use Apple as much (besides the iPhone), but PCs have normally been very flexible for me, so I am able to code a game in Unity and play Rocket League on the same PC. That could be useful for coders/gamers on a budget.

Collapse
sjatkins profile image
Samantha Atkins

No.
I have wasted days trying to get my full stack up and running.
Even standard tools from Jetbrains randomly freeze up.
Parallels is severely broken for keeping a ubuntu desktop running. Ubuntu doesn't even have an ARM desktop ISO so you build you own out on top of ARM server. Mouse randomly stops working in that and audio not at all. And yes I do need real linux VM for some things.
Back on the M1 Mac you need two homebrew stacks one for M1 and one for intel to pick up various linux bits.
M1 hideshow on dock and menu bar stopped working.
M1 has crashed twice in last month
Many things I care about don't run on M1 yet and are pretty pokey on rosetta 2. Many don't work even there correctly.

Wifi is certainly slow. I don't have numbers to prove it but even hard line internet is slower on the M1.

Collapse
alexandrudanpop profile image
Alexandru-Dan Pop Author

Thanks for your input on this Samantha. I also experienced a crash.

Collapse
c_v_ya profile image
Constantine

Waiting for the M1X and Docker support as this is huge for me. But I'm overexcited about this and should probably stop reading and watching videos about how Apple silicon is almost butchering even top CPUs 😅

Collapse
andrewbaisden profile image
Andrew Baisden

Cool read I have the new M1 MacBook Pro I upgraded from an old Macbook Pro Retina. Everything is just better and I can see the performance improvements when I work and play. However like you mentioned it does not have great Docker support yet that is not a big issue for me as I barely use it at the moment.

I do use Android Studio though and it does not work well with Android emulators yet unless you use a workaround. I was not too bothered about loosing bootcamp as you could always use virtualisation or buy a windows machine.

My only concern is that NEW rumoured M1X Macbooks will come out this year and our new machines will be old by then as tech moves so fast 😅

Collapse
tiagomfcorreia profile image
Tiago Correia

Thanks for your insight on this. I'm really into buying a M1 Mac. But, for what I understood, I'm in a beginner learning phase and don't use much of the things you mentioned. I think I'm gonna buy it and, hopefully, when I'm in a higher level, these issues would be gone.

Collapse
vexonius profile image
vexonius

Our mobile team switched from late 2017 macbook pros to M1 powered ones. Xcode clean builds improved from 6 min average to under 2 min. So if you're doing native, it's worth it!

Collapse
alexandrudanpop profile image
Alexandru-Dan Pop Author

That is a huge gain indeed. Thanks for the feedback.

Collapse
eljayadobe profile image
Eljay-Adobe

Very timely! I had just put in an order for a Mac Mini M1, and I expect it any day now... you've given me a good heads-up what to expect. :-)

Collapse
michaelpierre profile image
Michael Pierre

I'll wait until Docker is fully supported

Collapse
ajinkyax profile image
Ajinkya Borade

I feel bad for people buying a MAC. its like purchasing a 400$ keyboard, where as you could still get same features in 100$ keyboard.

Why not buy a gaming laptop with same price and install Linux ?

Collapse
jae profile image
Jae Beojkkoch

I'd like to test a M1 Mac as I am very intrigued about running on an ARM CPU.
The only problem stays the price that is too high for me.