Maybe I’m naïve or too willing to give up my freedom, but I don’t really get the protestations about Apache’s ability to achieve Real Java™ Certification. Why is it so important that a free JVM implementation be able to call itself a Java™ Virtual Machine? Why did “…Apache [have] to fight to allow any Open Source implementations of JSR specifications”?
The JLS and the JSRs are not trade secrets, and—to my knowledge, I’m not about to go looking—most of them are not patented either. If I felt like punishing myself I have no doubt that I could spend a few years and a few million dollars re-implementing Java EE 5 and release it to the world without paying a cent to Sun or anyone else, and without worrying about a lawsuit.
Wait, what’s that? I wouldn’t be able to call it a “Java EE” implementation without paying for the conformance tests? Gee, that’s too bad. Oh well, I guess I’ll have to compete on the strength of my implementation and fabulously expensive marketing blitz.
How many people really care whether MyFaces can legally call itself an implementation of JavaServer™ Faces? If I used JSF, I would care that it implemented as much of the JSF API as I needed and was of high quality.
Similarly, I really don’t think the vast majority of developers could care less whether any particular JVM implementation is blessed by Sun, especially not when OpenJDK is available and IBM and Oracle seem happy enough to keep working on their JVMs.
What’s really important to me (and, I suspect, to most Java-ecosystem developers) is that, for the foreseeable future, there will continue to be a stable, high-performance, Java memory model and bytecode-compatible, scalable, manageable, cross-platform runtime for me to develop and deploy my products on through their expected 10+-year life cycle. That runtime really should be open source, and ideally there should be more than one compatible implementation—competition and choice are good.
I think most people would agree that we’re in pretty good shape here: all three major commercial JVM implementations are stable, performant, manageable, scalable and cross-platform, at least one of them is open source already, and the others are available free of charge (although not necessarily redistributable).
I don’t begrudge Sun their Java™ business model. They invest heavily in the Java ecosystem, have open-sourced one of the world’s most important pieces of software (in the form of OpenJDK) and should be free to dictate the terms under which their trademarks can be used. Those who care about certification can pay for it; those who don’t are already getting a whole lot of something for nothing.
Updated: Changed first sentence slightly to reflect that Stephen Colebourne is not speaking on behalf of the ASF.