MacBook Pro 2018 & Software Essentials

After 3 years, it was time to retire the old Macbook Pro 2015. It was a real workhorse, in use 6-10 hours a day, most days (at least enough to result in erosion on the aluminium edging on the hand rests). It’s been replaced with a Macbook Pro 2018, a touchbar line with I gather, a less fragile keyboard than earlier touchhbar models.

Speaking of keyboards. This one’s ok, good enough to get used to.The travel is slight but responsive enough for this non-touch typist. It’s only been a few days, but so far I amn’t making much use of the much discussed touchbar other than touch login, which is neat and works reliably compared to the Thinkpad’s attempt at this with a scanner a long time ago. The idea of a touchbar isn’t bad, I don’t agree with the gimmick school of thought, but the bar’s location doesn’t seem affordable. For example -CMD-L is far easier than reaching up to touch “Search or type URL”, volume control now requires two taps and a slide instead of hitting a function button [1] and so on. I’m conditioned from iPhone to use touch with my thumbs rather than my fingers - I’m sure they thought about placing a touch bar above the touchpad and that it wasn’t practical. I’m carrying a few extra dongles, because the physical device world has become a legacy with the arrival of USB-C, and I gather that’s contentious also, but it’s mostly fine. It’s smaller and much lighter than the old Pro, around the same as an Air. Size and weight’s not so important to me, but I can imagine it being a real attraction for a lot of people. Overall, it seems like a decent machine, with the hope I don’t end up with keyboard problems.

That said. It feels like Apple’s heart isn’t in laptops these days - I suspect they’d rather I move on to use an iPad, and dispense with this horseless typewriter.

Essentials

There’s always extra software you have to install, what you might call essentials. Here’s the list:

  • 1Password

  • Sizeup

  • Emacs and Orgmode

  • Google Backup and Sync

  • Chrome

  • OhMyZsh

  • Amphetamine

  • Kindle

  • Wunderlist

  • Brew

  • gpg (brew)

  • Python 3 / IPython (brew)

  • Pyenv (brew)

  • git (brew)

  • OpenJDK and jenv (brew)

  • Scala / SBT (brew)

  • Gradle (brew)

  • Conda

  • Node.js / JavaScript

  • Go

  • Docker

  • IDEA

  • PyCharm

  • VS Code

  • Draw.io

  • Pulse Secure

  • Wireshark

  • Protocol buffers

  • Sonos

  • Spotify

  • Paste2 / Copied (still to decide, but I need a clipboard that works across iOS and Mac)

This is a very different list to the last time I wrote down some notes, back in 2010 for a W500 Thinkpad, the last non-Mac laptop I used before switching. Rounding up to a decade, it’s an opportunity to reflect.

Aside from the obvious Mac vs Linux differences, there have been some notable changes over the years. First is cloud based software (or data) is the default. Changing machines is very easy versus the old days of copying files across and I rarely worry about losing what’s important anymore. Second is the complementary ongoing migration of apps into the browser. In particular, Word and Excel are gone, as is Keynote.

I thought perhaps the essentials list this time would be shorter but it’s a bit longer even allowing for cloud. I put this down to a sprawl in developer tools. There are five programming languages in the list largely because I have to be able to review code in them, after a long run of polyglot exuberance in our industry. I do not expect that number to reduce at this point, possibly ever.

Here’s what’s the same over the course of nearly a decade:

  • Emacs / Org mode

  • gpg

  • git

  • Python / IPython

  • IDEA

  • Protocol buffers

  • Wireshark

Some things stick. Org mode remains the rock upon which I organise my life. Wunderlist has become the go to with my family. Password Safe has been replaced by 1Password, but a password manager is I think essential, and for everyone now. Wireshark is solid evidence networking can’t be made transparent. JetBrain’s IDEA survived the onslaught from NetBeans and Eclipse and has in fact thrived - I’m a very happy customer of PyCharm, with my RubyMine licence in cryostasis for the time being. I can’t believe I’ve been using protobufs for a decade. I also can’t believe I’ve been using git for a decade; or that I still miss Mercurial. Python and Java I’ve been using for more than 20 years (😮). JavaScript a little less, but for long periods I didn’t have to. At this point it feels like they are never going away, fair candidates to become 50 year languages in the industry [1]. And in JavaScript’s case we already know that it will be relevant at least as far out as 2035.


[1] Thanks to Dj Walker-Morgan for pointing out you can hold touch and drag on the volume control.

[2] C is coming up to the fifty year mark, in 2022.