Tuesday, March 28, 2006

An Open Letter to Jonathan Schwartz

This post was also published in InfoWorld.

Dear Jonathan,

Long time no see! The same way you enjoy writing open letters to IBM and others in your blog -- I wanted to write an open letter to you and Sun, and see if I can get a little clarity about your open source software strategy. As I am sure you have noticed, there has been quite a bit of momentum around LAMP in the industry, ranging from innovators like Google, Yahoo!, and Amazon, to the "Web 2.0" crowd like Friendster, MySpace, and Flickr. In addition, LAMP has increasing usage in the enterprise.

The "P" languages in LAMP -- PHP, Python, and Perl -- are all open source, and each provide their own virtual machine. It would be ideal if the Java JVM was open source so that open source projects like PHP could join up with the Java Virtual Machine. In turn, Java would be much more competitive with .Net, which supports numerous languages out of the box. Initiatives like adding dynamic language support in the JVM will not go far if Java can not meet existing languages on a common ground of open source.

What is unfortunate about Sun's open source strategy is that it is very unclear. Can you please answer the following question with a single coherent sentence that people can remember and repeat? If I ask five Sun employees this question, I get five different answers, so having simple answers to these questions will clearly help your own workforce as well as your customers and prospects!

"Why is it good to open source OpenSolaris and OpenOffice and bad to open source Java?"

We all know the standard Sun answer that Java will get fractured and that the JCP is great. However, OpenSolaris and OpenOffice have not been fractured since being open sourced. And most of the Java innovation nowadays comes from open source projects like Spring and Hibernate, not the JCP, which then has to recreate all of these open source projects. Some of the biggest supports of Java, including IBM and BEA and others in the JCP executive committee, have long asked for Java to be open sourced.

So what's up? Can you guys let go a bit and let us all share a single, open source virtual machine? It would be good for Java, good for LAMP, and good for customers. Combining two of the three leading development platforms would make them both more competitive against .Net.



Tuesday, March 14, 2006

Confounding: Sun vs. Scripting Languages

This post was also published in InfoWorld.

During my five year tenure at Sun, Graham Hamilton, the Java CTO, killed every initiative to run scripting languages on the Java Virtual Machine. These include 1999's "javab", which would have run Visual BASIC syntax on the JVM, and 2003's "Java 3", which would have supported optional typelessness for Java objects.

Clearly, the industry trend towards scripting languages like PHP and Ruby has finally had an effect, since Graham has recently sponsored JSR 292: Supporting Dynamically Typed Languages on the JavaTM Platform. The time lag here is similar to the time lag it took Graham to support SOAP in favor of RMI after a ton of resistance, which Sun paid for dearly when they had minimal impact in the development of the web service standards we use today.

It's great that Sun has finally decided to support scripting languages in some way in the next couple of years. However it is clear that this change was done in a very begrudging way, considering that Sun's James Gosling and Tim Bray have recently taken it upon themselves to start publicly slamming scripting languages!

James Gosling, March 12: There have been a number of language coming up lately," noted James Gosling today at Sun's World Wide Education & Research Conference in New York City when asked if Java was in any kind of danger from the newcomers. "PHP and Ruby are perfectly fine systems," he continued, "but they are scripting languages and get their power through specialization: they just generate web pages. But none of them attempt any serious breadth in the application domain and they both have really serious scaling and performance problems.

Tim Bray, February 21: So here’s my problem, based on my limited experience with PHP (deploying a couple of free apps to do this and that, and debugging a site for a non-technical friend here and there): all the PHP code I’ve seen in that experience has been messy, unmaintainable crap. Spaghetti SQL wrapped in spaghetti PHP wrapped in spaghetti HTML, replicated in slightly-varying form in dozens of places. Everyone agrees on PHP’s upsides: it’s written for the web, it’s easy to deploy and get running, and it’s pretty fast. Those are important advantages. And I’m sure that it’s possible to write clean, comprehensible, maintainable, PHP; only apparently it’s real easy not to.

Yet in January, James Gosling states in a News.com interview that "LAMP has certainly become quite viable."

What would be much more helpful is if Sun finally open sourced the Java Virtual Machine so that scripting languages could organically adopt a common JVM. With some leadership on Sun's part, Java and LAMP could merge onto a common virtual machine, and both would benefit greatly.