Why Tying XCode & Distributed Builds To A System Is Dumb
April 16, 2009

In recent years Apple has started doing something that I regard as pretty dumb - tying versions of XCode to a particular system, and/or not supporting older XCode versions on newer systems. XCode 3.0 required Leopard, and I suspect that the next big XCode update will go the same way.

What’s even more annoying is that the distributed build system is tied to your system, architecture and xcode version. I can see why the version of the tool chain used by each node in a distributed build needs to match, but Apple should really spend some time making this stuff work a lot better.

The IDE should really be far more de-coupled from the tool chain, and I really ought to be able to participate in a shared build system running on a number of system versions (for that matter the IDE is a horrible monolithic lump which should really be broken down into smaller components and updated in a far more agile way, but that’s another topic).

The main reason why the Xcode thing is such an issue for me, is that it’s a really big barrier stopping me doing early testing of system updates. One way or another I’ve been getting pre-release systems from Apple for the last 20 years or so. Until fairly recently, I was very happy (keen, even) to live on the edge. Maybe not for alphas, but certainly by the time the system got to beta I’d typically install it and live on it for my main development machine. Crashes and glitches notwithstanding, I wanted to know what was coming, try it out, and give feedback on it whilst there was still time to change stuff.

Now, however, access to pre-release builds is next to useless for me. I simply can’t live on pre-release systems, since I immediately lose access to the other 5-10 macs that are normally happy to help out with my builds (and believe me, I need them to help compile Football Manager, which contains a lot of code!). For the amount of time & effort it takes to install a new system, it’s barely worth it just to click around for half an hour to see what’s changed, before switching back to my “real” system.

I can’t believe I’m the only person who has this problem, and it seems to me that the quality of the feedback that Apple receives must suffer as a consequence.

« NSConference day 1 Are Extreme Programmers A Self-Selecting Group? »
Got a comment on this post? Let us know at @elegantchaoscom.