Visit Your Local PBS Station PBS Home PBS Home Programs A-Z TV Schedules Watch Video Donate Shop PBS Search PBS
I, Cringely - The Survival of the Nerdiest with Robert X. Cringely
Search I,Cringely:

The Pulpit
The Pulpit

<< [ The Cat is Out of the Bag ]   |  Have Another Cup?  |   [ Take My Job, Please ] >>

Weekly Column

Have Another Cup?: The Return of Java and its New Importance in Business

Status: [CLOSED]
By Robert X. Cringely
bob@cringely.com

Remember Java? This computer language was supposed to be a Microsoft killer. Invented by Sun and deployed on just about every type of computer, it was supposed to give applications true platform independence. Since a Java program could run on everything from a palmtop to a supercomputer, it was supposed to suddenly not matter so much what type (or types) of computers you were using. Only it didn't really work that way. Computer people got excited about Java, then unexcited, then bored.

The problem was that Java was slow. As an interpreted language, rather than a compiled language like C, Java already had the disadvantage of extra processing steps before the program could even get running. And while Java programs were touted as small, they usually had to carry with them an enormous runtime module carrying all the software needed to make the program run on a given operating system.

Then there was the further performance hit by the very characteristics that programmers loved. Java automatically handles issues like memory management that had to be manually adjusted in other languages, but like an automatic transmission versus a stick shift, Java was less efficient in skilled hands.

At the peak of Java fever about three years ago, I decided I needed to know more about the language. So I went to the bookstore and bought the eight Java books then available. It was slow reading, but I finally made it through. And one of the most interesting things I noticed was the apparent disinterest at that time in making a language that was already painfully slow faster. Only one book out of eight even had a section on optimizing Java code.

None of this surprised James Gosling, Java's inventor. Sitting together one afternoon in a coffee shop, he pointed out that Java was a very young language and had much development ahead. At that time (a couple years ago) he said it would be fair to compare Java to the FORTRAN of 1958, the BASIC of 1968, or the C of 1978. Remember that Java started out as a language to program remote controls for home electronics. It has come a long way.

One of my favorite bits of Java trivia is the method used by programmers to keep others from reading their code. As an interpreted language, Java programs are transmitted using the actual code as written by the programmer — unlike compiled languages, which have been translated into machine language that is very difficult to read. So stealing interpreted software is a lot easier. Pretty much the only way to make it harder to steal, in fact, is through a technique called "obfuscation." This is an ironic technique to protect highly portable code since it does so by adding extra lines that are there only to confuse pirates. Some Java programs are several times larger than they need to be just because of all the bogus code that has been thrown in — code that is ignored by the interpreter at runtime. My friends at PreEmptive Solutions, who developed one of the first Java optimizers (theirs is called Dash-O) found that one of the byproducts of their optimization was that all this extra code was stripped out. Dash-O was not only an optimizer, it was also a de-obfuscator, though that was not the intention. Dash-O later added its own, far cleverer, obfuscation techniques and is now mandated by the National Security Agency for any Java programs to be used by American spooks.

Immature and slow as it was, Java lost momentum with many programmers. It didn't help, either, that Sun Microsystems couldn't quite decide who was actually going to control Java development. And of course Microsoft was doing all it could to undermine the whole Java movement by introducing Active-X.

All the while, Java has been improving and the uses to which it has been put were changing. I think the language is just about ready to be rediscovered. Only this time it will be different. Java desktop applications have for the most part given way to applets, for example. The applications were too slow anyway, but the applets — which are small programs downloaded from the net each time they are run — are about the best way to push software in a corporate world that generally prohibits users from downloading applications. The actual Java applications are now running on the server side. And instead of being interpreted, they are now often compiled, which makes them run an order of magnitude faster than before.

Big companies like IBM are embracing Java far more than most people realize. Why? It is the same reason that made Java so attractive when it was first introduced: The best thing about Java is it makes Microsoft irrelevant.

With Java, IBM — or any other software company — can pursue a product development strategy that will not be affected by Microsoft. When Windows will ship, or what features work or don't work, or how much the per client access license will cost no longer need to have any effect on product plans.

So half of IBM is busy recoding billions of lines of line-of-business software to Java. The other half is working to make Java run well on all platforms, and great on all future platforms. Linux allows IBM to expand the scope of possible platforms. This is an important aspect to IBM strategy that is easy to misunderstand. Part of the importance of Linux to IBM has to do with Java.

When this reengineering process is complete, the results should be significant for customers. So you really like that travel agency software you saw on an AS/400? Well it has now been rewritten. It is graphical. It runs on almost every computer made. You can integrate it with a web site or other applications. It is now MUCH easier to do the integration. Oh by the way, if you want to run this application on an NT server, we won't hold you to 4.0 or force you upgrade to 2000. You decide what version is best for you. Our application will support it.

Think about this again in the context of Microsoft's recent introduction of Windows 2000. Despite spending hundreds of millions of marketing dollars, has Microsoft been able to get anyone really excited about Windows 2000? No. This is because the desktop operating system is less and less important to users. The real importance of Windows 2000 to Microsoft is in extending its control of the PC hardware platform for another generation of machines. Even if Microsoft is less important to you and me, Bill Gates needs to stay important to Michael Dell.

If Java is the universal language, Linux is emerging as the universal operating system. IBM has Linux running on practically every computer technology it makes, including its largest mainframes. Imagine a big System 390 with 44,000 separate copies of Linux running on it, each capable of supporting multiple users. It has been done.

Everyone who sells a UNIX operating system is considering the option of ditching their UNIX OS and going with Linux. Why? Because Linux is good, it's cheap, and it has name recognition with everyone right up to the CEO.

The only thing that's holding back Linux adoption in corporate computing is the lack of quality hardware-specific support. Companies like IBM, HP, and Sun invest a lot of effort to make sure their operating systems are really good. Bugs, especially security breaches, are taken very seriously and are fixed swiftly. Assuming the same level of support was provided for Linux, at some point it will become logistically necessary to for each hardware company to eventually have their own unique Linux. This will be driven by the simple need to be able to do serious code management in real time.

Remember, you heard it here first.

Comments from the Tribe

Status: [CLOSED] read all comments (0)