John W. Backus Dies at 82; Developed FORTRAN
A number of readers let us know of the passing of John W. Backus, who assembled a team to develop FORTRAN at IBM in the 1950s. It was the first widely used high-level language. Backus later worked on a "function-level" programming language, FP, which was described in his Turing Award lecture "Can Programming be Liberated from the von Neumann Style?" and is viewed as Backus's apology for creating FORTRAN. He received the 1977 ACM Turing Award "for profound, influential, and lasting contributions to the design of practical high-level programming systems, notably through his work on FORTRAN, and for seminal publication of formal procedures for the specification of programming languages."
... Backus-Naur Form (BNF) grammars, the sine qua non of compiler design for the most-popular languages out there.
Truly an American icon. Even if you never ran LEXX or YACC in your life, Backus's impact on contemporary culture cannot be denied.
This has to be the worst Slashdot headline ever. Makes FORTRAN sound like a type of cancer or something. (I thought that stuff was more of COBOL's league.)
What does that entail? Did he hemorrhage "WRITE (6,7) 7 FORMAT(12H GOD DAMN IT)" and flatline? What about his death rattle? "STOP END"?
If it were not for the work of that generation, and the creativity they displayed, our world would be a far different place.
Poke fun at Fortran all you want, but dammit I use code today to drive a statistical website that was written in the 60's, and it still runs great.
http://nces.ed.gov/nationsreportcard/nde
I'm still working on a clever footer.
GOTO END or , for those that believe in reincarnation: GOSUB END
I understand the context in which the word "apology" is being used (as in "justification"), but I had to laugh at the semantics of "apologising for FORTRAN".
82 is a good innings. No matter what you think of FORTRAN as a language, I think it's safe to say that it, and later some of the other really early languages advanced computer science greatly during its infancy. We have a lot to thank Backus for.
"And then I visited Wikipedia
PROGRAM FAREWELL_JOHN
...
IMPLICIT NONE
PRINT *, 'Farewell John W. Backus'
STOP
END
*
* End indeed
*
Nothing on Netcraft yet.
Only three things are certain; death, taxes, and apocryphal quotations - Ben Franklin.
...you insensitive clods!!
Show some respect instead of making lame FORTRAN jokes...
With both the lack of interest and the distortion of the original goal, Computer Science as we know may be dying with the elders. Computer Science originally had nothing to do with computers (as in personal computer) per se, but with the science of computation, optimal algorithms for pure math problems, etc. Actually, it was nothing but a branch of Math. The way computer science is being dealt with nowadays, with disdain, lack of interest and with people thinking about it as a tool to put another "screw tighter" professional in the market, soon we may run out of real breakthroughs like the ones those genius created to pave the yellow brick road we run over nowadays.
Backus is also the B in BNF. Many will mourn his parsing.
Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs
Swedish plasma phys. PhD student; MSc EE; knows maths, programming, electronics; finance interest; seeks opportunities
...Backus's apology for creating FORTRAN...
(yes, yes, I know, he's no apologising in the usual sense; this is a play on words, or a pun, as it is also known)
Still, FORTRAN was and still is one of the great programming languages. There are many languages that offer better features and are much suitable for general usage, but there's huge number of programs written in FORTRAN, and many in science still prefer it to C/C++; FORTRAN is very well suited for numerical calculations, which is after all what is was made for.
Maybe it's because I was breastfed with BASIC from a very young age, but when I was forced to learn FORTRAN to work on legacy code I discovered after some initial, computer science taught disgust, that it was really the best way to express myself in code, better than with anything else, and I owe my present university position to FORTRAN because it made me so productive. I guess it was because the language was conceived by engineer, scientists oriented types, and not by formal logic adepts or grammar nazis. I still teach FORTRAN to this day, using F90/F95 in all its power, and MATLAB-like exposed students tend to enjoy it because they can develop simple and efficient numerical codes much faster than with anything else; some of them found positions thanks to it. The trick is to use FORTRAN for what it's for (numerical arrays, heavy linear algebra, easily parallelizable scientific computing) and not strings or files manipulation, linked lists (LISP) , graphics or system : for that there is C(++), and tons of libraries. If the code grows larger than 10 000 lines, very strong discipline is necessary, and that's where true OO can be pertinent. In scientific code FORTRAN tends to be 20% faster than the best possible C++ implementation because the grammar is so simple that compilers tend to understand better the code and can vectorize or optimize it much farther than C ; and there is much less overhead than with C++ because the objects are simpler to manipulate. Major code used in the industry (Star-CD, Gaussian for instance) is still written in FORTRAN for those (and legacy) reasons.
Google passes Turing test : see my journal
Actually, I'm pretty sure they do mean ``apology'' as in ``sorry, world''. Backus's work on FP was all about getting past the ``word-at-a-time'' assignment-based paradigm popularized by FORTRAN (the ``von Neumann bottleneck''), and moving on to more expressive algebraic programming techniques, today referred to as functional programming. Check out his Turing award lecture -- it's a great read!
Old programmers never die, they just GOSUB with no RETURN
What's so wrong with FORTRAN? From the sound of things, it's like the guy committed a crime or something...if it was so 'destructive' or whatever then how come it got so popular? Or did it? Why did so many choose to use it?
And for that matter, what IS 'constructive'? Maybe C++? And whatever that is, it wasn't influenced in any way by FORTRAN?
Just evolution, people... the TV scorning the radio as backward!?
was he related to A Backus?
_ In Egypt Networks: Network Solutions with a Twist
If Mr. Backus hadn't developed fortran, would we be as advanced scientificaly as we are now?
"We the unwilling, lead by the unknowing, have been doing the hard with little for so long that we are ready do do the i
Indeedandhi s i nsight fulidea ofre mov nig thesigni ficanc e o f s p aces be tweenwo rdsw as real lyah eado fits time. :-)
I do, in fact my main project is not only in FORTRAN but in standards compliant fixed form FORTRAN 77, huzzah!
Compared to more modern languages - by which I mean C - it's bad. There are plenty of things which drive me nuts - the need to define things a million times, the lack of any sane way to group variables.
But compared to what was around when it was made, it was a leap forward (assembly, anyone).
Also, lets not forget that it was made for... yes, that's right: punched cards! It has a maximum line width because of this (even if it's not on punched cards). This is, I think, one of the main reasons why FORTRAN encourages you to write code like it's in a big dense block (the lack of spaces, the inline looping of variables).
FORTRAN still has good use among physics labs, partly because there's a lot of physics-specific code that is made for it, and partly because everybody's already used to it. And it has been updated (F95) to include all the modern features you could want.
Still, you'd need to be mad to use it. Which is why I do.
I find it somewhat troubling that in this article John Backus is remembered primarily for the genie that he tried to put back in the bottle.
FORTRAN was utilitarian and procedural and good at enabling engineers and scientists to get work done. However, the problem with FORTRAN is the imperative pattern of though that it imposed led us to tell the computer a precise sequence of steps to accomplish each task. It doesn't offer information on dependencies, simply a "go here, do that" sequence of instructions. Imperative programs are inherently hard to reason about in terms of global state and effects and as written tend to be subject to off-by-one errors.
Backus saw this in 1978! See http://http//www.stanford.edu/class/cs242/readings /backus.pdf.
His insight spawned a great deal of the interest in functional programming languages. It was been credited by Paul Hudak of Haskell fame http://portal.acm.org/citation.cfm?doid=72551.7255 4 (ACM membership required) (summarized here http://lambda-the-ultimate.org/classic/message4172 .html) and others as really helping to turn the tide and kept functional programming languages from being snuffed out.
A lot of people don't see the point, having never programmed in a functional programming language like Haskell or ML. However even those people see dozens of cores on the horizon and wonder how they are going to deal with the debugging issues associated with all of the threads to keep those processors churning.
Functional programming offers an alternative viewpoint that is arguably much better suited to handle multiple CPUs working on large datasets. A case for this was recently reiterated by Tim Sweeney of Epic Megagames fame who said "in a concurrent world, imperative is the wrong default!" http://www.st.cs.uni-sb.de/edu/seminare/2005/advan ced-fp/docs/sweeny.pdf.
Haskell has brought Software Transactional Memory (STM) into play offering an alternative approach to traditional mutexes and locks that is compositional in nature unlike locking models. This is an approach that isn't readily emulable in an imperative setting because of the lack of guarantees about side effects. http://research.microsoft.com/~simonpj/papers/stm/ index.htm.
These are solutions to real problems that we are experiencing today, not some academic sideshow, and they arise from a school of thought that he helped bring a great deal of attention to.
If you want to do something to remember Backus take the time to learn OCaml or Haskell or even just take the time to learn how to effectively use the map and fold functions in Perl, PHP or Ruby.
It is his willingness to turn his back on what was percieved as his greatest work when confronted with a better idea for which I will remember him and I am a better programmer today for having learned what I could from his ideas.
Sanity is a sandbox. I prefer the swings.
The funny thing about Backus-Naur Form is that Naur himself says it should be Backus Normal Form, like it was before Naur used a slightly modified version of it.
Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
First there was machine language. You hand coded all the little ones and zeros manually to get your machine code. Then came assembler which was a great time saver with all its mnemonics, registers and loops.
The next step was a real higher-level language: FORTRAN. Its estimated, that this meant a time saving ratio for programmers of 10:1 against assembler. This rate of improvement was never reached again. All other improvements in programming are only incremental compared to that.I can see a new trend of "Goodbye cruel world" programs replacing the "Hello world" equivalents, as designers of programming language pass away.
Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
When I was in my early 20s and had been programming only a few years, and John was already a legend and IBM Fellow for his work on FORTRAN, I had the pleasure of meeting him informally a few times. You would have thought our positions and experiences were nearly the same. He was always as engaged and delighted with younger people like me as with other giants of the computer field, some of whom were standing right with us at those get togethers (Jim Gray comes to mind). John was extraordinarily decent, kind, and down-to-earth, and he will be very much missed.
"To this day I believe that our emphasis on object program efficiency rather than on language design was basically correct. I believe that had we failed to produce efficient programs, the widespread use of languages like FORTRAN would have been seriously delayed.".I think some of the wise guys/gals on this list are missing the point of the FORTRAN team's contributions. It wasn't that FORTRAN was the perfect language. To some degree, that wasn't even the goal. Quoting from an an article by Backus (full text is available only to ACM subscribers, unfortunately):
"It is beyond the scope of this paper to go into the details of the analysis which section 2 [I.e. the optimizer] carried out. It will suffice to say that it produced code of such efficiency that its output would startle the programmers who studied it. It moved code out of loops where that was possible; it took advantage of the differences between rowwise and column-wise scans; it took note of special cases to optimize even the exits from loops. The degree of optimization performed by section 2 in its treatment of indexing, array references, and loops was not equalled again until optimizing compilers began to appear in the middle and late sixties."At the time the FORTRAN work was done, people didn't believe that a compiler could produce code that was fast enough. If you go back to the early references on FORTRAN you'll find that they implemented optimizations that were still considered sophisticated 15 years later. The difference is: the FORTRAN team did it at a time when nobody had done it before. Furthermore, they did it on an IBM 704 that would be too weak (if not too small!) to power a wrist watch today. Its core storage units were tens of cubic feet in size, and each held 4K 36 bit words, or just over 32K bytes in modern terms. Even the "high speed" drum storage units (like a disk, but with no seeking needed) held only 16K of those 36 bit words. On this machine, they built optimizations that were considered sophisticated even decades later, when machines had gotten much bigger and faster. Quoting from that same article:
The computing field has lost someone very special.
In case you were wondering, the Chomsky of the "hierarchy of formal languages" is the same Noam Chomsky that you probably know of in a political context.
Check out the Wikipedia page on him. . . agree with his politics or not, he's had an interesting career in linguistics. . .
Its more modern forms, such as F95, aren't bad at all. All the power of C++ as far as numerics goes, a consistent and sane syntax (complex variables and operations are just there, not reimplemented by every programmer in their own unique way), modern control and data structures, and easy to read. (Translation: doesn't look like line-noise )
It remains popular due to backwards compatibility, and the ease of writing numeric code with it.
As for other uses, I've seen cgi-bin scripts written in F77, and a million-line massively-parallel quantum-chemistry package in an object-oriented fashion using F77. In the hands of modern compilers, it is an amazing language.
the more accurate the calculations became, the more the concepts tended to vanish into thin air. R. S. Mulliken
LISP is about to enter its sixth decade too, is still used by advocates, and had its heyday in computer culture. I believe its inventor John McCarthy is still around. MIT used to use LISP as its required CS training language from the 1960s until 2006.
I call "centennial languages" languages that were invented near the beginning of the computer age as, still used a fair amount, and probably will be around until their 100th birthdays. Some languages like ALGOL, OL/I, and even PASCAL have faded.