Java Turns Ten, Still At Odds with .NET, Aloof
by Timothy Prickett Morgan
Just before the July 4th holiday in the United States, Sun Microsystems finished up its 10th annual JavaOne summit for Java developers. A year ago, I was still complaining about Sun not opening up Java as an open source program and I was suggesting that Sun and Microsoft merge their Java and C# languages and JVM and CLR runtimes to create a unified programming environment.
Neither has happened, of course, but Sun is open sourcing whole chunks of its Java technology--not the Java language or its runtime environment, the Java Virtual Machine, however. Sun has made improvements to the Java Community Process, that quasi-open source body dominated by Sun that controls the development of Java. And, of course, Sun and Microsoft had settled their antitrust lawsuit concerning Java for $1.95 billion in April 2004, so to suggest last July that Sun and Microsoft figure out some way to better cooperate as Java and C# evolve seemed logical. And while Sun and Microsoft are working on ways to ensure interoperability between their respective Solaris and Java and Windows and C# platforms, no one at Sun or Microsoft has even hinted that the idea I have of merging the Java and C# platforms and creating a family of programming languages that runs in a unified runtime on all operating system platforms is not completely insane. By the way, developers and software vendors thought this was a very interesting idea last summer, which is why I bring it up again.
Here's another reason I am bringing it up. If Java and .NET don't get their act together, a lot of developers who don't want to cope with the complexity of either platform are going to do what I am doing: figuring out PHP, which is good enough for a lot of Web-based applications and has a wealth of open source content. If Sun and Microsoft think that Java and .NET are its main rivals, they have been up until now. But I am increasingly convinced that frustrated developers who just want to create relatively simple Web applications are going to play in PHP. With millions of people playing with PHP, and contributing to myriad open source projects relating to PHP-based applications as well as to the core PHP engine developed by Zend Technologies.
This spring, Zend reckoned there were about 18.5 million domains running PHP, and it is my guess that there are anywhere from many hundreds of thousands to several millions of people with some working knowledge of PHP and probably several hundreds of thousands to a few million programmers with hard-core PHP skills. More importantly, there is a wealth of blog, forums, content management, and other Web application software available under open source licenses written for PHP--many of which also have affordable commercial support options. ISVs may use and love Java, but there are not a lot of open source Java applications and code snippets out there. People code in Java and keep it. People code in .NET and keep it. That means the Java and .NET communities, as a whole, require programmers to recreate the wheel each time they sit down and create an application. While not all PHP is open source, there is a lot of open source PHP code, and it is relatively easy to grab a bunch of PHP snippets and weave together an application. What is not easy is getting PHP to be attractive and slick. A lot of open source PHP applications have the sexiness quotient of an early generation Web bulletin board.
I am beginning to think PHP might be as big of a threat to Java as .NET for all but the densest back-end application programming than either is to each other. It all depends on how PHP matures. PHP certainly is nowhere near as mature as Java or .NET, today, that's for sure. But look at how quickly Linux caught up to Unix and Windows. Open source and community development is a powerful thing. And that is Sun's message about Java and related technologies these days, too.
Sun has been on a PR campaign in recent months, both before and after it took its Solaris Unix operating system open source a few weeks ago at OpenSolaris.org, to prove it is the most prolific supplier of corporately developed open source code in the IT industry. No one keeps tabs on this, so it is hard to argue, but given the BSD Unix heritage of Solaris plus the new OpenSolaris, the NSF file system, OpenOffice, Grid Engine, and lots of other things, Sun is probably not exaggerating these claims. But two key pieces of technology--the Java language and the JVM runtime--are still not open source. But Sun is getting closer.
As we reported in the June 28 issue of this newsletter two weeks ago, Sun has taken its future Java Application Server 9.0 open source and will be relying on community development (dominated at first by Sun) for its future enhancement. Who knows if Sun will ever get around to moving Java and its JVM to the CDDL. It seems logical, and in his keynote presentation to the 15,000 JavaOne attendees and the 250,000 people watching from the Web, Sun's president and chief operating officer, Jonathan Schwartz, gave a strong hint that this could be possible. But, then again, when he talked about the Free and Open Source Software community (one cannot really call it a market, since there is no money), and specifically how the Java community related to the larger FOSS community--or more precisely, does not relate as well as it could--he focused on the word free, correctly pointing out that free distribution of Java runtimes and other free programs used in modern applications--Linux, Apache, Firefox, and so forth--has made these the most popular programs in the world. He did not focus on the word open, at least not until he got to talking about the open sourcing of the Java Application Server mentioned above. Then he said something very interesting.
"As far as I am concerned, there is no downside to free and open source software," he explained. "There is none at all. So what we are announcing today is that we are open sourcing Sun's server-side implementation of Java. Why? It is a participation thing. We want to get more folks involved. And you should in every way assume that this is the first of many steps. This is only one step forward as we continue to open source all of the software assets at Sun Microsystems, beginning with OpenOffice and some of the early technologies that connected computers together. We're going to continue to drive that. Why? Because it is good for business. It's also good for the world."
IBM Re-Ups Java Licensing Deal
"You may have noticed that we have had a chill in our relationship with IBM," Schwartz said in his JavaOne keynote, and then he went on to laud IBM's Java credentials. "IBM is every bit a founder of the Java community. They were with us, shoulder to shoulder, and we have been making strides to reach out to members of the community where our relationships have been strained. So we got together with IBM and said we have to send a clear message to the world that the Java community is vibrant, is open, is participative."
This is especially true in that IBM has been arguing for years that Java--meaning the language and the JVM--should be open sourced. Sun cannot afford acrimony in the Java community right now, but it clerarly has some. The Java Enterprise Service Bus integration layer for Java, which Sun was talking up at JavaOne, and the Java Business Integration specification, which was ratified by the JCP a month ago (with IBM and BEA Systems abstaining from the vote), was a bone of contention between IBM and Sun. Exactly what the bone was is unclear, but IBM wants a more open JCP and has a very large systems integration business to protect. Making Java apps easier to integrate is not necessarily going to help IBM's bottom line a lot.
Incidentally, Sun's implementation of the JBI 1.0 spec will be written in Java and the Java Management Extensions (JMXs) and released under the CDDL as well.
Whatever the problems are between IBM and Sun when it comes to Java, the two appear to be working it out. Steve Mills, the general manager of IBM's Software Group, was the IBM executive who argued a decade ago that Big Blue had to promote and participate in the development of Java, and he just renewed IBM's licensing contract to Java technologies and its commitment to the Java Community Process for the next 11 years. (IBM's current Java licensing deal doesn't run out until 2006, and IBM signed a 10-year extension.) The financial licensing terms of the deal were not detailed, but Sun also got something that it very much wanted: IBM will port its WebSphere middleware stack, DB2 database, Tivoli systems management, and Rational development tools to Sun's new Solaris 10 operating system both on Sparc and X64 iron. Schwartz has been badgering IBM in his blog to do this for some time.
I can't help but wonder if what IBM got out of the Java licensing deal is not only the ability to heavily steer the Java community, but also an agreement by Sun to not port its Java Enterprise Server middleware stack to IBM's operating system platforms. IBM has been in negotiations with Sun for the last year about the renewal of its Java agreement, and considering that IBM announced it a year ahead of time just so it could be one of the big PR events of this year's JavaOne show and that Sun is eager to show a unified front to the Java community between itself and IBM, it stands to reason that IBM must have got some pretty good financial terms on its Java licensing deal.
Why Sun and Microsoft Should Merge Java and .NET
JavaOne 2003: What Are We Going to Do with Java?