JVM Advent

The JVM Programming Advent Calendar

Community Engagement through the JCP Program

The Java Community Process (JCP) program evolves over time, with every update maintaining the value of Java technology and community collaboration. December 2023 marked the twenty five year anniversary milestone of the JCP and we continued celebrating throughout 2024. If you are not familiar the the JCP, it provides the process through which the international Java community standardizes and ratifies the specifications for Java technologies.

Java has become one of the most used and trusted programming languages used by millions of developers worldwide. Leadership of a community at this scale can be complex. We strive to find a balance of stability and innovation, providing a predictable platform for business users, as consumers of the technology, and creating new features for technical users and enabling engagement through our membership, the Java Community. Along with myself as the Chairperson, we have Executive Committee Members, representing a cross-section of major stakeholders and members of the Java community, who are responsible for approving the passage of specifications through stages and for reconciling discrepancies between specifications and their associated test suites. The membership includes corporations, non-profit organizations, Java User Groups, and individuals. JCP Members can serve on JSRs and vote in the annual JCP EC Elections.

Some of our members throughout 2024 held celebrations around the world to celebrate the anniversary Over thirty Java User Groups joined us to celebrate around the world, in Africa, Asia, Europe, North America and South America! We could not be more thankful. A list of JUGs that celebrated with us, a video highlighting many of the celebrations and picture images are available in the JCP article on JCP.org.

JCP Program Member and Community Engagement

Since the last revision of the JCP, we have seen even greater collaboration and contributions within the Java developer community. The faster release cadence has helped Java meet the needs of developers, with new software features being incorporated into the release as they become ready every six months. This has also helped to increase innovations and contributions to the platform.  In 2024 there were two releases of the Java SE Platform, Java SE 22 in March and Java SE 23 in September. Java SE 24 is in the final stages as JSR 399 with a Public Review scheduled for January 2025 and Final Release planned in March 2025. Work on Java SE 25, JSR 400, is already underway.

In the JCP EC we have discussed how can EC Members, as well as JCP Members and Java Community members, engage, participate and contribute. In October 2024, at the JCP EC face to face meeting hosted by Amazon in Seattle, we discussed some of the OpenJDK projects that are being developed to evolve Java to meet future application development needs.  The work of the JCP EC is public on JCP.org.  Some suggestions for participation and contributions are:

  • Review & comment on Specifications -substantial/staff experts
  • Contribute to projects (OpenJDK JEPs or other projects)
  • Test Early Access builds regularly and provide timely bug reports/comments on discussions
  • Discuss the value of adopting new versions of Java and promote discussions
  • Share news on Java versions of Java & standalone JSRs
  • Promote awareness of new early access builds and testing
  • Share experiences and migration best practices
  • Engage in Java in Education and Java Ecosystem working groups

The pipeline for new features is rich and deep, and we believe this will lead to accelerated application development. This also ensures that Java continues to attract younger developers. Java migration projects between versions will shift from major development projects, with 100 or more new features, to smaller and more incremental updates, happening more frequently. This helps to increase the amount of feedback on the early access releases as developers are evaluating their migration plans on an ongoing and continuous basis and provides businesses with the stability and predictability they require to run their teams and companies.

To that end, we have initiatives within the JCP for deeper discussions and collaboration with the community. Currently there the two groups: the Java in Education Initiative and the Java Ecosystem Working Group.

Java Ecosystem Working Group –  Easier migration to New Versions of Java

In the JCP Program we oversee the evolution of Java technology in addition to balancing the needs of the overall user community and our community members. Bringing the feedback of the community into the innovation process and incorporating their experience with the technology is crucial when creating a stable and secure platform that is used by millions of developers, customers and vendors all over the world. The JCP provides the mechanisms that enable this, providing new features and innovations for developers and stability and predictability for businesses. The governance of a technology community and ecosystem of this size is an effort that requires listening to differing audiences and voices, enabling multiple compatible implementations and a flourishing ecosystem of third-party tools and libraries from the open-source developer community.

