A quick google will show experienced developers are fussy about how their development environments. And rightly so, since a developer spends all day, every day, working on their computer and a well setup environment can significantly increase productivity.
Not surprisingly, it starts with the hardware. My laptop of choice is a Thinkpad, currently a X1 Yoga (generation 3). It combines a great keyboard, trackpoint, touch screen and the ability to run any operating system I want. Most people laugh these days when I mention my love of trackpoints. Isn’t that a relic from a bye-gone era? Perhaps, but its non-negotiable for me (try it one day and you might see why).
Which of course posed a problem when I started developing Zerista’s iOS app. For me, MacBook’s were totally out of the question. They don’t have a trackpad and have a disastrously bad keyboard. And not having a touch screen was also a minus, over the years I’ve found it surprising how much I miss them when I don’t have one.
The solution was to create a Hackintosh, a standard PC that can natively boot MacOS. It turns out Thinkpads are great at this – I’ve been running MacOS on them for almost a decade now. As the years have gone by, its been getting easier and easier particularly since PC’s transitioned to UEFI and Clover became the bootloader of choice.
Using this setup, I’ve written the Zerista app which is over 100,000 lines of code and submitted over a thousand different versions of it to iTunes. So it works great!
Of course, once you have a laptop booting Windows and MacOS, its not much of a stretch to add in Linux. Since Zerista’s servers run CentOS, and I like using cutting-edge software, Fedora has been the best choice for me.
I find that I tend to spend chunks of time per operating system versus constantly switching. If I’m doing server development, I’ll usually run Windows for a week. Then the next week I’ll switch over to MacOS for doing app development. And sometimes I’ll use Fedora to test out our latest devops switches. Or to test out the latest version of the Gnome desktop only to find it still lacks the polish needed to make me want to switch away from Windows or MacOs.