Editor's Forum


SMOP

A Small Matter of Programming. This epithet first hit my ears in the late 1980s when my supervisor at the time, a hardware engineer, spoke of my part of a particular project under his watch. The hardware design was the “important part,” of course; my contribution, the part that made the hardware accessible to the user, was just a SMOP. A few years earlier another supervisor had taken me aside for a heart-to-heart wherein he praised me with the words, “I look upon you as more than just a programmer.” This narrow view of our craft is so widespread that it has attained its own phrase in the Extreme Programming literature: JustaProgrammer [1].

I suppose we have yet to recover from the inequities that this narrow thinking has wrought in the workplace. Especially in the world of business data processing, developers are still often seen as bottom dwellers that can’t do the “more important” work of gathering requirements and planning system deployments — they just cut code that no other humans see. Announce at some social gathering that you’re a software analyst or architect and you command respect — admit that you’re a programmer and watch your audience’s countenance fall.

Developers have been continually threatened with extinction since 1960, when COBOL was supposed to enable managers to solve their own data processing problems (nice try). And then came the 4GLs of the 80s and their visual drag-and-drop counterparts in the 90s. Well, programmers are still here in force. Why is that?

One often hears programming compared to carpentry, perhaps because both disciplines construct solutions commissioned by others. No one would suggest that a carpenter could stand in for the building architect, but do carpenters routinely fashion new tools to meet unforeseen situations and make those tools thenceforth reusable on future projects, sometimes securing a patent in stride? The “soft” in software begets a complexity unrestrained by the physical properties of concrete and lumber that can only be tamed with that adroit blending of science and art that is better compared to the workings of musician, mathematician, and engineer.

Let me here drop the names of a few JustaProgrammers. C. A. R. “Tony” Hoare, inventor of quicksort and the monitor concept for synchronization [2]. Edsger Dijkstra, the Humble Programmer behind the shortest path algorithm and deadlock detection. Niklaus Wirth, author of Pascal, Modula-2, and the classic tome Algorithms + Data Structures = Programs. Donald Knuth, developer of the TeX automated typesetting system, founder of the Literate Programming discipline, and author of the canonical three-volume work on computer programming that was the standard for decades (and still should be) [3]. Bjarne Stroustrup, inventor of C++, which made object-oriented programming accessible to the everyday developer. P. J. Plauger, my predecessor at CUJ, who since the 1970s has demystified the craft of practical programming with such classic texts as Software Tools, The Elements of Programming Style, and The Standard C Library. Erich Gamma et al (the notorious Gang of Four), who with contributions from Jim Coplien, Richard Gabriel, and others formulated the discipline of design patterns, conceivably the greatest contribution to software development since object orientation.

Innovative and practical, just programmers all, as are the good folks that write for and read CUJ. Programmers may never receive the esteem they deserve from those they serve, but I dare say they’re here to stay.

Notes

[1] See the pithy comments at <http://c2.com/cgi/wiki?JustaProgrammer>.

[2] Lest you think he’s just a theoretician, consider the fact that he spent part of 1993 and 1994 learning Visual BASIC for “programming in the small.”

[3] I hear he’s still working on Volume 4!

Chuck Allison
Senior Editor
cda@freshsources.com