From Botswana to Sri Lanka, Rogers waits till there is blood in the streets, the International Monetary Fund has thrown in the towel even on high taxes and devaluations as its enematic remedy, and there are hostages and hysteria at the Hilton. Then if from some smoke-filled bunker the government issues an order for the privatization of hemp -- it's a buy signal! -- he invests.
"Hey, all that stuff in your letter is great, George," he gasped. "But what I want to know is when do I short Microsoft? I'd like to do it now,' he adds, "but I don't want to get in the path of a freight train."
This is no market-timing letter, and I leave the short sales to swashbucklers like Rogers. But at 40 times forward earnings and 15 times revenues -- and a market cap of $159 billion, implying continued growth at a rate of 23% per year and revenues of $500 billion in 20 years -- Microsoft seems to be one of the more succulent sells in the history of the market. I would say, "Go for it, Jim" -- but Bill Gates Is smart. He may well soon stop fighting the spread of Sun's Java programming platform.
However, if he is spoofing Java -- and most of the evidence suggests only "bait and enrich" platform-neutrality -- Jim, go for the short. It should be clear in the next six months.
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 400,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 ("Capitulation," blared the Computerworld headline), 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 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.
In March 1996, Microsoft bought a small firm called Colusa that supplies processor-independent byte codes "better than Java." Colusa allows platform independence and security without sacrificing go-to's and pointers to specific memory addresses (as Java does for security and reliability reasons). According to the press release, Colusa will be included "in future versions of Internet Explorer." And nobody stops to say, "Huh?"
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. 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 on ActiveX controls. 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 homogeneity. For every application or environment the best operating system can prevail, even if much of the time it is not 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 multi-threaded so no one cares if it is slow. It opens doors and shatters Windows. It builds market-cap as if by magic. It raises the sun and illumines the road ahead to a new computer architecture.
Give poor Bill a break! In this world of manias and emotions, Gates said, "I have to make rational decisions," glaring at me. "Somebody who thinks that because of a language that is magic, these guys can overthrow the world -- that person can't even think two chess moves ahead. You're not even in the game I'm playing."
That was less than two years ago. Today, all has changed. 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. By the end of 1996, Gates had assigned some 300 Microsoft programmers to plant a hedge of Java products. In May 1997 he purchased Dimension X, holder of an early Java license that commanded 40 top Java programmers from Sun and elsewhere. Bob Muglia, Microsoft vice- president for developer tools, confirmed a central Sun claim: "Java makes programmers far more productive."
Yet, at the highest levels of Microsoft, the endorsement of Java, even mere pro-Java language, is anything but wholehearted. Early in December 1996 (a year after my meeting with Gates), I traveled to Seattle to the home of Charles Simonyi of Microsoft. A Hungarian immigrant genius who made his way to the United States in the 1950s, Simonyi starred at Xerox PARC in its most creative period and ended up at Microsoft to found its applications division, beginning with Excel and Word. Just a few hundred yards from Bill Gates's famous dwelling, Simonyi's alabaster palace gleams next to the home of Nathan Myhrvold, the physicist-programmer who is known as Gates's closest intellectual associate.
Since Microsoft had adopted Java and launched leading-edge Java tools, I expected Simonyi and Myhrvold at least to pretend to celebrate the possibility of a more rapid advance in software, spearheaded by Microsoft as a Java-paradigm company. But at the mention of Java, Myhrvold leaned forward with a growl. Speaking rapidly, he launched into a passionate reprise of his boss's line of a year earlier. Didn't I know of Lisp, Smalltalk, Ada, and all the other "revolutionary" languages that claimed to enhance programmer productivity? Java is the same, he said.
"It's the Monkees," added Simonyi, referring to the rock group that briefly posed as American Beatles. "They had a few hits and then disappeared. Java will be the same. It will be totally forgotten. Microsoft is the Beatles." As for platform-independence, he said, "it's only significant to the vendors of platforms with a tiny market-share, under 1%. Why does anyone else care?"
Myhrvold declared that, measured by lines of code, software had advanced just as fast as hardware and had taken advantage of every hardware gain. Java's claim of automatic memory-management -- "so-called garbage collection" -- is empty, he asserted.
Microsoft has explored the issue at length over the years. Memory management might work in an apples, but it will not scale to a large program. It will break down. Claims of large gains in programmer output are "pure baloney," Myhrvold said. Simonyi chimed in to deny Java's claims to have solved the problems of programming component software -- systems that could be put together like Lego blocks. "These problems have not even been solved at Microsoft, in one company," Simonyi says. "How could anyone solve it across the Net?" He added that Java had not even begun to create true portability, and it never would.
After the reams of double-talk publicity from Microsoft supporting Java, it was challenging and refreshing to hear these direct and emphatic declarations from the company's two leading intellectuals. They were making clear, falsifiable bets. Java does not much improve the efficiency of programmers. Java garbage-collection will not scale. Component software over the Net will not work. Java will dwindle away in time. Network computers will fail. Cross-platform portability is a pipe dream.
As a businessman, Gates would hedge the issue by defensive investments. But at the heart of Microsoft erupted a hymn of pure hostility to the new paradigm in computing and software.
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. 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.
Mandating general usage of the partly object-oriented C++ programming language, Microsoft has laboriously adopted this model in a hybrid form. It developed a desktop-oriented software paradigm based on its technology of object linking and embedding (OLE) that allows compound documents, such as Word text-files incorporating Excel spreadsheets. Microsoft generalized OLE into a system for any software package to invoke services from any other and called it COM (component object model). This was a large step toward object-orientation, but it still ignored the Net.
A Web page, however, can be treated as a compound document with hyperlinks that invoke other objects. In 1994 Microsoft extended COM to connections among different computers as distributed COM, and elaborated on it a set of apples-like functions called ActiveX for the Web. Microsoft's Explorer 3.0 browser is essentially a compound document container that can invoke ActiveX controls to display pages and invoke software functions.
Explains Mark Ryland, former Microsoft lead program manager of OLE and ActiveX teams, "We are taking COM and ActiveX and giving them security and protection. Sun is taking Java and giving it a native interface for applications. We are enhancing security on ActiveX, and they are jacking up the performance of Java. What's the difference except that 90% of computers already run on operating systems using COM?"
That's the view in the Microsoft world. But it is not the real world anymore. I just returned from the IBM Technical Interchange conference in St. Louis, where a very different picture was emerging. Bill Gates met Katrina Garnett and her team from CrossRoads Software, which was helping to introduce a new IBM Java Beans development tool.
Fueled with investments of some $15.8 million from such backers as SAP AG, Venrock Associates, and Michael Dell of Dell Computers, CrossRoads 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 CrossRoads 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 multi-threaded synchronization that was vital for the interactive applications. Fifth was the robustness and security. These business-critical CrossRoads 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 CrossRoads is IBM. Throughout the history of the company, IBM has seethed with multiple systems. From 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, 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.
Among other potential winners from Java are Digital Equipment (DEC), owner of Alpha, the world's fastest microprocessor, and StrongARM, the world's fastest low-power processor for Java code. Oracle originally adopted StrongARM in the reference platform for the new NC computer, though Oracle has recently spoken of adopting a low-power Pentium.
With the best user interfaces and most loyal customer base, Apple should also benefit. Though the company has been agonizingly slow in embracing the new language -- Newton, for example, remains Java-free -- Apple has announced that Java is going to be a central plank of Rhapsody, their operating system based on the Next system. With Java, Apple can launch Rhapsody with a large applications-base already in hand.
Netscape commands one key Java-related advantage over Microsoft. A startup called Marimba, led by Kim Polese and Arthur van Hoff of Sun's Java team, has licensed its Castanet push technology to Netscape for its new Netcaster product. With Castanet in every browser, Netscape can upgrade the user's copy of Communicator at any time, and thus can increase the user's feature set dynamically, quickly fixing bugs and security holes.
A less-famous company that may revive its fortunes with a Java uplift is Applix of Westboro, Massachusetts. A meteoric stock that climbed to $41.25 in March 1996 and plunged to $3.25 in April of this year, Applix commands a server-based office suite that interfaces to database engines. Called Applixware, it suggests a Unix version of the Windows-based Citrix. Recently adopted by Microsoft, the Citrix technology permits remote access to Windows programs over the Net through front-ends written for PCs. The PCs issue a stream of keystroke and mouse codes and receive from an NT server a stream of distilled GDI (graphical device interface) signals, all platform-specific.
Previously a Unix office software supplier for leading banks and investment houses with some $40 million in revenues, Applix has turned to Java to escape from the Unix ghetto. Investing some $2 million in R&D, it has incurred losses in the process. But with government and financial sector companies lining up for the new Java product, profits should soon begin flowing. Adding a Java front end and other interactive Java features, Applixware is reemerging as Anyware in a user-customizable and platform-independent form.
Unlike Corel, which is creating an all-Java office suite that runs on the client (Gilder Technology Report, October 1996), Applix products run the calculation engines on the server and only the user interface on a Java client. Levering the portability of Java's graphical user interface AWT (abstract windowing toolkit), Applix has created an apples that can act as the front end for Applix applications on any device with a Java virtual machine. Unlike Citrix, which will be an additional plug-in on the Internet Explorer and entails constant screen-updates from the NT server over the lines, Applixware uses the Java Virtual Machine both to achieve platform- independence and relieve the burdens on Internet bandwidth. The Applix suite works on Unix and NT servers and affords access to legacy files through more than 50 export and import formats.
At a hefty $295 per seat and $4,995 per server (still negotiable prices from the world of Unix), Applix sells this technology as an office suite. It also offers a more expensive package that allows a company to
write its own programs using the Applix Java front-end. As Applix moves its products down market, the company may become an important vessel of the Java paradigm.
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 multiplatform 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 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 for Jim Rogers to issue a momentous short. If, however, Microsoft does devote its huge resources to fulfilling the Java promise, 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.