It's a Poor Carpenter Who Blames His Tools or: Xcode Sucks Again

The title isn't wholly appropriate because I'm not going to blame my tools, per se, just complain about them a whole lot. It occurred to me that we as programmers really don't have any good tools, and this has been annoying me for some time.

Xcode sucks. If you're reading this blog then this is probably like saying "the sky is blue". You know already. Big surprise. The debugger fails all over the place, autocomplete is broken more often than it works, and the editor won't perform acceptably until you throw four Xeon cores at it.

But Xcode is hardly unique in this respect. In my experience, most programmer tools are of low quality. There's the occasional gem, like CodeWarrior or Valgrind, but for the most part they all suck, just to different degrees and in different ways.

Compare this to other professions. Take a look at any good mechanic's workshop and you will find a lot of expensive, high-quality tools. They're not shopping at Wal-Mart, they're spending a lot of cash for high-end brands (whose names I do not know, not being a mechanic). And the quality of these tools is such that they're worth every penny.

In the realm of physical tools, the word "expensive" brings up certain concepts. An expensive tool is usually solid and heavy. It lasts forever. If it cuts or drills, it treats the material with contempt, as if it were made from butter or perhaps cheese. In a contest of wills between the tool and its target, the tool always wins.

Now let's think about what "expensive" developer tools are like. In the vast majority of cases, "expensive" automatically implies "horrendous". Think about it. When was the last time you heard about somebody using a $5,000 specialty compiler and it wasn't the beginning of a story about how said compiler was a pile of monkey?

And the free stuff isn't all that great either. Of course for Mac developers there's the canonical example of Xcode, but the GNU toolchain isn't all that great either. The best thing you can really say about gcc and gdb is that they work, and they're available on a ridiculous number of platforms.

So why can't I go out and get a compiler, debugger, or IDE that's the equivalent of the Hole Hawg drill? Free or paid, doesn't matter.

I think that fundamentally it's a sign of the whole industry's immaturity. After all, software development has only been around for about sixty years. The current standard platform of C plus UNIX (Windows being just a funny sort of UNIX these days) has only existed for about half that time, and has only been the de-facto standard for perhaps ten years. Everyone is still preoccupied with the idea of making tools at all. Nobody concentrates on making a truly excellent tool because it's not clear exactly what that truly excellent tool would do, and anyway there's new languages and environments to work on.

I don't think we're without hope. The clang project looks like it might actually produce a worthy C compiler, at last, and in a form which will allow it to form the base of a worthy C editor and worthy C IDE. This is really just a baby step in the right direction, but I'm hoping it's the start of a trend.

I hope that someday it will be obvious what the gold standard in developer tools is, what all reasonable-minded professionals use, and I can just use those. Until then, I'll just muddle along, swearing and banging on keys, doing the best I can.

Did you enjoy this article? I'm selling whole books full of them! Volumes II and III are now out! They're available as ePub, PDF, print, and on iBooks and Kindle. Click here for more information

Comments:

Add your thoughts, post a comment:

Spam and off-topic posts will be deleted without notice. Culprits may be publicly humiliated at my sole discretion.