The tower of Babel

We have created an industry that needs far greater amounts of hugely detailed information and documentation, yet we have populated it with people who are congenitally allergic to producing any kind of documentation at all, and who, when they have to do so, do it poorly and grudgingly.

Languages: C, C++, Delphi, C#, Visual Basic, Visual FoxPro, Java, Eiffel, Modula-2, Pascal. Frameworks: MFC, OWL, wxWindows, QT-windows, Win32. Plugin or extension interfaces: OLE, DDE, COM, DCOM, COM2, MAPI, SOAP, ODBC, DirectX, ActiveX, OCX. Networking protocols or services: TCP/IP, IPX, Active Directory, NDS, LDAP, SSL/TLS, RPC, IMAP4rev1, HTTP, SMTP. Scripting and back-end languages: WSA, Python, Perl, SQL, AWK, CGI, ASP, HTML, XML, REXX, Java, Javascript, WordBasic. In the "Heaven only knows" category: .NET ...

Hey, hold on a moment while I catch my breath ... Whew!

This implausible agglomeration of acronyms and buzzwords I have dumped so unceremoniously upon you is merely what I could think of while I was making myself a cup of coffee a couple of minutes ago. It represents just a few of the realms of arcane lore in which a typical Windows developer might have to be proficient these days - and that's just Windows: I haven't even thought of venturing into the bizarre, cyber-nutritional world of the Macintosh with its Cocoa, Carbon and other filling goodies, or the reduplicated world of Linux where if you don't like any of the offerings on SourceForge, it is de rigueur to create your own using shell scripts.

I must also apologise at this point if I have omitted your favourite Three Letter Acronym from the list - Heaven knows that if I were to try to get them all I'd have the publisher sending out the boys in black leather to "calm me down" - indeed, we could bury this whole publication in TLAs and be none the wiser for the effort.

But wait, as the saying goes - there's more!

Each of those innocuous-seeming abbreviations is merely an imp perched jauntily atop a bloated ogre's carcass of incomprehensible documentation and impenetrable example code that you, poor developer, are somehow expected to digest (mmm, yummy!) ... Take MAPI for example: the basic MAPI 1.0 specification document is about 600 pages long; I've been working with email for nearly 15 years and even I can't understand most of what it appears to be trying to say. Indeed, *so* impenetrable is the MAPI specification that I can only assume it has been made that way deliberately, and that I don't happen to be a member of the boy scout troop that has the special decoder ring for it.

Back in the days when I did Macintosh programming, there was a standard joke that in order to understand any one chapter of Inside Macintosh (the original programmer's bible for the Mac), you already had to have read and understood every other chapter. These days, that assertion is no longer a joke, and it has gained a ubiquity that the Mac itself has never quite managed to achieve.

Professions inevitably seek to mythologise themselves - they make themselves elite and impenetrable by inventing their own language and terminology to exclude the outsider ... Lawyers, doctors, physicists - all these professions have their own dialects, their own vocabularies with which they create and perpetuate the "Cult of the High Priest": but at least in these professions, the language is inclusive to an extent - part of its role is to connect those who work within the profession.

Software development is unique amongst the professions of man in that its language and vocabularies are exclusive, even within the profession itself. It's almost as if there is an unwritten requirement that everything you do be as baroque as possible - as if having your work understood is an eventuality you must expressly aim to avoid, presumably because having too many people understand you limits the extent to which you can control the membership of your club.

There is a fabulous irony here: we have created an industry that needs far greater amounts of hugely detailed information and documentation than any other field in history, yet we have populated it with people who are congenitally allergic to producing any kind of documentation at all, and who, when they have to do so, do it poorly and grudgingly. Combine this with the crumbling literacy of the Western World and you're already glimpsing the view from the pinnacle of the Tower of Babel.

In Genesis 11, it was God himself who confounded the Sumerians by throwing down the tower they had built to honour themselves: try as I might, I can't shake the nagging feeling that this time it's the Devil doing the job, but either way, when none of us can understand the underpinnings of the systems in which we work, I have no doubt at all that the fall and subsequent diaspora will be just as great.

Harris is the Dunedin-based developer of email software Pegasus Mail.

Join the newsletter!

Error: Please check your email address.

More about CGILinuxNDSPegasus

Show Comments

Market Place

[]