If you rely on News Feed in Facebook to find my posts, you're missing most of them. On average, only 16% of updates in Facebook make it into News Feeds. Let me suggest that you subscribe to me in Facebook, follow me on Twitter (@ccengct), or use an RSS reader.

Readers in the European Union are advised that I don't collect personal data, but the same cannot be said of Google.

Sunday, June 24, 2012

The sad state of programming languages

I have written software in many programming languages: PL/I, Fortran, BASIC, a long list of Assembler dialects, COBOL, APL, LISP, Pascal, and some I've forgotten. During my senior year at Georgia Tech in 1976, one of the computer labs I used somehow got an installation of UNIX 1.0 from Bell Labs. That's when I first saw C. It didn't impress me, although UNIX did.

But by 1990 it was clear that C would become a primary, if not the dominant, programming language for a long time. I remember reading a scathing critique of C about that time. The paper was so insightful and well written that I circulated it within Nortel. I wish I had saved it! The author, whose name I don't recall, acknowledged that C was convenient but articulated why it was a step backwards from carefully crafted languages like Ada that stressed reliability and maintainability. Indeed, the convenience of C made it even more dangerous -- software's counterpart to cocaine.

Was the paper merely sour grapes from someone whose favorite programming language didn't get commercial traction? Perhaps, but I believe the author's warning was correct. It was also too little, too late. We have been struggling with a fundamentally weak programming language and its offspring ever since. You experience the consequences as website hijacks, stolen credit card numbers, and applications crashes.

Why bring this up? This week there was a news report that North Carolina state government is replacing, at great expense, the software that processes Medicare claims. That's an important chunk of code: it disburses over $10 billion annually. The new software is written in COBOL, a language designed in 1959 and widely viewed as arcane and archaic. Someone wrote a letter to the editor of the News & Observer that C should be used instead; the letter provoked controversy among local geeks, one of whom defended COBOL in a follow-up letter.

I understand why the new Medicare system is being written in COBOL; C wouldn't be any better and possibly worse. The awful reality is that we have no good, widely known programming language that such a system should be written in. Ada never caught on. It's a shame.