A Software Developer’s Mac Pro

According to the transcript of the chat, Apple has a few different types of pro users it is considering:

  1. Video editors
  2. Music creators
  3. Graphic designers
  4. Scientists
  5. Engineers and Architects
  6. Developers

Developers you say?

Craig Federighi: I think if you use Xcode downloads as a metric, it’s possible software developers are actually our largest pro audience. It’s growing very quickly, its been fantastic.

Sounds like me. I download a lot of Xcode builds. I am important!

I can’t speak to what the other five types of users need, but I have a pretty good idea of what I’d want as an iOS developer who uses a Mac every day. Not that anyone in Cupertino is asking me, but if they did I’d say this is my dream Mac.

Let’s assume that Apple is going to ship this new Mac Pro in 2018. Yes, they are being coy with the semantics of when it will be available (“It won’t ship this year”), but just for this thought exercise, it’ll be on my desk around WWDC 2018.

A Tower of Boredom

Despite the fever dreams podcasters are having about what Phil Schiller meant when he said the new Mac Pro would be “a modular system,” I have no aspirations or desires for a stackable, modular computer where I can add an external GPU or other parts I desire. All I need is a tower that connects to an external monitor. That’s it.

Make it look like the Cheese Grater if you want, or spend time designing something more modern and attractive. If I get a say in size, I’d like something along the size of the Power Mac G4. The Cheese Grater design was nice, but it was also a chore to lug around the few times I needed to move or rearrange my desk.

I think it’s safe to assume there’s no optical drive required in a 2018-era computer, so that should hopefully offer some space and weight savings. I don’t need a micro-ATX architecture. ATX is fine. Just maybe make it not weigh 40 pounds if you can. We are developers, not bodybuilders.

CPU

I know Intel has been having trouble of recent years and has taken to tocking more than it’s ticking, but I also don’t see AMD as a viable alternative for CPUs[1]. Ryzen is interesting, but I’d rather have Kabylake or Cannonlake Xeons.

In terms of speed, the reality is that I haven’t been hamstrung by CPU performance in years. What I need more than faster CPUs is more cores. The trash can Mac Pro got this right. My iMac maxes out at 4-cores. I’m going to want at least 8 for a Mac Pro. Anything more than that seems overkill for me personally, but I can appreciate others might need 12 or more.

What will I use 8 cores for? Parallelizing my compilation in hopes of speeding it up. Well, assuming these Swift performance issues are resolved before you ship this thing.

GPU

I know you backed yourself into a thermal corner with the trash can. That’s in the past. All will be forgiven if you just default to using a boring old PCIe video card from Nvidia or AMD. The GTX 1080s are what I have my eyes on for upgrading my PC desktop to. I’d gladly take one in my Mac Pro too.

I don’t need multiple GPUs personally. I’m just a software developer who doesn’t do any game work. I just want to ensure that I have the best GPU I can get when I buy this so that I can ensure that macOS performs as well as it can for a few years. No stuttering when I toggle Mission Control!

And speaking of games, I don’t play them on my Mac. This dream of the Mac ever being a best-of-class gaming platform is long gone. Linux on the Desktop has a better chance of succeeding than I do of getting Overwatch on my Mac day-and-date as PCs and consoles.

Storage

I only use SSDs at this point, save for Time Machine. I need the fastest write speeds you can offer me. I’d like to have the ability to mirror my boot drive using RAID for redundancy, but I’ll survive if I can’t.

What I do need though is room for more than a single drive. If you’re going to give me a modular system, I’m going to want to move my Time Machine backup internal and maybe even have separate drives for different virtual machines or operating systems. I’m not doing macOS development right now, but I remember the times of having to boot up an old version of the OS to test or debug a release.

And if one of my drives does fail? I need to be able to replace it quickly, without sending it off to the Memphis repair hub.

Memory

I know you all love DDR3, but DDR5 is a thing now. Please? Lots of it. I can get by with 16GB of RAM on my laptop and the world goes on. If I’m going to buy a new tower that I expect to last for several years, I’m going to need at least 64GB of RAM. I’d take more if possible though! I prefer to not think about paging by throwing money at the problem.

What am I using all this RAM for? I don’t necessarily need it for building my app in Xcode, but when you add the virtual machines I run in Parallels for testing, Docker containers, and how the dozens of tabs I keep open at any given time it adds up. Slack also eats memory. I know you aren’t allowed to use it at Apple, but out here in the real world we do and it is a memory hog.

Ethernet

Adapters may be fine for not including Ethernet on a MacBook Pro, but I keep my desktops connected to Ethernet at all times. I need the fastest possible speeds afforded by my Internet connection for downloading and uploading things like Xcode releases, builds to TestFlight, and other bits and bytes I see fit. The current Mac Pro has two. I only use one, but I won’t lose sleep if you give me two.

Please include WiFi for things like Handoff and Airdrop, but don’t take away my Ethernet port for my primary Internet connection. I rely on it on my iMac and I would rely on it for my next Mac Pro as well.

Ports of Connection

I think it’s safe to assume that a developer’s Mac Pro would have the following connections:

I’d like to have a USB-A port or two to connect my wired, clicky keyboard, but I can understand if you don’t want to include them. I’ll add an adapter and never think about it again.

For the ports you do include, I need lots of them. I tend to keep an iPhone, iPad, and Apple Watch connected to my desktop at all times for deploying to via Xcode. I’d hope that without the space constraints of a laptop, every port has the same sort of bus speed. I don’t want to have to think about the upper-left USB-C port being faster than the lower-right one.

Expansion

Modern Apple is defined by how locked down the system has become. That’s fine for an iMac or MacBook Pro, but I need the ability to swap out a few non-core parts in the future.

If you don’t want to support them via AppleCare, that’s fine. That shouldn’t negate my ability to extend and improve my desktop tower, however.

Everything else

Apple computers are known for being quiet by default. I’m fine with the fans cranking when I’m processing a heavy load, but the default state should be minimal noise.

I know there is a new Apple Pro Display coming, and I’ll likely buy it. Throw a few USB-C ports on the back of it so I don’t have to run long cables from the tower on the ground to my desk. Maybe test it next to a WiFi router before shipping.

I have been using an iMac for the last few years because it seemed like a better option for meeting my needs of wanting a Retina Display with good enough performance. This new Mac Pro has the potential to send me back to Apple’s most niche hardware class. In fact, I’m funneling money away for this new Jesus Computer. I haven’t been this excited about the future of the Mac since the last time Apple said the Mac was back!


  1. Yet. I’m keeping my eyes on you, Ryzen. ↩︎

Read more about. . .

By Justin Williams

This is a two sentence bio. There are many like it, but this one is mine.