Following on the success of the faster release cadence for the Java platform, and how the community has evolved and adapted to the model over time, the JCP EC has discussed how we can collectively work with the ecosystem to influence and help them to embrace the modern delivery cadence of the Java platform making it easier for developer to migrate their applications to newer versions of Java. Following the work to update the JCP processes and enable the Java platform to release a new version every six months, there is now a potential to enable the ecosystems of tools and libraries to also adapt to transition to new versions of Java more quickly.  We are looking to build on existing programs such as the OpenJDK Quality Outreach initiative to help the smaller projects that are more difficult to keep up to date. Java has a wide range of libraries and not all of them are up to date. We are looking at how we can influence them to support just the latest versions of Java. If libraries adopt the same or similar model (moving from an express model to a tip and tail model), the Java platform would be even more stable, secure, and predictable.  We recognize that this is a cultural change, but it is also an opportunity for maintainers. What is necessary to make this happen? Some suggestions we discussed with maintainers are adopting a similar development model, not back porting as aggressively or back porting as little as possible – customers want stability. The main issues for maintainers are funding and time. We have formed a working group to discuss how we can listen, enable and influence efforts in the community so that with each new version Java, we have the ecosystem ready and supporting the latest releases. We believe the world is ready for the ecosystem of Java libraries, frameworks, and tools to embrace a delivery model like that of the JDK – tip and tail development, with LTS offerings. By making this shift, library maintainers can realize the same kind of benefits that has been achieved for the Java platform itself. This will further strength and extend the viability of Java overall now and in the decades to come. In the EC we discussed how we can collectively work with the ecosystem to influence and help them to also embrace the modern delivery cadence of the Java platform. The JCP EC efforts to update the JCP processes and expansion of projects such as the Quality Outreach initiative in OpenJDK has helped support the migration of many larger projects. The smaller projects are more difficult to keep up to date. Java has a wide range of libraries and not all of them are up to date on the newer versions of Java.  We formed a Working Group to discuss in more detail with the community.

The goal of the Java Ecosystem JCP Working Group is to educate and increase awareness around the Java ecosystem third-party tools and libraries to increase the adoption of modern release processes by third-party tool and library maintainers. This working group was formed following the discussions in the JCP Executive Committee in 2023. Within this group, we discuss how can we influence project maintainers to support just the latest version, instead of backporting new features into many older versions. When the six-month release cadence with Long Term Support (LTS) offerings was introduced in 2018 (JDK 10), that was a major shift in how Java was delivered and how developers migrate between version of Java. The community has evolved and adapted to the model over time and we have gained a lot with the shift in delivery model. On the wiki page you can see some updates and discussion topics such as Gradle, Jenkins, Junit, Eclipse Collections, ItelliJ and more are planned for 2025 such as Apache Maven, Log4j, Spring and JoCoCo.

Java in Education Initiative – Bring up the Next Generation of Java Developers

In 2020, some of our discussions began to focus on the topic of Java in Education. This prompted a working group to think about what we can do around Java in Education. JCP EC Members and Java community leaders are in a unique position to inspire their local communities of junior developers and students to learn and use Java technology. The purpose and focus is this working group is to help bridge the gap between the educational environment and industry. Together we can provide opportunities for students, teachers and educational institutions in the form of networking, mentoring, knowledge and professional internships, open-source assignments and projects.  We can also educate developers around the myths about the capabilities of modern Java technology. This effort is global, led with the Java Community and supported by the JCP program – we support Java User Groups to partner with their local educational institutions and communities to bring Java technology to the next generation of Java developers. Together we created materials and resources to help bridge the gap between the educational environment and the industry.

We have prepared presentations and videos that highlight the capabilities of Modern Java, the benefits of learning Java including some of the enhancements that the Java language has delivered in recent years. These enhancements help dispel some of the myths surrounding the language. From JShell in JDK9, the Instance Main Methods as a preview feature since JDK 21 and Implicitly Declared Classes, these are just a couple of the features that are helping Java to evolve so that students and new developers can write their first lines of code without the need to understand the concepts that apply for large programs.

As part of the materials that the Java in Education working group has designed, you’ll find some presentations related to “Why you should teach Java”, ‘What is Java and why you should learn it’, and ‘Day in the Life of a Developer’ examples, “ML & AI Workshop for Java Developers”, featuring the amazing work of JSR 381, Visual Recognition API. JSR 381 was developed through the JCP as a stand-alone optional JSR that simplifies and standardizes a set of APIs familiar to Java developers for classifying and recognizing objects in images using machine learning. In addition to classes specific to visual recognition tasks, it provides general abstractions for machine learning tasks like classification, regression, data set, and reusable design which can be applied to machine learning systems in other domains. At the current stage, it provides basic hello world examples for supported machine learning tasks (classification and regression) and image classification.

This material is available for anyone that wants to spread the knowledge on this topic. The target audience for these presentations ranges from people with no CS background to professors who want to show how wonderful Java can be in the learning experience of a new developer.

