What’s this all about?

The Java Community Process is the mechanism for defining specifications relating to Java.  These specifications are called Java Specification Requests (JSR) and there can be multiple implementations, for example, JSR 315 defines the latest servlet standard and software such as Tomcat and Glassfish implements this standard.

The London Java Community have a vote on the Executive Committee of the JCP which sets out the overall direction of the JCP and represents the interests of both its direct members and also the general membership of the Java community at large.  In order to complement the many informal discussions with developers that we regularly undertake the JCP Committee decided to run a survey in order to reach a wider audience. Here’s a summary of the 322 responses that we had!

1. Are you more likely to use a Java technology because its an implementation of a JSR?

An overwhelming 74% of respondents said yes, against 16% saying no.  We also asked people to explain why they said this. The obvious answer as to why is vendor neutrality, and this was chosen in a number of responses.

More surprisingly one of the other running themes from this question was that people felt that technologies that are backed by standards are more likely to be around in the long term and therefore something that you can rely on. In recent years the rapid deprecation and retirement rates of SaaS products and APIs has certainly drawn attention to this issue.

2. Would you like to see the JCP developing standards around any of the following areas?

NoSQL 169 18%
Data Analysis and Big Data 132 14%
Platform as a Service (PAAS) Cloud Computing 134 14%
Non-JMS Messaging Protocols (AMQP etc.) 98 10%
An app store or approach to deploying Java apps in app stores. 88 9%
I’d like to see more effort put into refining existing Java SE standards than creating new ones. 141 15%
I’d like to see more effort put into refining existing Java EE standards than creating new ones. 118 12%
I see little to no value in standardising new areas. 21 2%
I’d like to see standards, but these technologies aren’t mature enough. 36 4%
Other 27 3%

The most popular response, by far, was support for NoSQL databases. In many ways this is an ideal candidate for providing useful APIs around: different vendors all providing different competing products which developers get locked into. Of course there are many technical challenges surrounding the design of such a standard, given the differing merits and suitabilities of different products in the space (e.g. Document stores vs Graph DBs etc).

The next pack of popular options was led by improvements the Java SE. Java 8’s major overhaul of many core library and language components shows the existing JCP commitment to continuously improve core Java. The LJC shall continue to champion the evolution of Java SE through the Adopt OpenJDK program.

The standardisation of data analysis and PaaS platforms was also in high demand, giving us a solid idea of what developers want in next few years.

3. If you’ve not participated in the JCP what is the reason?

I don’t know how. 219 85%
I don’t think the JCP serves my interests. 30 12%
I am not interested in the technologies it standardises. 3 1%
I don’t think standardising Java technologies has much value. 5 2%

One of the most successful contributions that the LJC has made to the JCP is the introduction of the Adopt-a-JSR program which helps encourage developers to get involved in contributing to standards during their development.  We were quite surprised to hear that the most common reason for not participating is that people don’t know how. Its pretty obvious that JCP members, the LJC included, need to make more effort to publicise and explain the JCP and demystify it to day-to-day developers.

4. What type of software do you write?

We use a full stack Java EE system. (eg Glassfish, JBOSS, Websphere) 155 20%
We use an alternative enterprise stack that uses some Java EE components (eg Spring) 180 23%
We have written our own framework/architecture from scratch. (even if you re-use other ecosystem components such as Hibernate) 101 13%
We use an alternative framework (eg Play, Vertx, Grails, Hadoop) 85 11%
We use Java SE/Core Java components in our product. 225 29%
We’re developing using Java ME application. 7 1%
Other 13 2%

Very few people were actively using Java ME. This isn’t a particularly surprising result and validates JSR 355’s approach of merging the ME and SE/EE executive committees.

Conclusion

With the recent release of JavaEE 7 and Java 8 coming out soon, this is a great time for day to day developers to get involved with the next set of Java standards.  In particular there are strong requests for improvements to core Java and having standardisation introduced for the wave of recent NoSQL technologies.

Please join us at Adopt a JSR, Adopt OpenJDK and on the JCP to help shape the future of Java!

Thanks,

The LJC JCP Committee