YOUR FEEDBACK
Brian Vicente wrote: Where are listing 3 and listing 4?


2008 East
DIAMOND SPONSOR:
Data Direct
Frontiers in Data Access: The Coming Wave in Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
Intel
Virtualization – Path to Predictive Enterprise
Green Hills
IT Security in a Hostile World
JBoss / freedom oss
Practical SOA Approach
GOLD SPONSORS:
Software AG
The Art & Science of SOA: How Governance Enables Adoption
PlateSpin
Effective Planning for Virtual Infrastructure Growth
Fujitsu
Automated Business Process Discovery & Virtualization Service
Ceedo
Workspace Virtualization
Click For 2007 West
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
SYS-CON.TV
TOP THREE LINKS YOU MUST CLICK ON


What's New Is Old Again
What's New Is Old Again

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.

About 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.

YOUR FEEDBACK
Charles Neville wrote: 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 wrote: 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 wrote: 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 wrote: 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 wrote: Perspective is one of the most important skills a software engineer can have. It comes from the ability to appreciate the key similarities and differences across a number of related contexts, and becomes richer with more points of view. History enables us to see important patterns, such as trends and cycles, but also allows us to look behind these patterns and grasp how underlying forces hold things in place for a while, before giving way. Client vs. server centric computing is a good example.
Ivan Handler wrote: 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 lea...
Tom Birchmrie wrote: 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
LATEST JAVA STORIES & POSTS
Unit testing is hard. There I said it. Although I have been developing software for the past 18 years I still find that putting my applications through their paces via unit testing is difficult. I have learned the lesson (I'm sure like many of you) the hard way. Unit testing is p...
Continuent has announced support and enhancements to MySQL Server 5.1.30 GA release, the 5.1 production version of the open source database. MySQL 5.1.30 is recommended for use on production systems by the MySQL build team at Sun Microsystems. Continuent Tungsten provides advance...
As a software journalist, there are times when certain vendors will shut the door on reporting opportunities that might represent too much of an "inside view" of their technology or their organization. I've been to more developer events than I can remember where I've been handed ...
Active Endpoints has announced the general availability of ActiveVOS 6.0.2, in response to ever increasing demands for improved process performance and efficiencies. ActiveVOS is an all-in-one, 100% standards-based orchestration and business process management system (BPM) that p...
Just because the web has been open so far doesn't mean that it will stay that way. Flash and Silverlight, arguably the two market-leading technology toolkits for rich media applications are not open. Make no mistake - Microsoft and Adobe aim to have their proprietary plug-ins, ak...
Doing network I/O on the user interface (UI) thread is bad. Most developers know that and can tell you why; unfortunately, it’s still done. At this year's JavaOne, one of the keynote JavaFX demos bombed because the network was slow, something that would be forgivable had the en...
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


SYS-CON FEATURED WHITEPAPERS

SPONSORED BY INFRAGISTICS
In every field of design one of the first things students do is learn from the work of others. They ...
There are many forces that influence technological evolution. After a decade of building enterprise ...
2008 is going to be an important year for Rich Internet Applications. Most organizations are deliver...
The OpenAjax Alliance is developing an Ajax industry wishlist for future browsers, using a dedicated...
Infragistics announced the availability of two Community Technology Preview (CTP) User Interface (UI...
The YUI development team has released version 2.5.2; you can download the new release from SourceFor...
ADS BY GOOGLE