Tuesday, March 20, 2007

John W. Backus, 82, Fortran Developer, Dies

The title of this post was the headline in the online NY Times that I woke up to this morning. You might be able to read the article for yourself, here. Or maybe not. I don't like to violate copyrights by posting protected content, but given the fleeting nature of online newspaper stories, I'm going to reproduce a few excerpts from the article:

John W. Backus, who assembled and led the I.B.M. team that created Fortran, the first widely used programming language, which helped open the door to modern computing, died on Saturday at his home in Ashland, Ore. He was 82.

The five of you who are reading this are mostly young, and I don't imagine you've ever even seen FORTRAN code. I doubt it's been taught for a long time. But (and it may seem strange to say this about a computer language) it has a dear place in my heart. FORTRAN (we always spelled it in all caps) was the very first programming language I ever learned, and I programmed in it a lot. The first successful third-generation programming language, it was developed to solve mathematical problems, but it filled a gaping need that few people realized even existed. From the NY Times:

Fortran, released in 1957, was "the turning point" in computer software... according to J.A.N. Lee, a leading computer historian.

Fortran changed the terms of communication between humans and computers, moving up a level to a language that was more comprehensible by humans....

...With some training, they [scientists and engineers] were no longer dependent on a programming priesthood to translate their science and engineering problems into a language a computer would understand.

With all due respect to the Times, the need extended far beyond scientists and engineers: For many years I maintained and enhanced business and factory management software written in FORTRAN. It wasn't an ideal language for those types of applications, but it beat the pants off assembly language. And back in the very early days of IBM TSO and green-screen dumb-terminals, I even wrote (most of) a word processor in FORTRAN, just because, you know, when you're young you have more time than sense and you do dippy stuff like that.

I guess I'm a member, myself, of the "programming priesthood" that the Times mentions. Although it's been years, I've written my share of assembly-language code. But I still appreciate the enormous significance of the advancements that have put computing power into the hands of end-users, advancements that include the programming language Basic, spreadsheets, desktop database environments, and even Web page development tools. Advancements that all began with FORTRAN. We've come so far in so short a time. Consider this:

The first written reference to "software" as a computer term, as something distinct from hardware, did not come until 1958.

Today, the challenge isn't getting users to write their own software, or even to write software for them. It's getting them (and, for that matter, the programmers who make up the "programming priesthood") to think, first, about what it is they're trying to do. It's become so easy to generate software that there's a tendency -- even a strong inclination -- to jump right in and start "coding" before thinking about what we need to accomplish. So whenever someone comes to me and asks, "Can you write me a program to do x," I always answer, "What are you trying to accomplish?" Most of the time I can propose writing a program to do y instead, and y will save even more time and money than x. Or I can even propose altering the underlying process. Recently I was asked to create a database to record a metric that had previously been logged on paper. I asked what the metric was used for, thinking that I could further automate the process and delivered already-analyzed results to the end user. However, what I found was that there was no end user. The metric wasn't used by anyone. So we were going to take a useless process and automate it. Instead of, you know, just not collecting it anymore. Which is what we ended up doing.

So that's the new challenge: Getting people to think about the problem before they start thinking of the solution. And we have this challenge in large part because of the pioneering of John Backus and his simple FORTRAN. It's a challenge we're blessed to have.

Ah yes, as an undergrad at Southern Illinois University in the late 1970's I had to take a semester of foriegn language as part of my general ed. requirement. In a move that I still consider bizarre I was able to substitute a computer language for a human one. So instead of French I took FORTRAN.