Showing posts with label #AppleM1. Show all posts
Showing posts with label #AppleM1. Show all posts

Wednesday, April 7, 2021

As a backend engineer, will Apple M1 work for me?

 

Introduction

Apple divorcing from Intel was about as expected as the collapse of Kim Kardashian’s marriage to Kanye West. For years we have been watching all the major cell phone manufacturers ditching Qualcomm as fast as you can say “SIM Card” and, as was expected, the PC manufacturers have decided it was their turn. As with people, the only one you can really trust is yourself, and that is the same for massive technological empires. Beyond that, software's, languages, and all other things follow one steady path through this journey of life, and that is, after being taxed disproportionately, at some point they die. x86 has been getting caught up to for years. Intel has slowly become a 21st century case study in the Innovator’s Dilemma as ARM is showing x86 the door with lower power draw and higher performance.  AMD, which for the record still makes x86 chipsets, is eating Intel for breakfast as their chips feature a 7nm die size; something obtained after a summer of ditching the pizza parlor for the running trails. This article could go on and on about how Intel is suffering in the short-term to the new obsession with ARM processors, and quite frankly, everyone else, but this is just to state why Apple has switched from Intel to in-house silicon. Because of the switch, I know many readers like you are wondering if M1 silicon will work for your job as a backend engineer. 

Disclaimer

I must start by disclosing I have worked professionally in a full-stack and embedded engineering role using Macintosh products. Some of you will read this and assume I am a paid fanboy for the team they have assembled in Cupertino, so let me start by saying that I will use my experience with the products to paint an accurate picture of Macintosh and not some glowing review of the greatness of Tim Cook and his cadre of scientists and engineers. I think Windows has many viable options for backend engineers, and at better price points. Linux is a viable option too, and thank the geniuses at the Raspberry Pi foundation for making Linux the OS of my favorite computer. However, this is simply to answer the question, as a backend engineer, will the Apple M1 work for me. 

The Wrong Reasons why you should buy M1

So, in a world of good and bad reasons, I find it best to bring you the worst first. If you choose to sip on silver-tinted Kool-Aid, and ask Siri sage questions such as “how do I fry an egg”, you have probably fallen into the camp of the Mac faithful, and well, we are going to get eviscerated in the comment section, but nobody will get our diamond hands off of our favorite plug and play machines. Sure, we may outspend our Windows brethren, and we may not be as in-touch with the spirits of computer science as our friend on Linux (because you are allowed one, no more, no less), but we are also spending our time actually doing our job rather than installing drivers. This brings me to my first wrong reason:

You Don’t Know Anything Else

You have been bellying up to the bar of Macintosh for long. You actually know how to use homebrew without looking up commands. Debian and Red Hat sound like secret societies (which, to be fair, they kind of are). Bill Gates has not found a way to spy on you yet. Apple is quickly becoming a part of your dependency list. As someone who has worked in Windows, Macintosh, and Linux as a professional, I am saddened if you are stuck with Mac. But I get it. It’s okay, we all have that thing we cling tightly to; the thing which we watch every update to see when it will finally go away. I have woken up with a cold sweat imagining the day they sunset CoolTerm. I think such concerns are far off for Apple, so fret not, you are more than safe hitching your career to that wagon. That being said, if you are making this decision because you couldn’t fathom using any other OS, perhaps this is the time you branch out a little, and I promise, this will go better than that time your mom told you to try out for the soccer team. 

One Word - PowerPC

Tim Cook reassured an audience of non-technologists by saying that Apple would support their Intel-based Macs for “years”. Well, some remember the transition from PowerPC to x86, and let me tell you, those “years of support” looked more like “long enough to let the existing staff learn the new chip” than “we stand behind what we make”. So if you are a backend engineer, and you are going to stay with Macintosh, I would definitely recommend against buying a Mac until you can get your hands on an M1. In fact, including all my good reasons, this bad reason is probably the best reason for you to buy an M1 as a backend engineer if you NEED a Mac. 

It Is the Shiniest Toy

Being on the forefront of any major technological change is always going to be difficult, and that is true whether you are one of those types that lives a step or two beyond stable releases or even just buying the newest cell phone. Early reports show that there are already performance bugs that are present in some of our favorite software's like Chromium, Docker, Edge, and Firefox. These will subside as time goes on, and it is up to worthy pioneers to blaze a trail. Then again, do not rush to the frontier if you are doing it for the cowboy hat. Beyond that, as a Mac buyer for years, I know that you can save considerably when you wait for the first refurbs to come back. 

The Right Reasons why you should buy M1 as a backend engineer

The Battery and The Fan

ARM used to be reserved for micro-controllers, cellphones, and other things which could afford to slow down a little bit in the name of consuming less power. Well, I for one am glad to see x86’s skinny cousin getting his time in the gym, and coming back to school this fall as a lean mean fighting machine. Initial reviews say that the new M1 silicon is a beast when it comes to battery life, and you are going to need that for when you are actually going places again and not firmly affixed to wherever your Mac charger is plugged in. I have heard reports of eight hours of active development with no need for plugging in, and that is frankly impressive. A quieter fan is a welcome sound to my ears. As a software engineer, I have enough people that whine at me over the tasks I ask them to perform, my computer doesn’t need to as well. 

