On-line Opinion Magazine…OK, it's a blog
Random header image... Refresh for more!

RIP John Backus 1924-2007

John Warner Backus while working for IBM lead development of FORTRAN, the first of the high level languages, and then the Backus-Naur form, the standard method for describing computer languages.

Wikipedia has a nice article and CNN has a reasonable obituary.

His work was familiar to all of the people who came afterwards as he was truly a pioneer of programming which enabled the wider adoption of computers.

These days, people don’t appreciate what John Backus and Grace Hopper did with their work on FORTRAN and COBOL. While I understand the joke, “Computer Science without FORTRAN and COBOL is like birthday cake without ketchup and mustard“, the reality is that if we had not moved forward to the upper level languages, it is unlikely that computers, other than mainframes would have ever been built.


1 Alice { 03.20.07 at 9:43 pm }

Some schools still teach FORTRAN. I’m always a bit impressed when I come across a recent grad’s resume and find that s/he took the time to learn something other than Java.

2 Bryan { 03.20.07 at 10:37 pm }

If you are going to learn Java, you should start with C, because Java is based on C and it’s concepts. That also gives you a leg up on Ada, which uses the same concepts. The major differences are that both eliminate some of the weaknesses in C and expand capabilities.

The newer languages are great, as long as you are not breaking new ground, but, if something doesn’t works you are stuck. With the lower level languages you can always tell an appropriate lie to convince the computer to do what you want.

3 Alice { 03.20.07 at 11:02 pm }

I agree 100%, but most students don’t take the time or aren’t informed why it’s a good idea to learn C. And for the majority of them, if they never have to deal with pointers or Segmentation Fault they certainly won’t lose any sleep over that. The rest will find a way to learn because they want the challenge.

4 Bryan { 03.20.07 at 11:06 pm }

Pointers are the best and worst thing about C. Being able to deal with “garbage collection” to clean up memory is a necessary skill. Every time I see a “page fault” in Windows I have a fit, because I know they failed to clean up after themselves.

5 Mustang Bobby { 03.21.07 at 8:44 am }

I remember learning FORTRAN as a freshman in high school in 1967 on a DEC PDP-8/S with paper-punched tapes and teletypes.

I credit it with teaching me that math and algebra is a language with subjects, verbs, modifiers, and complements, and after all those years of elementary and middle-school struggles with numbers, it all made sense to me by appealing to my natural abilities as a writer. That semester of computer science in 9th grade was the only time I got an A in math.

6 Bryan { 03.21.07 at 10:00 am }

There is an elegant simplicity to FORTRAN that makes programming logical to humans. If you look at what’s involved for a computer to do simple math, all of the steps, you can lose the thread of what you are trying to do.

7 Mustang Bobby { 03.21.07 at 11:11 am }

True, Bryan. The idea of it all being a string of 0’s and 1’s is amazing. I’m still trying to figure out how a CD player does it.

8 Steve Bates { 03.21.07 at 8:20 pm }

Pointers are the best and worst thing about C. – Bryan

You said a mouthful (typed a textarea full?), Bryan. One thing every successor to C has done is to hide the existence of pointers, or enforce what kind of thing they point to, or restrict arithmetic on them, or deal with memory management behind the scenes, or all of the above. I pulled all the usual nasty tricks in my C programming days… probably a good 10 years of my career… but one had to compensate by buying third-party tools to help find one’s own inevitable screw-ups.

FORTRAN had a straightforwardness to it that stood a programmer in good stead when s/he inherited a large mass of someone else’s code in bad condition. Imagine unscrambling a Java application… mind you, I actually sort of like Java… that someone else crafted badly. Backus and his team deserve a lot of credit for that simplicity. “Amazing Grace” Hopper is comparably admirable for the conceptual underpinnings of COBOL, the earliest widely available language I can think of that encouraged programmers to think of data structures explicitly… even if the COBOL language itself required verbosity beyond even, say, my English prose style. 🙂

9 Bryan { 03.21.07 at 10:23 pm }

In a way programmers are blessed by the fact that the pioneers were mathematicians who understood and appreciated form and structure. If they had been language majors we would be in a mess because human languages, especially English, tend to be so free-form.

Java is a little too free-form, which leads to sloppy code. I can’t tell you how many programs I’ve looked at that had huge chunks of code that did nothing, because there was no way of reaching it. Sometimes it was just commented out, but other times you find the process in two different places, because, apparently, the structure changed and an important procedure was no longer reachable by the logic.

A little time planning can save a lot of time programming, but bosses want to see people coding, not thinking.

10 The CultureGhost { 03.22.07 at 1:10 am }

Thank the universe for all of you folks who have written the code, can understand the code and make the code work so I can enjoy the hell out of myself with all the wonderful applications it has brought forth. Thank you.

11 Bryan { 03.22.07 at 11:31 am }

CG, programming can be a job, or it can be a puzzle to be solved, hence the use of the word “code” to describe it. The better sort of programmer “decodes” the process, but some people “encode” and create a new puzzle, not a “solution” to the old one.

In some ways programming is like pointillism, the individual dots have no meaning until you step back and view the whole thing. The best programmers have the ability to do that in their mind and see the entire Parade, the rest of us work with one “face” at a time.