The Java Community Process (JCP) Program is celebrating its 20 year anniversary throughout 2019. The JCP continues its evolution by working together with the global Java developer community.
The JCP was initially formalized in December 1998 at the Java for Business Conference at the Jacob K. Javits Convention Center in New York City, which is why earlier this year, I decided to collaborate with of the JCP Executive Committee Members, BNY Mellon, to kick off a series of celebrations of the JCP 20th anniversary, at the BNY Mellon New YorkCity offices. In addition, we invited Java User Groups (JUG) around the world to partner with us to host their own celebrations as well, and of course, we continued the festivities at the annual JCP reception during the Oracle Code Once conference this September in San Francisco.
When I attend Java developer conferences around the world, I often find that many developers do not realize how Java technologies are developed, so this is an ideal opportunity to provide an overview.
The Java Community Process (JCP) Program is the process by which the international Java community standardizes and ratifies the specifications for Java technologies. The JCP program ensures high-quality specifications are developed using an inclusive, consensus-based approach. Specifications ratified by the JCP program must be accompanied by a Reference Implementation (to prove the Specification can be implemented), and a Technology Compatibility Kit (a suite of tests, tools, and documentation that is used to test implementations for compliance with the Specification).
Experience has shown that the best way to produce a technology specification is to use an open and inclusive process to co-develop a specification and implementation, informed by a group of industry experts with a variety of viewpoints. This also includes giving the community and the public opportunities to review and comment, and also a strong technical lead to ensure both the technical goals and integration with other relevant specifications and user expectations.
An Executive Committee (EC) representing a cross-section of both major stakeholders and other members of the Java community is responsible for approving the passage of Specifications through the JCP program’s various stages and for reconciling discrepancies between Specifications and their associated test suites.
After being introduced in 1999, the JCP program has also continued to evolve itself over time using the process itself, through as effort called JCP.Next, with the work being carried out in the open by the JCP EC. JCP.next is a series of Java Specification Requests (JSR) designed to bring significant benefits to the community, and to specifically focus on transparency, streamlining the JCP program and broadening its membership. These JSRs modify the JCP’s processes — through modifying the JCP Process Document. Once the changes are complete, they apply to all new JSRs and to future Maintenance Releases of existing JSRs for the Java platform.
The first effort, JSR 348, Towards a new version of the Java Community Process, was completed and put into effect as JCP 2.8. It created important changes to make the JCP more open and transparent and to enable broader participation.
The second, JSR 355, JCP Executive Committee Merge, is also final. It contains revisions to the JCP Process Document version 2.9.
The third, JSR 364, Broadening JCP Membership, is also final, and was put into effect as JCP version 2.10. This JSR broadened JCP participation by defining new membership classes, enabling greater participation by the community and helping ensure the appropriate intellectual property commitments from JCP Members. Any Java developer can join the JCP program, and depending on the type of membership, JCP Members can participate as a JSR Spec Lead, Expert Group Member or Contributor.
The fourth, JSR 387, Streamline the JCP program, went final in 2018, and completed a maintenance release in late 2019. It was put into effect as the current version of the JCP program, version 2.11. This JSR streamlines the JSR lifecycle process to bring it in line with the way Java technology is developed today, in the open and at a faster pace, with a six month release cadence. In the Maintenance Release, we also looked at the current state of the JCP EC, and decided that we would resize the JCP EC over a period of two years.
With many changes in the Java community, the continuation of the JCP program remains constant. Anyone can apply to join and participate in the JCP program — either as a Corporation or Non-Profit (Full Member), Java User Group (Partner Member) or Individual (Associate Member). The stability of the JCP program and participation from community members ensures continued success of the Java Platform and its’ future. Standards enable execution of technical strategies and the JCP enables collaboration of industry and participation from the developer community. Compatibility matters — the Spec, RI & TCK required by the JCP program enable an ecosystem to be built up around Java technologies. The JCP program provides the foundation and structure for this — IP rights and obligations are covered, and choice in implementations that pass the TCK benefits the ecosystem — this is key to success and continued popularity of Java technology.
Since the inception of the JCP program in 1998, participation and collaboration has grown to include 400+ JSRs, 16,000+ Participants, 1000+ Members, and 80+ JUGs around the world. This year in particular, as I reflect back on the 20 year history of the JCP program, we continue to see an increase in community contributions and collaboration from the Java developer community, and the pipeline of innovations to the Java platform itself, is richer and deeper, as a result of the continuous evolution and participation of the Java developer community. I look forward to the continuation of this success in future years.