IDEs: How the Other Half Codes
Xcode, for those who don’t know, is the Mac OS X IDE (Integrated
Development Environment). It is an application that creates other applications;
the toolmaker’s tool. As a software developer myself, I use (and have
written) many such toolmaking-tools, although nothing quite as ambitious and
comprehensive as Xcode. As a matter of fact, in my professional life, I
don’t even use an IDE like Xcode. I use the low-level pieces of
which they are made, directly, which makes me increasingly something of a
dinosaur.
What I mean is that I use development tools whose command-line
interfaces and usability choices stem from a time before any graphical user
interfaces existed, let alone from before they were popular. This means
that instead of clicking a button titled “Build”, I end up typing
sequences like this at a prompt in a terminal program:
c++
$SRCDIR/module.cc -o -shared $OBJDIR/module.so -I$EXTRAS/version2.2
-L$EXTRAS/lib -lprimary -lsecondary -Wl,-rpath,$EXTRAS/lib
Actually,
because I am an expert dinosaur, I only type such a line once, in a script,
which I contrive to execute automatically, with a minimum of fuss, so that in
the future I am only typing either the word “make” or a key sequence
like “c<ESC>p<RETURN>”. The entire experience is one of
dense sequences of text tokens flowing to and fro, substitutions and expansions
and multiple levels of interpretation accumulating, layer by layer, creating a
sort of terse, expressive slang built from the ground up out of elementary
principles. It’s efficient, and it works well, but aesthetically it is
about as stirring as papier-mâché made of newsprint.
Modern
IDEs are a lot different. Like any well-designed productivity application, they
bring the power of multiple dynamic perspectives to a project. Relationships
between different entities are displayed and updated as they change; the
application communicates along multiple dimensions, using not only text but
color, shape and motion. Things look clean and even beautiful. You get the
feeling that some trusted person is in charge here. Moreover, it’s not
like anything is limited or dumbed down. An expert like me can find and tweak
any necessary setting by diving into the (rather huge) list of
preferences.
What’s really weird is to use the word
“modern” to describe IDEs. 22 years ago, when I was taking my second
programming course in school, we used THINK Pascal for the Macintosh. Using that
IDE felt like stepping into the future. But one year later, when learning C and
Unix, it was back to green text on a black screen with a command line, and
goodbye graphical interface.
Turned out that time trip was farther in
the future than I had thought. It’s been text ever since, and that’s
how it’s likely to be for a long time yet—except on the weekend,
when I fire up Xcode and leave the sooty industrial zones of Softwareville to
cruise around the well-manicured neighborhoods and office complexes of the
programmer community.
Posted: Thu - June 28, 2007 at 11:12 PM