Find JSRs
Submit this Search


Ad Banner
 
 
 
 

JCP Executive Committee Meeting Minutes: 24 April 2024

Executive Committee Meeting Minutes for April 2024

version 1, June 24, 2024

Date


April 24, 2024

Location


  • Munich, Germany hosted by MicroDoc

Attendance

Thursday 24 April
PMO
  • Heather VanCura
Executive Committee
  • Alibaba - Sanhong LI - present
  • Amazon.com Services - Volker Simonis - present
  • ARM - Stuart Monteith - present
  • Azul Systems - Gerrit Grunwald - present
  • BellSoft - Alexander Belokrylov - present
  • BNY - not present
  • Eclipse - Carmen Delgado - present
  • Ken Fogel - present
  • Fujitsu - not present
  • IBM - Severin Gehwolf - present
  • Intel - not present
  • Japan JUG - Maya Ishida - present
  • JetBrains - Tagir Valeev - present
  • Microsoft - Martijn Verburg - present
  • MicroDoc - Bruno Caballero, Christian Kuka - present
  • Oracle - Luke Kowalski - present
  • SAP - Martin Doerr, Christoph Langer, Gotz Lindenmaier - present
  • SouJava - Bruno Souza - present
Total attendance: 15 of 18 voting members
Since 75% of the EC's voting members were present, the EC was quorate for this session

Minutes


There are no changes in status as a result of attendance at this meeting.

The EC Standing Rules state the following penalties for non-attendance at EC meetings (note that those who participate in face-to-face meetings by phone are officially counted as absent):

  • Missing two meetings in a row results in a loss of voting privileges until one meeting has been attended.
  • Missing five meetings in a row, or missing two-thirds of the meetings in any consecutive 12-month period results in loss of the EC seat.

Personnel changes


There were no personnel changes to report.

EC Stats


Heather presented the usual EC stats (see the presentation for details).

JCP Membership Update


Heather presented an update to the JCP Program Membership numbers - total membership is now 909, up from 884 in 2023, including cancellations and membership migrations (see the presentation for details). Ken suggested that we should do more to encourage Java User Groups (JUGs) to join the JCP program. Heather agreed that while there are over 100 of the 350+ worldwide JUGs, we can encourage more participation. The March JCP JUG update meeting is one example (recording available on jcp.org).

JCP 25 Year Anniversary


Heather provided an update on JCP 25 Year Anniversary (see presentation for details). We also discussed how to encourage more Java User Groups to participate in the JCP program through more activities like the March 2024 JCP Update and the 25 Year Anniversary Kits for communities.

Java in Education


Heather reviewed a summary of discussions on the Java in Education Working Group (see presentation for details). This initiative is helps JUG leaders to connect with Universities and students, offering presentation materials, best practices, tools, and support for building relationships to the next generation of developers to Java. presentation by Kevin Rushforth presentation on a JavaFX notebook.

Helidon & Virtual Threads


Daniel Kec presented on how Helidon is utilizing and implementing Virtual Threads (see the presentation for details). Helidon has replaced Netty with a custom Web Server (Project Nima) that is designed for Virtual Threads, created in cooperation with the Java team, with performance comparable to Netty in the Helidon 4 release. The last part of the presentation focused on how Helidon addresses pinning on virtual threads. Volker commented that addressing pinning should be a bug, that is backported, which Heather suggested was a good segway to our next presentation topic on Tip & Tail development.

Paving the Onramp, Securing the Platform, Tip & Tail JEP


Ron Pressler presented a three part presentation on Paving the Onramp or Small(er) Java, Securing the Platform and the Tip & Tail Java Enhancement Proposal (JEP) in development stages (see presentation for details).

First Ron presented an overview of the 'Paving the Onramp' projects, which are a series of JEPs in various stages. Volker asked about how to find all of the JEPs list together with status. The JEPs are in different OpenJDK projects and there is not a comprehensive list available. Heather suggested the Java in Education group can publish an aricle based on Ron's update of the JEPs he presented.

Next, Ron presented updates on Java integrity and security (see the same presentation for details) as well as highlighting some Java Enhancement Proposals (JEPs) to address these topics in OpenJDK. The goal is integrity by default - the spec will not change; for example, removing unsafe does not change the spec whatsoever.

Finally, Ron presented on the Tip & Tail JEP in development (see the same presentation for details). Since moving to a six month release cadence for the Java platform, developers have faster access to new features in production quality, the feature pipeline is rich and the Java Platform release planning has been simplified. Java is in a good competitive position and the provided features that developers want to use.

