
Please feel free to forward this newsletter to as many friends as possible. I have a personal goal of having one million readers. I can achieve it with your help
the Software View: JavaTM, a wonderful brew (Part III)
For those of you with Internet and World Wide Web access and a Netscape Navigator web browser, please point your browser to:
http://www.softwareview.com/
Scroll down the page and you will spy a link entitled, "Current views web log (fresh news daily! Click reload, clear the browser cache)" The daily news page is also known as a "web log". It is en vogue and the fashion of these days to call it that. Click on the link, click "reload" on your browser or clear your browser cache to ensure that you always receive the freshest, hottest daily news concerning Java, Linux, XML, and the software industry! The link never changes, but I will be updating the HTML file page behind it every day. Please, do take a gander at it every day.
Also, some important news, gentle readers. the Software View is now an Associate Internet World Wide Web site of Amazon.com. I would like to extend my sincere, heartfelt gratitude and thanks for your patronage. I am offering links to books, et cetera that you can purchase from my web site. I would greatly appreciate it if you would purchase software industry books from my web site. Help support my newsletter and web site by purchasing items from Amazon.com from my web site. Here is the URL (Uniform Resource Locator):
Click here
Now, dear readers, on with this week's episode of the Software View!
In this month's PC Magazine, John Dvorak tells his personal horror story. He spent an entire day attempting to rebuild his Windows desktop personal computer. Of course, he lost data and was never successful. One of the new user interface features in Windows 98 is that system menus, pull-downs, and tool tips use the Office 97 animation engine. This enables menus to swoosh in from the side, or down. It's a somewhat cool, even if superficial, feature. Dvorak asks, why did any Microsoft programmer spend months implementing this frivolous feature? Why are Microsoft programmers spending their time creating nonsensical features when that time could be better employed fixing the operating system?
One of my readers, Joe Gilbreth, had some questions for me. "How do you see the overall hardware/software situation evolving as a result of Java? Would the OS become merely a minimal facility designed to enable the loading of various Java-based programs that altogether would constitute what we now think of as the OS?" You're right, Joe. Operating systems will become irrelevant. The Java platform will grow to eclipse operating systems.
"Seems there would have to be standards for addressing peripherals: would these be in the OS?" Yes, these standards already exist. They are called JNI (Java Native Interfaces). The beauty is that you write one single JNI call versus porting code to the numerous operating systems.
"I believe many applications now are based on facilities provided by Windows; if apps have to be essentially self-contained, won't they get bigger instead of smaller?" Joe, you correctly perceived the trend. Java applets will remain small, but we may see the Java virtual machine grow as new features are enabled.
Why does Microsoft fear Java so much? Because, we are witnessing the twilight of Microsoft's strangle hold on the software industry via its Windows operating system. Microsoft doesn't own Java, Sun does. Microsoft craves control. It fears having to compete on a level playing field.
Technology pundit, George Gilder, asks the important question, Will Java break Windows? Sun Microsystems' Java has the power to break the Microsoft lock-in of applications profits and lockout of rival operating systems.
It is a year and a half since Pearl Harbor day 1995, when Gates finally got on board the only freight train that counts these days, the Internet with Java. Fueled by the efforts of some 900,000 developers, who continue to report as much as fivefold increases in its productivity, Java has the power to break the Microsoft lock-in of applications profits and lockout of rival operating systems. As a cross-platform solution, Java flattens the playing field for Microsoft's competitors. But even early this year, Gates still did not really get it. He was still largely in denial, grousing about Internet "hype," and delusionary "holy grails" in computer languages and cackling about the silliness of his critics. For all the heralded transformation of his company in late 1995, Gates was a computer man in rebellion against the Internet paradigm.
Explains Einar Stefferud of Network Management Associates, computer people focus on the desktop or the local area network (LAN) where there is only one owner present and in control, and problems can be solved by changing everyone else's software. Beyond a particular LAN, though, everything gets more complicated - it is a new paradigm. As Microsoft will tell you, it is hard enough even to link together the various separate LANs on the Microsoft campus, each with a different administrator and different priorities. Beyond the pale is the Internet, a network of networks, where anybody can change the configuration of his or her machine at will and where nothing works if it is based on trusting the guy on the other end.
The Internet requires you to step out of Office97 into a heterogeneous jungle, where by the end of the year there will be some 20 million computers that have upgraded to non-Microsoft operating systems since January 1996. But after dinner, when the arguments heat up, Microsoft's top people will tell you they essentially want a standard that they own and control - a solution for the 90% of desktops that use Microsoft operating systems, a way to extend the Office onto the Web. They are frankly baffled by the widespread demand for cross-platform solutions and ascribe them to predatory schemes by their rivals. Why not make the Internet into a LAN? Aren't the holdouts with unpopular operating systems merely bad losers? In time they will go away.
From this point of view, Java is merely a distraction, an inferior, slow, and ultimately ineffectual solution to the interoperability problem. After all, Intel's x86 instruction set is the most common byte code in the industry. If you want portability, why not just write to that? Many companies have created emulators that can simulate other systems on the x86 or translate the x86 instructions to other processors. Outside companies such as Insignia Solutions will give you emulators that can run Windows 95 on a Mac. Visix will give you its Galaxy applications program interfaces that allow interoperability with Mac, Unix, and whatever else you want. These methods are slow, just like Java, but they get the job done.
By contrast, Internet people know that cross-platform robustness is not a business tactic; it is the very heart of the Internet paradigm. Ninety percent won't do. Ninety-nine and one half won't do. There are hundreds of thousands of owners and perhaps 150,000 separate networks making millions of separate choices - and no possibility of imposing a panacea. As Stefferud puts it, in a distributed heterogeneous world, with "distributed change control," you cannot change the core without long deliberation and much public debate. KISS (Keep It Simple, Stupid). You must keep the core simple and public to accommodate a necessarily chaotic and creative periphery. Java requires absolutely no change in the core, no change in the operating system, and no change in transport protocols. It is a platform created for the new world of the Net. You don't have to trust anyone to use it. As Stefferud says, security must be achieved at the end points. The security is not on the Net or on the operating system or in an encrypted signature as in ActiveX controls but in the Java virtual machine itself that executes the program.
Java does not optimize for the desktop at all. It does not adapt to the instruction set of the microprocessor. It is not designed for microprocessor speed. It is designed for programmer speed. It asserts that the Net paradigm eclipses the desktop paradigm. Just as Bill Gates and his PC eclipsed the mainframe paradigm and relegated to irrelevance thousands of wonderful mainframe optimizations, James Gosling and Java have eclipsed the desktop paradigm and rendered many of its most elegant solutions obsolete. In the world of Java, there is no benefit to operating system hegemony or homogeneity. For every application or environment the best operating system can prevail, even if much of the time it is not Windows NT.
As a network system Java does not care how it is transported. It can be invoked by a hypertext transfer protocol command on the Web. It can be tagged and bagged in an Internet MIME (multipurpose Internet mail extensions) envelope. It is safe, secure, and platform independent; it's "interpreted," which means it does not have to be translated by a batch "compiler" for a specific machine; and it plays on any machine, from a video to a vibrator. It collects your garbage (its automatic garbage collection is a way of managing memory, cleaning out the stables, during the writing and running of code). It prevents programming errors. It's multithreaded so no one cares if it is slow. It opens doors and shatters Windows. It builds stock market capitalization as if by magic. It raises the Sun and illumines the road ahead to a new computer architecture.
On Web pages Java applets outnumber ActiveX controls by a factor of seven. Java programmers are showing as much as five times the productivity of C++ programmers. Java makes programmers far more productive. A software paradigm resembles a language in more than name. Having mastered one idiom, it is devilishly hard to relinquish it for another in which you are not fluent. In other words, Microsoft so dominates the desktop personal computer world, that it can never fully grasp the promise of a Java fueled, Internet based, networked enterprise economy. Over the past five years, the software world has adopted a model called "objects," which requires an entirely new thinking process on the part of programmers. Java is the latest and most pure expression of the object-oriented paradigm. Rather than treating data and processing as two separate streams that join only in execution, object-oriented systems join the two in protective containers with interfaces observing specific rules that conceal the details of processing from the user's program. Thus changes in the object, whether an invoice or a graphic, do not require changes in the program that uses it. Objects become components that can be invoked by a variety of programs.
Bill Gates met Katrina Garnett and her team from CrossWorlds Software, which was helping to introduce a new IBM JavaBeans development tool. Fueled with investments of some $15.8 million from such backers as SAP AG, Venrock Associates, and Michael Dell of Dell Computers, CrossWorlds was founded a year ago November by a group of Sybase engineers led by Garnett. It provides ways to interconnect diverse enterprise software programs. Examples include SAP's financial, manufacturing, and human resources tools, Vantive's customer interaction packages, Clarify's customer tech support, Baan's resource management software, and Powersoft's database development tools, now embracing Java. These firms are all growing at a rate near 50% a year, and their equipment coexists in an increasing range of companies, performing related functions in parallel. But these programs mostly cannot respond in real time to cross-program and cross-platform events - such as orders and invoices - that involve customers, manufacturing plans, financial accounts, and employees.
Coming from Sybase, all the CrossWorlds programmers planned to use C or C++. But when it came time to do the programs - major projects that required several hundred thousand lines of code to be produced in six months - the group decided to experiment with Java. Navid Kahangi, vice president of software development, and Prashant Gupta, chief technical officer, were genuinely shocked to find that Java increased the coding productivity of their programmers by a factor of 10. Gupta was sold the first day, when, after spending two hours learning Java syntax from an assistant, the assistant had to leave for an emergency at 3 p.m. Gupta decided to try a little programming on his own. By nine o'clock that night he had written 800 lines of code that he had expected to take two weeks to complete in C++.
From then on they did almost everything in Java. Kahangi lists six key benefits. First was productivity, the tenfold gain, largely from garbage collection, memory management, and the pure object discipline imposed on programmers. Second was cross-platform portability. They did the first iteration on NT, but they are porting it simply to Unix and the Web in the second release. Third was testability. Because of the object-oriented discipline imposed by Java, the components are easier to isolate and test. Fourth was the simple model of multithreaded synchronization that was vital for the interactive applications. Fifth was the robustness and security. These business-critical CrossWorlds systems cannot be allowed to crash. Sixth was upgradability on the fly. Java as an interpreted language can be upgraded with new capabilities, new "classes," on the fly. This allows the 24 x 7 availability that is necessary for these key company systems. C++ can be revised in real time only through the cumbersome replacement of DLLs (dynamic link libraries).
Confirming the experience of CrossWorlds is IBM. Throughout the history of the company, IBM has seethed with multiple systems. From VM, MVS, OS/2, OS/400, RS/6000, AIX and system 360 to SAA (system application architecture), the company has tried and repeatedly failed to overcome these splits. Release the Windows version first or the version for OS/2 or AIX? With these tensions overcome, IBM has quietly become one of the most enthusiastic and helpful supporters of Java, working with Sun on large parts of the language from IBM's Centre for Java Technology Development in Hursley, United Kingdom, and around the globe. IBM has more than 2,500 Java developers, more than any other company (even more than Sun!), and recently began a 24-hour program, with code being passed around the globe to follow the working day, to produce Java programs faster. Java's modularity makes this scheme an easy winner. OS/2 was the first operating system to integrate Java in a shipping version. With an increased software base and a graphical and uniform front end, IBM's hardware products will become easier to sell.
The fight between Java and Microsoft is a clash of paradigms. Java began with the Internet paradigm and has flourished with the spread of the multi-platform Web. ActiveX began on the desktop and is withering on the Net. The winners will observe Stefferud's model, relegating complexity to the edges, preserving openness and simplicity in the Java core, and relying on bandwidth to improve it.
If Microsoft cannot accept the industry's commitment to achieve openness through Java, it will be time to short Microsoft stock.
If Microsoft does devote its huge resources to fulfilling the promise of 100% Pure cross-platform Java, however, the company could well achieve its $500 billion destiny. The margins will be lower, but the profits will be greater in a global economy based on the Internet as its new central nervous system.
To be continued ...
Sincerely,
Mark Kuharich
Join my free e-mail newsletter called the Software View by clicking here or sending mail to thesoftwareview-owner@west-point.org