I have been a happy Apple Macbook Pro (MBP) user for more than 10 years. Apple MBP is an awesome product. It is tailor made for software engineers. MBP has been the golden standard for a development laptops for the last decade.
Apple is alienating developers
New Macbook Pro has no ESC key. As a heavy user of vim and bash, ESC key is very important to me. Having a flat Touch area in Apple’s new Touch bar can never replace the important sensitive tactile feel of a physical key, especially the one as important as the ESC key. To make things worse, gone are the important physical ports such as HDMI, USB, Thunderbolt ports and Magsafe connector. On top of all that I get no improvements in hardware either.
Touchbar is the only addition, for the expensive price. Yes, it is fancy, but it is context sensitive to know what to press. Not only is it more work, its also disruptive to most people’s workflow. Seems like Apple has decided to ditch the MacBook users and focus only on iPhone.
Apple has discontinued the Mac Monitor. The Mac monitor is not retina resolution, but it is probably the best monitor I have used in a long time. Its really a good product with a lot of happy users, yet Apple discontinued it. Why? I haven’t the foggiest idea.
Can windows fill the void?
Absolutely not! Microsoft is trying to attract developers back to Windows by adding features such as native linux support in Windows 10 (Linux utilities from Ubuntu repository run natively in windows). However, Microsoft’s real customers are IT administrators. IT guys love rebooting my windows machine while I’m doing important work. This is completely unacceptable.
Hardware-wise, Surface is getting good reviews. It looks okay. I think 2013 MBP is still a better product than the Surface.
Based on my experience with Windows, each update slows down the computer. Also its easily fragmenting file system tends to affect performance. Most heavily attacked operating system, requiring me to install a performance-draining anti-virus software.
A majority of the software I use is open source. Why the operating system be any different?
What Made Apple Macbook Pro Great?
Let’s look at what made the previous Apple MBP great for development.
Unix
Apple Mac OS X is a derivative of BSD unix. So most of the unix utilities are natively available. Because of this all GNU software can be compiled and installed on Mac OS X. SSH, Bash, Python, NodeJS, Perl, Make and GCC just to name a few.
Package managers
Personally I use “brew” to install the software I need. Mostly because the experience is similar to Linux.
Clean UI
Mac has mission control, multiple desktops, gestures, Dock, App Store etc. DMG files help run software without installing, which makes it useful when I am trying something new. Installing and Uninstalling Apps in Mac is as simple as copying and deleting a file; a very elegant approach.
Updates
Each new release of Mac OS X enhances performance significantly and upgrade is seamless. Apple provides software updates for older macs for more than 5 years. Thus a Macbook is useful for at least 5 years; Great value for money.
Hardware
Great trackpad! Nothing comes close to mac trackpad. I think it is better than the mouse. This is a true innovation, still unmatched by competition.
Mac has backlit keyboard for years, which is handy when working in the dark. The keyboard has a great feel, right size and I think it is less noisy. Retina screen is pretty good. I think other laptops are catching up to Retina resolution. Magsafe power adaptor, facetime camera, battery life and thunderbolt are other things that make MacBook truly great.
Still no laptop can be opened with one finger, except Macbook.
My 2013 MacBook Pro works great after 3 years and better than most laptops in the market. I have an older 2006 MBP that still works but slowed down.
What do developers’ need?
Developers need fully functional command line and proper GUI programs. Of Course, powerful CPU with a lot of memory is needed. Good GPU would be nice too!
Mac has command line utilities, great GUI programs and hardware. Windows has decent GUI programs, rudimentary command line and decent hardware. Linux has fantastic command line, so-so GUI programs and decent hardware. For windows and Linux, hardware is same.
Is there an Alternative?
Of course there is. It would be a Linux Laptop.
However, None of the Linux distributions have good GUI programs, except Android. Android has great GUI and Applications. However, Android only runs on Mobile devices and lacks development tools.
Linux has awesome development tools. All languages, tools, frameworks and libraries are developed and tested in Linux. Mobile and cloud run on Linux.
It is technically possible to bring the App eco-system from Playstore, GNU eco-system from Debian(Ubuntu) on top of a Linux Kernel (UNIX).
Can Android be supported on PC hardware?
If Android is ported and supported on PC (x86_64) hardware, I think it directly addresses the needs of a developer. An Android laptop would be a killer product for today’s developers.
Think of a full-fledged Linux laptop powered by Android Apps, Linux kernel and GNU utilities. Like Google Pixel Phone, but a Linux Laptop tailor made for developers. That would be awesome!
Google, I hope you are listening!