Back to Windows as a primary dev platform

· by Steve · Read in about 7 min · (1468 Words)

My primary development machine has been a series of nicely specced MacBook Pros for about 7 years. Over that time I’ve grown to love these shiny boxes of aspiration.

My current machine dropped out of AppleCare in 2016 though, so it was time to start thinking about a replacement for my main work machine - as usual the previous model would be downgraded to our casual machine and would stick around for a good few years afterwards (or so I thought). So like many people I watched the 2016 MacBook Pro announcement with initial excitement, followed by a creeping “WTF?!”.

Touch Bar: a costly gimmick in more than just $$

Screw this thing

Like a lot of developers, the 2016 MacBook Pro Touch Bar does nothing for me. At best, it’s a gimmick I don’t really need - I’m a keyboard jockey and I do everything with muscle memory, the last thing I want to be doing is looking down at the keyboard and hunting / pecking, as bright and colourful as those little targets might be.

But at worst, that OLED Touch Bar has not only pushed the price of the MacBook Pro much higher than it warrants, but, sin of all sins, it has removed a genuinely tactile key that I, and many other developers, use regularly: the Escape key.

You can’t just take away a key we use regularly and replace it with a response-less glass surface and pretend nothing happened. To have Craig Federighi laughing about how function keys are so 1970s IBM while completely ignoring the removal of the Escape key was particularly insulting. I used a key you just removed 10 times just while you’ve been chuckling at your crap joke, Craig! 😫

I’m sure there are those who say the Touch Bar is useful but truth is, removing a key I use all the time and charging me hundreds of pounds extra for the ‘privilege’ of a mini Apple Watch to replace it feels like a “F*** You”. You lost me as a customer for the 2016 rev Apple, and from the channels I follow I think I’m far from alone.

So I figured I’d hang on to my old MBP and wait to see what happened.

Time to die

Unfortunately in the last couple of weeks my 2013 MacBook Pro has started occasionally kernel panicking with a RAM failure, and the “T” key has phases where it decides to either not work, or randomly generate keystrokes. A number of people I know on Twitter have reported that their 2013 MBPs are similarly starting to fail, leading to this conclusion:

Given how robust Apple hardware used to feel, this sucks pretty hard. Almost nothing is fixable in these machines any more; both the RAM and the keyboard are incorporated into the logic board, making it uneconomical to repair. 😭

Suddenly, I needed to do something about this pronto; waiting and seeing was no longer an option.

MacBook 13” Without Touch Bar

I considered this option - a real Escape key, and for less money! But, as a primary dev machine it just wouldn’t fly; even if you ignored the smaller screen and slower CPUs, it only has 2 USB-C ports, one of which you have to use for power.

I use an external 4K monitor too, so that’s both of them used; and I also like to use wired Gigabit when I’m home since it’s much faster, and have an external HDD. Yes I could have added a hub, but here’s the problem; the 2 things I would use, power and 4K display, are both not recommended to run through a hub. Drawing significant bandwidth through a hub sharing a 4K display could cause issues, since it’s demanding @60Hz on its own, and on the power side AFAICT most hubs do not supply the full wattage expected from a MBP on full charge, not even counting the power additional devices might draw. Some of them claim that’s it’s OK that it doesn’t meet Apple’s spec and it just means the MBP charges slower, but I’m iffy on that.

So really, 2 ports for a primary machine is just not enough. For me, anyway.

No new iMacs

I had considered buying an iMac; I don’t travel very much any more so there’s no real need for my main machine to be portable now. But Apple haven’t updated the iMac in 18 months, and when combined with a post-Brexit-malaise drop in Sterling, a 2015 iMac is looking very overpriced for what it is.

Plus, once again it’s not a machine that can be fixed easily. I used to be more laid back about that because my Apple machines have lasted at least 6-7+ years, but having an entire high-end machine become a write-off after 3.5 years is less attractive.

There’s also this sneaky feeling that Apple don’t care about our customer segment any more. And I’m not even one of those who paid through the nose for a Mac Pro that never got any updates and was just left hanging. How do you do that to your most fanatical, big spending customers? 🤔

Hackintosh?

Lastly, I considered building a Hackintosh. The process is a lot more reliable these days, although you never know what Apple might do in future updates. I like using macOS enough that it was a serious option on the table that I almost took.

But, the uncertainty of the future of such a route, plus the fact that my development priorities are changing (see below), meant I eventually ruled it out.

Changing priorities

I decided to start doing game development late last year, and I’ve been using my MacBook Pro to do it. It works great for the most part. But, if I’m completely honest, a Mac isn’t the place where gamedev is most suited:

  • Mac GPU drivers are always well behind the curve
  • Many engines & gamedev tools support Windows better, or are even Windows only
  • The vast majority of Steam/Itch.io customers are on Windows; it makes sense to be using what your customers use most of the time

So far I’ve just managed to ignore this, but the difficulty in refreshing my Mac hardware in a way I felt happy with forced me to really look at things again.

And like it or not, I have to admit that as a budding game developer, Windows is a more suitable platform. I’ll still need access to a Mac if I want to port something to iPad (I don’t plan to make any phone games) but that won’t be my primary target.

A tough decision

I’ve really agonised about this becuase I genuinely love my Mac dev environment. There are things it does that are much nicer for me as a user than Windows:

  • Consistent support of Retina/HiDPI screens
  • A terminal that’s a joy to use (ZSH - yes I know about Windows Subsystem For Linux but grafting a whole separate OS onto the side isn’t the same thing as a great terminal that works consistently with everything else)
  • Application state restoration when I reboot - even my terminal comes back to where it was
  • Apps that are just nicer looking - Cocoa’s robust history shows all the time and every app I use on both platforms is way nicer on macOS
  • Homebrew - just the best way to get supplemental system software

Ultimately though, I can’t afford to blow a vastly inflated sum of money on something that I don’t like much (MBP 2016), is out of date (iMac 2015), which will become unfixable after 3 years (having lost my previous faith in its longevity), and which is no longer fits my changing work environment best. It’s really sad, but I cannot ignore the logical argument any longer, even if emotionally I’d love to carry on with macOS.

It’s not all Apple’s fault; my circumstances changed, and the drop in Sterling because of Brexit has exacerbated things. But despite that, I do think their hardware offerings have dropped the ball lately, at least outside the consumer / prosumer space. Maybe they’ll fix that to a degree with an iMac update soon, but it will be too late for me.

Mac; back to a secondary platform

I’ll still have Macs in the house; my wife’s 2011 iMac is now my dev machine for macOS things, and I may well buy a new casual Mac laptop for travelling, just not a tricked-out primary dev machine.

Essentially things will be back to how they were in 2009 and before; Mac as a casual / secondary platform for me.

Adios to the “Mac as primary dev machine” years, 2010-2017. 😞