Monday, October 1, 2012

JavaOne 2012: 101 Ways to Improve Java - Why Developer Participation Matters

Bruno Souza, Martijn Verburg, and Heather Vancura presented "101 Ways to Improve Java: Why Developer Participation Matters" in Continental Ballroom 4 of the Hilton. They split these up into their areas of greatest familiarity. Souza, the founder and coordinator of SouJava, talked about greater participation via user groups. Verberg, also heavily involved in user groups with the London Java Community and recently heavily involved in the Adopt-A-JSR program, talked about Java Specification Requests (JSRs) and adopting a JSR. Vancura [JCP Program Management Office (PMO)] talked about the greater Java Community Process (JCP) and contributing to that.

The 101 ways developers can participate in improving Java were divided among several categories such as "Ways to Improve Your Java User Group (JUG)," "Ways to Teach," "Ways to Help Java Open Source Project," "Ways to Adopt a JSR," and "Ways to Participate in JCP."

The ideas for ways Java developers can contribute to the improvement of Java ranged from very simple to more involved. Most, however, were highly approachable for the typical developer. One example from the improving JUGs category was to be a speaker or to provide a speaker from among one's colleagues. The idea here was that even if one did not want to speak, he or she could probably refer a great speaker. Another simple idea is to promote a Java Users Group via Twitter, Facebook, or other means.

Some of the ideas presented spanned categories. For example, writing a blog post could be an idea for furthering a Java User Group, for helping an open source project, for helping adopt a JSR, etc. I have blogged myself on how blogging can help other developers.

Other example of where ideas from different categories overlapped are any of the cases where helping an open source project is also helping a JSR because that open source project is the JSR's reference implementation. For example, previous work helping with Tomcat, GlassFish, or EclipseLink was helping the respective JSRs for which those projects are the reference implementations. Downloading OpenJDK 8 releases and using them, writing bug reports on them, and writing about them are all ways to help the OpenJDK project in particular and to help the development of JDK 8 in general.

Some ideas were almost as simple as falling off a log. For example, one can download the reference implementation (RI) of a JAR and try it out. Recounting one's favorite JavaOne experiences or lessons learned was another. Other easy ideas include simply requesting a new feature for a forthcoming JSR, writing a FAQ for a favorite or newly learned API or open source project, or even simply creating a simple web page listing available resources for more information on a particular subject.

The three speakers at this session reiterated that there are selfish motivations to improving Java. They were able to tie better Java user groups, better Java adoption, and so forth to benefits for all of us. They pointed out, for example, that if typical developers help with more mundane tasks such as open source project documentation and responding to questions in forums, others can focus on development of new libraries and language features. Verburg mentioned a couple of times that we probably want Brian Goetz focused on improving the lambda expressions implementation in JDK 8 and we can help by working on mundane things surrounding that so that he can focus on the implementation itself. Contributing to open source projects allows us to enjoy better tools and frameworks and greater selection of tools and frameworks.

The presentation slides were composed simply of the categories in which Java developers could help improve things with a list of bullets of the various ideas for each category. Those lists of ideas together obviously form one of the most important parts of the presentation and hopefully the presentation with those lists will be available online soon. Rather than regurgitate that list here, I have focused on a high-level description of the voice track the speakers provided to accompany the slides and lists of ideas. UPDATE - Vancura has made the list of all 101 ideas available on the JCP Program Office blog.

One of the early themes already encountered frequently at JavaOne 2012 is the need for Java developers to contribute to the community and the success of Java and the Java ecosystem. Speakers from the Strategy Keynote and Technical Keynote repeatedly asked for community help and feedback and I have seen that theme expressed in other sessions of JavaOne already.

No comments: