Interesting article relating to Java:
Software
Too Many Flavors Of Java?
Sun Microsystems is fighting to avoid the fate of the UNIXs that had too many varieties
By Cynthia Bournellis
san jose, calif.--Hewlett-Packard just added four more software companies to its list of licensees for its embedded virtual machine (VM) based on the Java Virtual Machine (JVM) specification. In addition to Microsoft, who will implement the VM inside its Windows CE operating system, new licensees are Integrated Systems, Inc. Lynx, Microware and QNX, all of whom make real-time operating systems. As the licensing of Java spreads, Java is in danger of following Unix in the same path toward segmentation. That's been a worrying question ever since Sun Microsystems filed a lawsuit against Microsoft alleging that the software giant infringed on its Java license by tweaking the Java programming language to run in Windows 95.
Sun's turning up the heat again, asking a federal judge in San Jose, Calif. to force Microsoft to include a correct version of Java in Windows 98. Sun has not asked the court for immediate action, so its request would not impact the release of Windows 98. Meanwhile, Java could become fragmented. "Yes, it could happen but it's not practical," said Gina Centoni, group manager for the Java platform at Sun Microsystems." This is a huge effort (to develop Java), so the chances of companies doing it are slim. If HP wants to incur development costs, then go ahead."
Software developers and hardware OEMs can license Java in one of two ways. One model includes the JVM and the Java class libraries which lets developers build their own operating environments. The other option is to license the entire Java platform.
The latter is a "soup to nuts solution that helps companies who don't have expertise in building OSes get their products to market quickly," said Troy Toman, group marketing manger for Java OS at Sun Microsystems. If a company chooses to build its own VM according to the JVM spec, it cannot use the Java brand name or coffee cup logo in its product. There are about 12 to 16 operating systems to which the JVM ports, including the Mac OS, IBM's OS/2, Windows, and various handheld OSes. The JVM also runs in databases from companies such as Oracle, as well as in a number of Web browsers. While HP's VM complies with the JVM spec, it differs in that it is tailored to operate within the constraints of an embedded device, such as a printer or test equipment. HP's VM is 0.5-megabytes.
"We did our own VM for embedded systems, because Sun didn't have a suitable one (when we needed it), and we are vigorously building a business around it," said Jim Bell, general manager for embedded VM at HP. The company will also use its VM for its own embedded products.
Other factors contributed to HP's decision to go it alone. One had to do with Sun's inability to deliver certain performance characteristics HP needed last year in order to ship products this year. "We want to embed more realtime capabilities to improve how a thread could be woken up to respond to an incoming event," said Chris Schoppa, chief architect at HP. HP is now looking to Rockwell for help in this area. In addition, HP didn't agree with Sun's pricing model for the license, nor the terms when it came to sharing intellectual property (IP). Any innovations that are contributed to the JVM spec are co-owned by Sun. And, Sun chooses which IP will be added to Java. "You have to give them the IP," said Mr. Schoppa, adding that HP wants control over which IP it makes available.
Sun, on the other hand, argues that in order to keep Java as an open standard, the chosen IPs have to become part of the spec. "The question is, where's the right balance," said Mr. Toman, a group marketing manager for Java OS." We are the target for some criticism, but no one knows the best way to do this. But if you look at the breadth of what's been done with Java, we must be doing something right." Sun feels that companies will do right by their licenses. HP has gone to lengths to comply with the standard in order to avoid legal hassles. It hired experts who never saw the VM code or Sun's to check HP's code for possible similarities. "We can use their code but we have to implement it in an independent way," said Mr. Bell. "Any segment of code that matches theirs would not be legitimate." Sun puts Java products through a battery of tests.
However, Mr. Toma said a vast majority of applications make it to market without passing certain test suites. The romance surrounding Java is that applications can be written once in the Java language and run on any platform. The reality is somewhat different. Sun markets Java as 100 percent pure, meaning it will run anywhere. Developers don't agree, saying that they have to debug their Java applications first before porting them to different platforms.
At this stage of the game, for Sun to admit that Java isn't truly write once, run anywhere would be disastrous. Sun has been successful marketing Java. "There are still a few problems with write once, run anywhere, especially for applets that are trying to run in browsers," said Anne Thomas, an industry consultant. She said the browsers don't fully support Java compatible runtime systems, which translate the Java code. Sun's answer to this is a Java plug-in that downloads Sun's reference implementation of the Java runtime environment into a browser to ensure that the applet can run as expected.
Ms. Thomas said the plug-in will fix 95 percent of the problem. It is available for Windows 95 and NT, Solaris, Netscape Navigator, and Internet Explorer. Apple plans to support it on the Macintosh OS.
While Sun is working to address incompatibility issues in the browsers and on Windows, it has done a good job making Java work on the server side, and many developers are using Java to build portable software products to communicate back to the server. Java used to be another term for coffee.
Today, it is best known, particularly among the high-tech community, as a software programming language. But Java is more than that. It's a phenomenon that has engulfed the industry. There are over 200 Java licensees. Still, Java is a complicated subject, and is difficult to fully understand. Sun Microsystems hasn't done the best job explaining Java to the less technical audience, but the programming community gets it. Ask most developers and they'll say Java is an easier language to program than C++.
Java is also a runtime system that fits inside an operating system. It also has component models called JavaBeans. One model is similar to Microsoft's ActiveX controls and is used for visual development. Another model is a Java class library that contains various JavaBeans application programming interfaces.
Enterprise JavaBean is yet another component model for server components rather than visual components. The list of Java elements goes on. One element of Java which could make Microsoft nervous is the family of Java operating systems that would compete with Microsoft in the thin client and embedded markets. There's Java OS for network computers.
IBM has partnered with Sun to build Java-based network computers for businesses (EN, April 6). Eventually, Sun's JavaStation network computer will migrate to the new Java OS for Business operating system. Below the desktop level is Java OS, or Personal Java, for consumer devices such as Internet phones, VCRs and handheld computers. Embedded Java is an even smaller subset of Java designed to run in microprocessors. There's JavaCard, an even smaller subset of Java for smart cards. JavaPC is the newest member. It is software that lets Java-based apps run on a PC using DOS or Windows 3.x. |