About ten years ago there was an article claiming that “Every Developer should have a MacBook Pro”, which listed a bunch of reasons, for example:
Yes these reasons are all true, even today. I would still be swiping happily on my touch pad, using spotlight to find my apps, making diagrams with Omnigraffle, install dev tools with brew install
, if I was still using my MacBook Pro. However, I’ve changed my preference and now I’m using Thinkpad + Ubuntu. I will explain why and I feel these reasons are true for most developers who use Linux.
Well that possibly because I am a Web developer; if you are working with Microsoft stack, in which case you don’t use macOS anyway, or you are making iOS apps, where you are forced to use macOS, this post is not for you.
By the end of 2016 Apple released a new generation of MacBook Pro equipped with “Touch Bar”. I agree that touch bar was a great design concept and helped many users who were not comfortable with the traditional function keys, but instead of calling it a “killer feature” as media did, I would say touch bar killed MacBook Pro itself.
I am a heavy Vim user and I believe many developers are too. The most important key for vim users is the “Esc” key. I need to press “Esc” evey a few seconds, of course without looking at where it is, and most important, I need to feel the physical key so that I know the key press was successful. However touch bar removed Esc key completely. This makes vim much harder to use.
Touch bar also removed the function keys which are very useful for debugging. PyCharm, WebStorm, Android Studio, or even Chrome Developer Tools, all these debug tools use F5~F11 as debug hot key. And again I need to “feel” the physical keys to make sure I am hitting the correct key. With touch bar, all of these are gone.
Linux has evolved a lot in recent years. I have been using Ubuntu for about one year and upgraded to Ubuntu 18.04 on the second day after its release. Ubuntu satisfies most of my daily needs. Look at what I am using every day:
All of these apps have Linux versions and they just work as good as on Mac OSX. LibreOffice is an exception because MS Office does not support Linux and, yes, MS Office and iWork are much better than LibreOffice. But LibreOffice is much more stable today, and since I don’t make documents every day, I feel it is good enough for me.
The only inconvenience I found in Linux is that I don’t have an app for making diagrams. Omnigraffle is way better than Inkscape. But luckily I don’t need to do that frequently either so I can just live with LibreOffice Draw or Google Drawings.
Some apps do not perform well under Mac OSX. One of the most important reason I migrated to Ubuntu is the limitation of VirtualBox.
VirtualBox is a free virtual machine software. In our workplace, we use vagrant, which is essentially a wrapper for VirtualBox. When I was still using MacBook Pro, I wrote code on my MacBook Pro and ran the code on Ubuntu running in VirtualBox. Since we use webpack to build the JavaScript code in VirtualBox, the problem was how to synchronize the changed files to VirtualBox. I tried some solutions but none of them work well:
Well I could not blame OSX because this was actually a problem of VirtualBox, but anyway the root reason was that our develop environment could not run directly on OSX.
Eventually I ended up wiping the OSX and installed Ubuntu on my MacBook Pro, and all the problems were gone.
In this post I explained why I think MacBook Pro is no longer a good choice for developers. Undoubtedly it is still a great laptop for UI/UX designers, Product Managers or people who need to do a lot of design / document work, but developers have better choice.
So what’s the choice? Just use any laptop and install Linux!
Thanks for reading. If you have the same feeling as me please clap and consider sharing this post!
UPDATE: To answer some questions from the responses.