The informational JEP in development explains the approach the Java Platform Group uses for the Java Platform, designed as an informational JEP for library maintainers and authors to help them with migration to new versions of the platform. Informational JEPs are not technical. Volker provided comments that he believes the model is not practical. For example, pinning in virtual threads should be a bug not a new feature; different versions not a spec detail, it is implementation details. Ron reply is that it is backward compatible; if you backport huge changes, then configurations will change. Tip and Tail model is to only backport security fixes, not new features. If you have two different versions of an API, even if you use different version number and same name, that is one way of doing it. Tip and Tail does not dictate that - leave older code alone and don't try to target many versions with the same code base.

Third Party Tools & Libraries Impact


Aurelio Garcia-Ribeyro from the Product Management team of the Java Platform Group shared a presentation on Third Party Tools & Libraries Impact (see the presentation for details). He shared some observations about the multiple releasee train model in the Java ecosystem, noting how open source libraries tend to offer a one size fits all model to cover everything, resulting in obvious and hidden costs to the maintainer. The joy and glory for maintainers is in the tip development, not in back porting new features.

Aurelio put this into the the context of corporate adoption, posting that you don't need to use a single version for all your applications - it is possible to run multiple Java versions. Moving to a release slowly, only when needed, and incrementally over time. Do not expect all to migrate the first day, in some cases some applications will value staility and it will take a while to migrate and this is not a failure. Migrate applications that value new features first, When you get to adoption of older projects, the application may not event be needed anymore.

Martin commented about incompatible changes, giving Java developes very long warning; Auerelio pointed out that is why we have 'Deprecated for Removal' JEPs. What is the perfect amount of time? It depends on solution or alternatives - give permisision to lose stuff and remove stuff. Until the last tail goes out, you can get support. There is a choice of stability and new features- people who use old versions want stability. Martijn asked how Microsoft could help customers to migrate, suggesting open source tooling help. Tagir commented that at JetBrains they offer another way: multi-release jars instead of branching, you put in a sepeate folder, becomes more popular.

Ideally, we want to shift culture of tools and libraries adopting/supporting new JDK versions quickly, supporting older Java versions long enough to allow applications to stay put for most/all their lifetime [with only critical fixes]. And encourage development best practice/corporate culture to accept multiple runtime versions coexisting: the right Java version depends on the type of application and where it is on its own lifecycle; not on what every other applications runs on.

Heather suggested this could be a topic for the next Java Ecosystem working group.

Java Ecosystem Working Group


Heather shared an update on the Java Ecosystem working group, with the goal: educate and increase awareness around Java ecosystem third party tools and libraries to increase adoption of modern release processes by third partly tool and library maintainers. Heather shared that the working group met in March and April, with Alibaba sharing in the last meeting about Alibaba experiences in JDK adoption. Heather will invite JetBrains to share their experiences in a future meeting.

Java in Education


Heather reviewed a summary of discussions on the Java in Education Working Group (see presentation for details). This initiative is helps JUG leaders to connect with Universities and students, offering presentation materials, best practices, tools, and support for building relationships to the next generation of developers to Java. presentation by Kevin Rushforth presentation on a JavaFX notebook.

RISC-V Ecosystem


Ludovic Henry from Rivos presented an update on the RISC-V Ecosystem and the RISC-V Port Project in OpenJDK (see presentation for details). Volke asked if they expect applications to behave differently? Ludovic explained hardware and software impact each other on RISC-V. Bruno commented that MicroDoc is working on Java Extension Memory Tagging Spec, features around security and Garbage Collection Stuart commented he is looking into ZGC kernel pointers and would like to learn more. Ludovic shared that hardware is expected in late 2024 and there will be an early adopters program.

MicroDoc Host presentation


Bruno Caballero presented a MicroDoc company history, update and shared a few demonstrations (see presentation for details).

Project Babylon


Steve Dohrmann presented on Project Babylon (see presentation for details). Steve gave credit to Paul Sandoz as lead of the project and the content is based on Paul's Project Babylon talk. Code Reflection is a Java platform feature being researched and developed under OpenJDK Project Babylon. Babylon promises to extend the reach of Java into machine learning models and GPUs via code reflection. See article, 'Exploring Triton GPU programming for neural networks in Java,' describing how we can use Code Reflection to implement the Triton programming model in Java as an alternative to Python. The project is in early phases and now is a good time to get involved in the project if you are interested in this area. Heather will follow up to have Paul present at our next JCP EC face to face meeting in October.

Other business


Heather reviewed the dates for the 2024 calendar. We briefly discussed the October face to face in Seattle hosted by Amazon. For our 2025 calendar, Microsoft offered to host us for the Spring meeting in the Bay Area, and Arm in the Fall. Heather thanked MicroDoc for hosting us and organizing the ancillary events for our meeting in Munich and adjourned the meeting.

Next Meeting


June 11, 2024 8 AM - 10 AM PDT (second hour is public).