SSD

On the Mac, a lightning fast SSD is essential to executing database queries and subsequently file accesses quickly. Whether full-stack, backend, frontend, business-end or the end, you are going to find that a fast SSD is going to make you faster, and therefore better at your job, and happier with your productivity. The write speed between the previous version of the MacBook Air and the M1 has gone from 1007MB/s to 2190MB/s. Color the computer engineer in me impressed, and you can cash in those performance increases with a marked improvement in what you get done during the workday.

GPU and RAM

I know this affects the front-end engineers more, but the GPU is becoming ever so important in the world of block chains as well. And everyone always wants more RAM, I mean, you might be using this to game after work, and that is important too. The new M1 architecture has less RAM than the Intel versions of the computer, however, the new integrated architecture means a lot more bang for your buck with the RAM that you do have. For example, the 8GB and 16GB Mac’s with M1 have reported very little difference in performance, so it is debatable if the RAM difference is significant. That being said, some of the Intel offerings by Mac do currently have 64GB of RAM, so if that is of dire urgency, by all means. Then again, iPhone users with 4GB of RAM are getting performance numbers on par with Android devices with over 8GB, so it may just be a matter of time for these laptops with less memory to catch up, if they have not already. 

CPU

I am going to just leave these scores from Cinebench and GeekBench here: 


M1

Intel i7 1185G7

Single Core Cinebench

1516

1548

Multi-Core Cinebench

7698

6263

Single-Core Geekbench

1778

1518

Multi-Core Geekbench

7518

6097

Considering that the Intel offering listed is the current industry leader, and that the M1 won in all categories except the single-core test by Cinebench, you could at least say that the M1 was a worthy competitor. And you would be right. Consider the fact that the fans never turned on for the M1 tests due to the lower power consumption of the ARM chips, and I will leave it to you to figure out who is leaving who in the dust. 

The Reasons why you should NOT buy M1 as a backend engineer

GPU and Graphics

You can not have an external GPU, and are limited to one external monitor. I don’t know about you, but following the rule of 5 (every five years of development experience can and must be cashed in for another monitor in your dev environment), this is simply not allowed. For that matter, Minecraft is going to run horribly without the external Apple eGPU, so anyone who wants to game on this machine after work, good luck. I have heard the GPU is on par with competitors outside of these limitations, but this is listed first, because this is of dire importance to anyone envisioning impressing their coworkers at the after-hours LAN party. Without the external GPU, who knows, maybe you won’t even be invited. 

Dual-Boot

As I said, some professionals need this to work with multiple OS’s, and as a backend engineer, that may be the case. You must remember that there is less RAM on this laptop and not all VM’s are ready to use the integrated memory efficiently… You may find yourself working with 8 total gigs of RAM on a Windows machine and although going back to 2014 to avoid COVID is alluring, I am very much a fan of the increased processing power the past six years have brought us technologically. 

IDE’s and other software

If you use XCode, and nothing else, skip this section. You already are optimized, you don’t have to consider this at all. If you don’t, well, at best your favorite apps will perform at the same level of performance they have been. Rosetta2 may be bridging the gap, and some like VS Code are announcing a plan to get with the times, but like I said earlier, being the first means you’re usually paying a larger price than the premium of being the first to have something. JetBrains and Eclipse have also announced plans to make adaptations for the Mac silicon, but these things take time. For that matter, consider that some of your favorite tools that are not already optimized are going to need to be, and not all of them have the backing that products like Visual Studio do. 

You are happy with your computer

If you are not currently a Mac user, you are probably in the camp that should wait for the pioneers to figure M1 out, and that includes all the software out there that is going to need to eventually break out of Rosetta2. If you have a Mac that can extend you another couple years, well, you will see the price of M1 and won’t be caught bagholding when inevitably the Intel support falls away. It is exciting to be on the cutting edge, but sometimes you get cut and it hurts. 

The Answer

As a backend engineer, you are more than likely going to be just fine with the M1 silicon in the long-run. You are going to be caught in the awkward growing pains of Apple’s new hardware, as you watch your instances of Windows slow down, and you run into problems with some of your favorite applications like has been reported with Docker as of the time of this article. The graphics limitations could be a concern, but if you are all work, no play, and you don’t even know how to pronounce Adobe, you are probably fine working with the graphics card that ships with that. However, also consider that blockchains and scientific computing are intensive on the graphics card as well, so you are not only going to be limited in how many frames you can mine Redstone at. I personally love Mac and do full-stack development with it, and I am waiting for refurbs and the software ecosystem to catch up, but for those of you that NEED to be on the cutting edge, I think this is going to be a very solid machine. Now excuse me while I ssh into my Pi from my MacBook Pro and play Pong. 

Written By: Grant Udstrand, writer for copperlunatic.com

Comic time: Professional SCRUM hogger