| By Margaret Leber | Article Rating: |
|
| July 2, 2004 12:00 AM EDT | Reads: |
19,509 |
I do strongly think that people, when they start throwing computers at something, they think that it's a whole new ballgame, so why should they study the past. I think that is a terrible mistake.
-Donald Knuth
Those who do not remember the past are condemned to repeat it.
-Santayana
One thing that's always struck me throughout my career as a professional in computing has been how little regard or study we give to the history of our profession.
I suppose this situation has been engendered to an extent by the rapid growth in the technologies we work with. It hardly seems possible sometimes that lessons learned long ago (when FORTRAN pterodactyls roamed the Earth, or when PL/I T. Rex feasted upon COBOL flesh) could have any relevance in a Web services world or help us deal with adapting object orientation to a playing field where databases are by and large relational.
Of course, being a certified old-school fogie myself, I'm certainly guilty of holding forth on how romantic and primitive things were back in the day ("walking 10 miles to school in the snow, uphill both ways, with a Teletype strapped to my back and we liked it!"); that sort of nostalgia doesn't sell well to the current population of the community. That said, I really do believe that we don't spend as much time as other engineering disciplines do on understanding how things used to be done and, more important, why.
Knowing this will help us understand why things are as they are now, and how they got to be that way, and might well shed some light on the way forward.
By way of an illustration, think for a moment about the perennial debate between adherents of C/C++ language technology and advocates of Java (or other virtual machine–based languages). One often heard plaint from the C people is that hand-crafted C code is inherently more performant than anything possible through "an interpreter," and therefore whatever benefits the newer approach might have aren't worth the cost of not being able to wring every last cycle out of the machine, runtime optimization possibilities notwithstanding.
A "new" debate? Not exactly. Consider this reply:
What about the classical objections to such a tool? There are three: It doesn't let me do what I want. The...code is too big. The...code is too slow.
As to function, I believe the objection is no longer valid. All testimony indicates that one can do what he needs to do, but that it takes work to find out how, and one may occasionally need unlovely artifices. As to space, the new...compilers are beginning to be very satisfactory, and this improvement will continue. As to speed, [optimizers] now produce some code that is faster than most programmer's handwritten code...
Perhaps you can see I've edited the above just a little to avoid tipping my hand. As familiar as it may sound to today's ear, this isn't a recent apologia for Java technology. The author was the venerable Fred Brooks, and he was talking about the debate over using assembler code versus PL/I in the Operating System/360, developed for IBM mainframes, consuming (by his estimate) 5,000 man-years of effort from 1963–1966.
Now that's old school, right? Brooks was writing in The Mythical Man Month of lessons learned in a project completed two years before I wrote my first computer program. MMM was written in 1974, around the time I entered the industry on a paid basis. This is fully four years before the 1978 copyright date of my copy of Kernighan and Ritchie's The C Programming Language, so we can say that the "don't use {higher_level_language_X} because it isn't performant" debate is not only older than Java, it's actually older than C. Originals of both books live in a spot of honor on my bookshelf, next to their 20th anniversary editions, themselves now getting a bit long in the tooth.
That particular debate is now fully thirty-some years old, would you say? Not quite...
Here's another quote from a different source, and I won't monkey with this one at all, since you know something of what I'm up to now: The first programming system to operate in the sense of a modern compiler was developed by J. H. Laning and N. Zierler for the Whirlwind computer at the Massachusetts Institute of Technology in the early 1950s...it was, in John Backus' words "an elegant concept elegantly realized"...he also remarked that it was all but ignored because it threatened what he called the "priesthood" of programmers, who took perverse pride in their ability to work in machine code using techniques and tricks few others could fathom, an attitude that would persist well into the era of personal computers.
Donald Knuth...saw another reason in the allegation that the Laning and Zierler system was slower than a factor of ten than other coding systems for Whirlwind....Closing that gap between automatic compilers and hand coding would be necessary to win acceptance for compiler systems and break the priesthood of the programmers.
-A History of Modern Computing by Paul Ceruzzi
Now this is recognizably the same debate, taking place nearly two decades before Brooks' project.
The writing has a consciously historical bent, and it offers some insight into reasons why the newer technology was rejected by the establishment...reasons that perhaps didn't have as much to do with the technology, but more to do with "programming as a human activity" – a delicious turn of phrase we owe to Jerry Weinberg's classic The Psychology of Computer Programming, a work of the same era as Brooks' book. More understanding of the "paradigm-shift" pattern at work here (and please pardon my use of the word "paradigm," oft-abused by New Age management theorists of the 1990s) is available in another book from that shelf, Thomas Kuhn's The Structure of Scientific Revolutions.
Perhaps if today's developers had a higher awareness of this kind of historical background, we'd spend less time on old debates and more time thinking about newer issues. Goodness knows we have enough of those to deal with.
Published July 2, 2004 Reads 19,509
Copyright © 2004 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Margaret Leber
Maggie Leber has been working in various aspects of computing since 1968. She became involved with Java when it was introduced to the public in 1995, and currently holds SCJP and SCWCD certifications and is studying for the new SCBCD exam. Her long-time passion for computing and communications technologies has given her a unique perspective on the field.
![]() |
Charles Neville 08/04/04 08:08:32 PM EDT | |||
Wonderful article! If I had any of my French left, I would only add a proper quotation of, "The more things change, the more they stay the same." For more examples drawn from the world of computation, you might look at the historical comments in Patterson and Hennessy''s "Computer Organization and Design". For more insight into the Microsoft monopoly, you might look at the practices of the Standard Oil monopoly around 1900. |
||||
![]() |
Claude Allen 08/03/04 10:41:53 PM EDT | |||
Nothing is so new that you cannot see it as reinvented, repackaged and renamed old. The Java appserver sitting on a unix, linux or windows box is a Cobol appserver(CICS) sitting under Z/OS. Thread pools are job queues and windows registry the PPT. Java Servlet works with HTML document, Cobol transaction works with 3270 map. Change the Cobol transaction to work with a HTML doctemplate and CICS web services and you have a webbed application preserving all your business logic. Users/customers don''t care if it it CGI, Java, ASP, Cobol, PHP as long as it helps them do their jobs. |
||||
![]() |
Dave Godbey 07/20/04 10:24:18 AM EDT | |||
I''m afraid the phenonmenon you speak of goes deeper. It is part of our social fabric. Does anyone recall hearing debate about an historical analysis before the US+allies rushed off to war in Iraq? How about an historical accessment with respect to the aftermath in the emerging 9/11 reports? The sense of history seems to be lost today, not only within our profession. How can we expect to do justice to history when the pressure to shorten our development/deployment cycle intensifies daily? |
||||
![]() |
DH Allingham 07/20/04 09:12:21 AM EDT | |||
Isn''t the key to this discussion, beware of absolutes? We work in a rapidly evolving industry where the only true constant is change. As soon as you begin talking and hear... "This is better because...", stop, and ask is it? How do you know that for sure? Even if it''s to yourself. |
||||
![]() |
Charlie Alfred 07/20/04 07:42:19 AM EDT | |||
Perspective is one of the most important skills a software |
||||
![]() |
Ivan Handler 07/19/04 10:39:24 PM EDT | |||
I am also an old-timer. I learned Fortran II in 1963 - I was a freshman in high school at the time. I think what is interesting here is not just that this debate continues in new forms as new technology appears, but that this is another aspect of an even older conflict that goes back into prehistory, namely, the conflict between received wisdom and new innovation. There are times when the old ways are more practical, but especially in programming, there are many times when innovative ideas are critical. In the example discussed in the article the wise decision should go to what is more important, performance or generality and ease of coding. This should not be a judgement call, it should be based on an analysis of what you are trying to do. In general, I don''t like to prejudge these conflicts since I have been on both sides. I think that the best lesson from history is to learn how to be open and to make concrete evaluations based on current circumstances rather than being guided by some bias disguised as philosophy or experience. |
||||
![]() |
Tom Birchmrie 07/19/04 07:05:02 PM EDT | |||
How little things change. When I came into the business in the late fifties, people were complaining that computers didn''t talk to one another; they had to enter the same data several times before the data was everywhere it was suposed to be. Strange they are still makeing the same complaint, the data in their spreadsheet doesn''t seem to make it to the company database. Why do they have to keep entering the same stuff. Why can''t they enter it once and be done with it? Blah, blah, blah. I have a new improved system that only requires that you toss out the stuff you''ve developed over the last year (5, 10, 20 years) and get on with the new stuff. Tom B |
||||
- Kindle 2 vs Nook
- Why IBM’s Server Chief Got Busted
- Is Cloud Computing Like Teenage Sex?
- Industry Experts Discuss the State of Cloud Computing
- Performance Tuning Essentials for Java
- Confessions of a Ulitzer Addict
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- It's the Java vs. C++ Shootout Revisited!
- Cloud Computing Can Revitalize Your Career as Software Developer
- IBM Could "Reinvent" Java: Mills
- Oracle & Cloud Computing: Exclusive Q&A with SVP Richard Sarwal
- A Brief History of Cloud Computing
- Kindle 2 vs Nook
- Cloud CEOs, CTOs & SVPs to Speak at 4th International Cloud Computing Expo
- Why IBM’s Server Chief Got Busted
- Is Cloud Computing Like Teenage Sex?
- Industry Experts Discuss the State of Cloud Computing
- Performance Tuning Essentials for Java
- The Difference Between Web Hosting and Cloud Computing
- Cloud Computing Expo: Exclusive Q&A with Yahoo! SVP Cloud Computing
- Ajax in RichFaces 3.3, JSF 2 and RichFaces 4
- Confessions of a Ulitzer Addict
- My Thoughts on Ulitzer
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- A Cup of AJAX? Nay, Just Regular Java Please
- Java Developer's Journal Exclusive: 2006 "JDJ Editors' Choice" Awards
- The i-Technology Right Stuff
- JavaServer Faces (JSF) vs Struts
- Rich Internet Applications with Adobe Flex 2 and Java
- Java vs C++ "Shootout" Revisited
- Bean-Managed Persistence Using a Proxy List
- Reporting Made Easy with JasperReports and Hibernate
- Creating a Pet Store Application with JavaServer Faces, Spring, and Hibernate
- What's New in Eclipse?
- Why Do 'Cool Kids' Choose Ruby or PHP to Build Websites Instead of Java?
- i-Technology Predictions for 2007: Where's It All Headed?










































