Today I've officially retired my MacBook: client data has been wiped, development tools removed, and SSH keys migrated. From now on my trusty old MacBook will be taking it easy; no longer will it need to worry about the likes of compilers and build systems.
For the past three years I've used a MacBook Air as my everyday laptop - I initially bought it for personal use, but quickly became quite impressed with how well it coped with everything I threw at it. To Apple's credit, it's still going strong and serving me well: quite a bargain for the lowest-tier model!
Apart from administration tasks (I've rather fell for Numbers and Keynote) - I'll now be 100% Linux; and that seems quite a rarity.. even in Tech.
I've long ran a combination of Arch Linux and Fedora Linux - both inside and outside the workplace. Yet I've realised that even working in Tech and dealing with Developers on a day-to-day basis - people get pretty surprised about daily use of Linux on the Desktop.
Why can't Linux win over the "dev crowd"?
Amongst the many people I've had the pleasure of working with, I can count those who use Linux on one hand. If this doesn't seem weird enough, I've worked in environments that have been targetting Linux systems exclusively! (Be it on the Web, on Mobile, or on IoT devices.)
The level of distrust for Linux has even gone so far as to elicit requests from one company that I not use Linux during development, as supposedly their toolchain wasn't compatible. This was made quite amusing as their product was targeting Linux. (For the record, I got the toolchain running with no fuss during an evening - and subsequently spent the rest of the contract on a Fedora machine.)
So why are developers so reluctant to give it a go?
Well, it's good to have an Operating System that actually.. y'know, works properly?
Maybe I keep winning the lottery of driver-luck, but every set of hardware I've thrown at Linux has worked nearly immediately out of the box - and has done for the past 5 or so years.
Even if it works though, what about all the software I rely upon?
My daily requirements are Chrome, Spotify, Slack, VS Code, various JetBrains IDEs, and a good Markdown editor; these all work perfectly - in fact I have nearly all of them running whilst I type this! Similarly, I've yet to find any development or operations specific tools not available on Linux.
Alright, but it's not exactly user friendly is it?
There are some really good quality user-friendly distributions out there, specifically the likes of Ubuntu; and combined with the vibrant communities based around these distros, it's quite easy to answer any questions via Google.
Wait, "vibrant community"? Isn't the Linux community a bunch of jerks on IRC...?
Traditionally... well yeah. In more recent times though - and possibly as an upside on the commercialisation encouraged by the likes of Canonical - the community has shifted in tone. Honestly though, maybe pass on Arch Linux.. ;)
Ok, but it is ugly isn't it?
I personally think my new work config is rather good looking, and I set it up entirely whilst waiting for macOS High Sierra to install on my MacBook...!
Ugly? A near-stock installation of Elementary OS running the Pantheon Desktop Environment.
It's Elementary OS running it's default Desktop Environment, Pantheon. As an Ubuntu derived distribution, it has a brilliant eco-system of software packages and a vibrant community if things go wrong.
Why do Developers ❤️ Apple?
Please don't misjudge the tone of this article though; I'm a big lover of Apple myself. With that in mind, I can only put this love affair down to build quality and the fact that things just work.
By virtue of being one tightly-coupled package of software and hardware, Apple devices just work and they become more of a unified experience. The effects of this shouldn't be understated when considering productivity!
Ultimately though, never underestimate what you may find if you take a short step out of your comfort zone, or revisit a previously poor experience. Linux has changed a lot.