- read

Is it too early for full-stack software developers to buy a Macbook with an M1 processor?

Işık 32

In this article, I will share my experiences with the M1 processor Macbook from the perspective of a software developer who uses software development languages and tools such as Node.js, Vue.js, Docker and has been actively using the Macbook M1 for about 4 months.

Working with m1 MacBook (ps: m1 has just support 1 external monitor natively)

Let’s talk about the good things first:
I want to say that they are really quiet, fast, great devices for work or everyday life. Its battery and processor performance is much better than the computers I have used before.
If you are not running too many virtual machines and processes, it offers a battery life of 6 to 8 hours while running.
If you are actively using virtual machines and nodes and are having a high-processing day, this time drops to 4 hours. Perfect for the traveling freelancer.
Compared to my previous lenovo computer with intel i5 10300h processor, it both heats up much less and offers about 6x better battery life.
Thanks to the Rosetta 2 emulator, almost all applications run smoothly. It draws attention to the word “almost” here, and I’ll touch on that in the negative section below.

Now let’s talk about my experience and the negative aspects.
There are many review articles and videos about macbooks with m1 processors on platforms on the internet. There were some problems that I did not see in those reviews, but I experienced while using it. Of course, these problems have solutions, but they are either tedious or you need to change some of your methods.

If you are a node.js developer like me and the node version you are working with is less than v15.5, it works very slowly and/or incorrectly. Rosetta is experiencing lag when converting it. This can cause you to wake up even an average node server in 1 minute. Depending on the size of the project and the libraries it uses, when you npm install, there are even 15–20 minutes of operations. :(

When we work on Node 16 and above, these problems do not exist. However, if you have to work with a low version due to the projects we are working on, server stand-up time and debug console delays can drive you crazy.

Another problem arises when you work with some compiler/transpiler like node-sass. Getting the project up and running can get really tiring. I’m leaving an open issue here as an example: https://github.com/sass/node-sass/issues/3033

I had two problems with Docker (My current version: 4.1.1 (69879)).
1- You have a multi-stage dockerfile and if you want to orchestrate them, you will encounter many minor bugs, and you need to make some of your dockerfiles different stages for m1 and change your naming.
2- Docker Compose takes too much time on m1 to build and install complex applications.

As a result, none of the problems are unsolvable, but some problems take unnecessary time in development and it gets frustrating sometimes. If you’re going to debug with legacy node versions, woe to you…

So would I buy it again if I knew about these issues before? Would I buy it again with these issues?
If I had to refresh my computer yes I would.
But if I already have a good computer, I would wait a little longer before switching to m1 processors.