Since the JCP EC started meeting face to face again in 2023 (no face-to-face meetings 2000-2022), we have visited universities and JUGs in those locations – Singapore (hosted by Alibaba), Montreal, New York (hosted by BNY), Munich (hosted by MicroDoc) and Seattle (hosted by Amazon). In 2025, we will meet in the Bay Area (hosted by Microsoft) and Cambridge (hosted by Arm). We will also hold gatherings at FOSDEM, JavaOne and Devoxx, among others in 2025. One of the most important take aways from our visits: to engage the next generation of Java developers, you need to meet the students where they are (at the universities) – at least in the early stages.  There have been several user groups who have adopted these principles as early adopters to grow and include students in the communities; below are a few examples.

The Java User Group Philippines (JUG PH) is a revitalized Java User Group focusing on Java, Cloud and AI Technologies. Since 2023 they have continuously been doing meetups, partnering with large tech communities for conferences and their meetups and doing bootcamps.  Once example is the University Partner Summit by ING Hubs Philippines. To connect with various universities last Nov 2024, JUG PH provided a guest speaker and connected with various university representatives to engage and talk about the use of Java. This was an opportunity to expose the initiatives of JUG PH and it was presented in the presentation slides of ING and Philippine Software Industry Association (PSIA).

JOZI-JUG in South Africa has hosted many coding workshops (series of 6 weeks) for kids with their Devoxx4Kids South Africa initiative, where various kids from primary and high school attended for weeks. They also held Java coding days where the joiners learned to code from scratch, and, at the end of these workshops the participants had the basic understanding of programming to write a simple program on their own.

The Garden State Java User Group GSJUG) in the New Jersey area, one of the oldest jugs (founded in 2001), is also bringing students into the fold. With two Drew faculty members on the group’s leadership team, GSJUG has strong ties with the university. Since they mostly meet on campus, Drew’s students have easy access to each of their meetings. Professors in Computer Science and Cybersecurity courses encourage all students to attend. Drew University has many alums who have found jobs doing Java development. They also outreach to local high school students. A computer science teacher at Madison High School is on the JUG’s board of advisors. Members of GSJUG’s leadership team visit the high school to give talks on Java and other topics of interest to students in the school’s programming club and programming courses. They keep these presentations lively and interactive with a few slides but they spend most of the time answering the student’s questions, and actively seeking feedback from the students at the meeting.

The Dominican Republic JUG (Java Dominicano) has also contributed to this initiative, with some of their participants as faculty members of a local university they had been very close in the collaboration with college students, and prepared talks and workshops for their local community in the local language (see translated materials in Spanish). In July of 2023 they made a Workshop around the Topic of Machine Learning in Java. The workshop was part of their JUG annual conference called JConfDominicana and went from – what is a JSR, why Java is adding these kinds of APIs to the platform, to developing some real examples of Machine Learning Models and a Convolutional Neural Network for Visual Recognition – all in Java. The Dominican Republic JUG has also given talks to high school students who don’t know which language to learn or if their career will be successful in Computer Science. They presented at a local high school the presentation about “Java 4 young devs”, ideal for the previously described audience.

The Java in Education initiative has support from many JUGS around the globe, including recent contributions from the Japan Java User Group community, with the inclusion of materials translated into Japanese. These are now available, in addition to the materials translated into Spanish by the Dominican Java User Group community in 2023.   The Dominican Republic JUG and Jozi JUG were also recognized in the 2023 JCP Annual Awards, in the Java in Education Community Award category, with Jozi JUG selected as the winner by the JCP Executive Committee.

Get involved today to bring Java to the next generation of developers in your local community. Engage with your local educational community to continue to grow Java in Education.

I am looking forward to 2025, including the return of the JavaOne Conference in March and many other conferences where I have the opportunity to engage and connect with the Java Community around the globe. We are so fortunate to be a part of such a wonderful community of people in the Java Community – let;s engage and connect with each other in 2025.

Author: Heather VanCura

Heather is a Vice President and Chairperson of the Java Community Process (JCP) program. She is a leader of the global community driven Java adoption and user group programs. In this role she drives the efforts to transform the JCP program and broaden participation and diversity in the community. She is passionate about Java, women in technology and developer communities, serving as an International speaker and community organizer of developer hack days around the world. Heather enjoys speaking at conferences, such as OSCON, FOSDEM, Devoxx, Wonder Women Tech, and the JavaOne Conferences. She resides in the San Francisco Bay Area, California USA and enjoys trying new sports and fitness activities in her free time.

Next Post

Previous Post

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

© 2024 JVM Advent | Powered by steinhauer.software Logosteinhauer.software

Theme by Anders Norén