“It’s not for you!”

The Mac Pro is a computer for nobody

Mac Pro

A brief history lesson

I’ve been waiting a long time for a desktop Mac. Six years have passed since Apple announced the 2013 Mac Pro. When they debuted that computer, I was still in college. I was disappointed by how expensive it was. I couldn’t afford it; fair enough, it wasn’t a computer for college students. Beyond the price, though, I was disappointed in the computer itself.

The Mac Pro (2013) launched as an ostensibly GPU-forward compute platform with two (count ’em!) FirePro GPUs. Apple was proud of it. “Can’t innovate anymore my ass!”. The problem was that these GPUs were already two years old when the Mac Pro started shipping. The FirePro GPUs were rebranded 7000-series Radeon GPUs (Tahiti architecture), announced in 2011 and shipped in January 2012.

When the Mac Pro shipped, AMD had already moved on to their Hawaii architecture. Nvidia, of course, also had newer GPUs available. At the time, Nvidia’s GTX Titan was much faster (and, importantly, far more power-efficient) than the FirePro GPUs Apple put in the Mac Pro. The D700 was equivalent to a Radeon 7970, and the Titan, despite being a much newer and much faster GPU, hardly consumed any extra power compared to the 7970. With outdated GPUs, the 2013 Mac Pro missed out on a machine learning revolution mostly powered by CUDA. It disappointed gamers and game developers, who needed the latest and most powerful GPUs. It was mostly a computer for film professionals to run Final Cut on.

Though Apple never admitted it, this was a computer limited not by component availability, not by a ‘thermal corner’, but by business decisions from within Apple.

Hope for the future

As much as I wish that old Mac Pro was ancient history, Apple was selling it new, with no hardware updates, up until last week. A lot has happened since 2013. I’m no longer a college student. I’m lucky enough to have been employed full-time since 2015, mostly as an iOS developer. I’ve been hoping and waiting for a more rational Mac Pro; one with a more reasonable set of tradeoffs that could be a powerful and flexible computer for a wider range of professionals. A computer for me!

At WWDC, Apple announced the 2019 Mac Pro. It’s not what I’d hoped for. You might be fooled by the PCIe expansion slots into thinking this is a more flexible computer, one applicable to more professions. Instead, I think it’s even more narrowly focused solely on the needs of film professionals. The new Mac Pro is bad, not just because of the price. Apple has made some of the same mistakes they made with the 2013 Mac Pro.

Here we go again

Apple launched another pro computer with old GPUs.

At a blistering base price of $6,000, you’d think the new Mac Pro would give you at least mid-range, modern GPU compute power. You’d be wrong. At $6,000, you get a Radeon 580X, the “pro” version of a GPU launched more than two years ago. Sound familiar?

At that price, you not only get a two-year-old GPU (and that’s if you purchase on launch day), you get only 256 GB of storage. What sort of professional only needs an iPhone’s worth of storage? I couldn’t even fully back up my iPhone XS on the Mac Pro. The base-model iMac Pro comes with 4 times the storage! And a screen!

Why would Apple choose a two-year-old GPU for their new flagship desktop computer? Why would they only include 256 GB of storage? At least partly, I think the answer is that Apple was trying really hard to get the base price of this computer down. It was a mistake to market this as a $6,000 computer.

The only thing “Pro” about the base model Mac Pro is the Xeon processor.

At least $24,000 worth of aluminum

While we’re on the topic of dishonest pricing, the display is even more egregious. I was so shocked by the listed price of $4,999 that I missed the slide showing the stand alone cost $999! Why list the prices separately? If this is a computer only for the most demanding of pros, why not just list the price for a full display?

The display is perfect example of hyper-targeting the filmmaker demographic. Only filmmakers care about “reference modes” because only film professionals deal with digital cinema color modes. This isn’t a display for pros, it’s a display for filmmakers. I’m an iOS developer, a different kind of professional. I’d like a display that can output 120Hz, to preview the kind of smooth motion my apps have on the iPad Pro’s “ProMotion” display. This $6,000 display can only output 60Hz.

The tech press would have you believe the new Mac Pro is a computer for the most demanding of professionals. In reality, it’s a computer only for demanding filmmakers with unlimited budgets.

A smarter way to storyboard

Pure protocol factory for Interface Builder-based views

I’ll admit: I love laying out views in Interface Builder. It’s a bit of a controversial topic but for me, there’s no faster way to build screens for an app. It’s indispensable to be able to see exactly how my views look in IB without recompiling my whole app.

Interface Builder has downsides, no doubt. One of the biggest: multiple developers working on a single Storyboard file can easily cause merge conflicts that are hard or impossible to reconcile. The solution, for me, is to create per-screen Storyboards (really, one for every UIViewController) and handle transitions entirely in code. This approach means that Storyboard views need to be instantiated pretty often in code, which can be a bit ugly:

class MyViewController: UIViewController {
    /// ...

let storyboard = UIStoryboard(name: "MyViewController",
                              bundle: Bundle(for: MyViewController.self))
guard let controller = storyboard.instantiateInitialViewController() as? MyViewController else {
Continue reading →