Moving Java Forward - Oracle's Part : Deliver On Promises
Keep the backbone of their portfolio alive and kicking. But: The community is skeptical. Over a period of long years they have been used to a friendly Sun. Used to a lot of community support and openness around. It's unfair to call Oracle the complete opposite of Sun; but especially the parts which are involved with community communication and openness are (probably still) underdeveloped within this "multinational computer technology corporation" (Source: wikipedia). The reasons for that are understandable. There are big differences in supporting paying customers and collaboratively developing a platform ecosystem of the size of Java. And even if I personally believe, Oracle could be awesome at the second part, there is still another thing to take care of: Finding the balance between investment into the ecosystem and generating real value from it. Even if Simon Phipps (@webmink) denies my thoughts about the Oracle OSCON Keynote back in July (especially the comments about Sun earning money), I still believe that the information presented there are the key part in understanding the way Oracle is interacting with the communities. And this is still backed by Lines of Business (LoB). So, to turn it around I guess that every LoB has/or is willing to "adopt" an open source project from the larger Java ecosystem. If you see anybody around from OTN (e.g. @Java, or the Java Magazine) they are paid by the LoBs and it's most important to get this community message clear to every responsible PM and above at Oracle: Every single cent or minute invested in OTN and the community is paying back to you! If you are not supporting OTN you deny to deliver on Oracle's promises and you miss the chance to get your value back. And it's worth it: We are paying in a currency called "Adoption"! Broad adoption!
Moving Java Forward - Community Part : Broad Adoption
After the worldwide launch events in July the adoption of latest Java 7 started to grow. More and more products and projects get either certified or start implementing the latest available features. Apart from minor problems with early releases this is on a good road. The community is working through features and use cases. Presenting and writing a lot about technical stuff again. The most popular OTN article of 2011 is about Java 7's Fork/Join Framework and it was hard to find a single Java related conference program without a slot on any of the new Java 7 features. For me personally this was a powerful Java year. Not only the SE adoption with latest features was a big topic but also the reach of EE 6 which is some years old now started to make big progress. More and more servers got certified and even commercial projects started adopting the new release. This wouldn't be possible with all the early adopters from the community. Not sleeping until the last interested developer knows about the details about relevant specifications. And this also wouldn't be possible if Oracle decided to move things on their own.
Moving Java Forward - Industry Effort : Commitment
Java is claiming to be an industry standard. Especially the platforms have obviously been build with products and industries in mind. Compared with the community noise about Oracle's stewardship the news about supporting corporations have been sporadic. After Apple and IBM joined the OpenJDK and Apache leaving the JCP back in 2010 this year didn't surprise us a lot. Twitter joined both the JCP and the OpenJDK. Taking long time Oracle employee Adam Messinger as a substitution. Another new face is ARM. They joined the Java ME Executive Committee (EC). What about Google? Are they in? Working? Doing anything? Fact is, that all the corporations supporting the JCP do this comparatively silent. You can see the individual JSR's review ballots as an overall mood and health check of single companies. Google is more or less passionless on the EE JSRs; strictly voting NO on SE improvements with regards to licensing terms. Yep. I got it. As long as both Oracle and Google are working out this endless law suite we will not see a single Google speaker at an Oracle conference or read about any significant involvement with new JSRs. A shame. For both Oracle and Google. Oracle because they are unable to find a shorthand solution to this old Sun heritage and Google because they are obviously not able to divide community issues from company issues. You will ever be my favorite web search whatever service. But by refusing to send your employees to the (still) biggest Java conference around you are hurting the Java Community and NOT your opponent. Back to the "Moving Java Forward" title of this post: Google is doing it wrong here, if you ask me! Let's see how long this will work out for them before they are hurting their reputation.
This is a very personal impression which obviously lacks precise information. But this lack of information is true for nearly any single company on the JCP (with RedHat making a huge difference because of their team!) A more general wish would be to actually see the involvement of bigger corporations with Java. Wouldn't it be nice to have a jcp.org/members/company page where anybody could see, what associated members belong to them and where they are contributing? Nearly every single social network as an engagement indicator. What about the JCP? I would love to know more about the single companies to keep track of their Commitment.
Moving Java Forward - Combined Effort : Collaborative development
Back to the alive and kicking members of the JCP. Beside the few non-Oracle JSRs the whole ecosystem is more or less driven the way, Oracle was used to it. Them delivering the products (JSRs, RIs, and more) and supporting the adoption. But a necessity for a vibrant ecosystem is the collaborative development. A key to success of an industry standard is broad support and joint development. And all the community pressure was successful. A new version of the Java Community Process (JCP 2.8) was build in the public (JSR 348). As of 18 October 2011, every new Java Specification Request (JSR) will be required to conform to the terms of the new JCP with the most challenging goal to support a "new era of complete transparency" (Source: JCP). Backed by the java.net infrastructure every single JSR should open their discussions to the public and be open for continued feedback. Realizing that the JCP still is a very formal (JSPA) and slowly moving organization the London JUG proposed the "Adopt a JSR" program to their members. This program is intended to encourage members of the LJC to get involved in a JSR and to evangelise that JSR to the wider LJC community in order to increase grass roots participation. Most important lesson to learn for Oracle: Open specification is great. And more and more JUGs are joining, too. Gathering a broader community feedback is a challenge with a formal process. To me it seems as if it would be best to have an anonymous feedback box as part of every single JSR. I know about a lot of people feeling not precious enough to provide visible and open feedback. It would be best to either anchor a general feedback loop with the JUGs or build a "baby hatch" into the JCP. Find a way for everybody in the community to bring in what is out there. And don't let a single idea die because of missing courage or fear.
Moving Java Forward - Your Personal Effort : Spread the word!
Those four pillars are basically the cornerstones of the Java ecosystem. Oracle, the broader industry the active community and their collaborative development. But as with any single other organisation it is not enough to simply structure and guide every little legwork. What is needed is the personal engagement of every single one of the 9 million Java developers out there. But how could this look like? It could be simple: Start using Java (more) regular. Share your knowledge. Give feedback. Engage with your local Java User Group. Attend conferences and most important be an active user by hunting bugs with early releases, trying out new features with your year old project and keep being curious for new stuff. If you know something that is valuable to your team, your department or even your company: Share it. Try to setup a monthly learning Friday. Write some stuff: blog-posts, articles, tweets, whatever. To make it short: Spread the word. And keep moving forward.