JVM Advent

The JVM Programming Advent Calendar

Navigating the Java Ecosystem

Java moves our world. Think of any industry or technology and you’ll see Java – from banking, health, commerce, gaming, insurance, education to Quantum Computing, Artificial Intelligence, Blockchain and many more. It is literally everywhere. As a trusted ecosystem, Java has adapted to changing developer and business needs and continues to be relevant and popular. Java continues to be at the top of the rankings of programming languages used by companies and developers. For example, the TIOBE Programming Community Index, GitHub survey and the RedMonk, language rankings.

Whether you are new to Java programming, or have been using Java since its’ inception, it is clear that Java continues to remain one of the most popular and relevant languages.

Part of the success can be attributed to how the language is evolved and how the developer community is collaboratively involved in the evolution. 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. Every year, the membership of the JCP program elects the members of the JCP EC.

After being introduced in 1999, the JCP program has continued to evolve itself over time use 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. 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.

Inspiring the next generation of Java developers

As we celebrated 25 years of Java technology in 2020, the JCP looked forward to the next generation of Java developers. We began encouraging Java community leaders to participate in inspiring the next generation of developers to code using Java by engaging with their local educational communities. If you are an experienced Java developer or Java User Group member/leader, this is a prime opportunity for you to pay it forward.

Nearly 100 JUGs participating are participating in the JCP program from all around the world. As mentioned above, JUGs can join the JCP program as Partner Members: https://jcp.org/en/participation/jug

In 2020, some of our discussions focused 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 community of junior developers and students to learn and use Java technology.  The purpose and focus are 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.  Java is the top in demand skill from employers for technical talent and also the most highly paid technical skill. Once students are working on projects in industry, it is difficult to find a project that does not include or touch some Java code.

We can also educate developers around the myths about the capabilities of modern Java technology. 

This effort is designed to be global, JUG led, and supported by the JCP program. Our world. Moved by Java! Join us to continue to grow your local community to be #MovedbyJava.

You can join our group.io list to participate in discussions with Java community leaders. This is where we develop materials for the community and share experiences.

https://jcp.org/java-in-education

How to get started

How do you get started in your local community? Partner with Local Educational Community and Leverage Resources.

Work with them to utilize Oracle Academy resources. Oracle Academy offers secondary schools, technical/vocational schools, two- and four-year colleges, universities, and their educators’ free resources which include:

  • Expert Java Fundamentals curriculum (English, Chinese (Simplified), French, Indonesian, Japanese, Portuguese (Brazil), Spanish, Arabic)
  • Teaching and learning resources
  • World-class technology and software
  • Professional development opportunities

Institutional membership is best suited for institutions and educators who wish to take full advantage of Oracle Academy curriculum and teaching resources for the classroom, including world-class technology and software, professional development, Oracle professional certification resources, member recognition, and a wealth of teaching and learning resources. Oracle Academy membership is free.

https://academy.oracle.com/en/oa-web-overview.html

How to participate with your Java User Group (JUG)

How to get your JUG started

  • Host a workshop in your JUG – to encourage interest in members of your JUG to consider participating in this initiative
  • Invite local teachers to attend or co-present with you in a scheduled session with students – don’t make it overwhelming for them to attend or co-present. Check to see if your local institutions have joined Oracle Academy.
  • See tips below for reaching out to Universities.
  • Use the two existing presentation materials https://jcp.org/java-in-education

  What is Java and why should you learn it? (Presentation #1)

●Target Audiences:
●With Programming background:
○High School students, college students, new developers 
●With no CS background: 

Abstract: Did you know that Java powers the most popular websites in the world? Java is the driving force behind Wikipedia, Spotify, Google, Amazon, and many other sites. Java was created over 25 years ago, and it continues to be one of the leading programming languages. Java developers are among the world’s most highly paid developers.
 In this talk, we will explain what Java is, how Java solves problems in the software industry, and how Java can guide your career growth. We will also provide resources to help you learn Java and explore how you can become a certified Java developer. We will show you how to stay informed when new versions of Java are released. We’ll tell you how joining your local Java User Group builds your network and may eventually lead to an internship or a job. Come for Java; stay for all the fun!

 Why Should You Teach Java? Why Should You Learn Java? (Presentation #2)

Highlights of New Java Language Features

Target Audience:
CS instructors/educators/students
Developers considering Java 

Abstract: Java is used by the top 95% of all employers around the world to build mission-critical systems. Because of this demand, Java is widely embraced by the education community. Amongst its many features, Java is object-oriented, is written once and runs on any device, has built-in multi-threaded programming, has an integrated UI library, and has a rich ecosystem maintained by developers all over the world. For this and many other reasons, Java continues to attract educators. Java continues to evolve to meet the growing industry trends.  In this presentation we look at recent enhancements to the language, look at some modern coding examples, and compare Java to another well-known language. One audience for this is educators considering Java in the classroom or who might need to defend their choice. It can also be used to help students and developers decide to learn Java. As Java evolves so will this presentation. A career in software development should begin with Java.

Reaching out to Universities

  • Contact student associations, college professors, or assistants – try to figure out what they are looking for from the industry. 
  • Offer to host sessions by industry professionals (from your JUG) at their educational institutions.
  • Offer to help or organize Java hack days
  • Offer to be a guest speaker at computer science, object-oriented, or Java course.
  • Hold a JUG meeting (virtual or in-person) for students.
  • Encourage students and their professors to join your JUG or its mailing list.
  • Professors are actively looking out for internships for their students in good organizations. JUGs can help by sharing any open internships.

Encourage students to check out Oracle’s Java Programmer Certification exams. Recognized by the industry the world over, these certifications help students to know Java inside out and work with great projects and organizations.Oracle University also offers Java Fundamentals – free 6 + hours of introductory Java programming basics such as variables, classes, objects, loops, arrays, and decision constructs. Get introduced to Java’s object-oriented capabilities. Offer to mentor students as they complete the coursework.

learn.oracle.com/ols/learning-path/java-explorer/40805/79726

  • Check to see if your local institutions have joined Oracle Academy. Help university (professors) to update their curriculum or advise on it.

https://learn.oracle.com/ols/learning-path/java-explorer/40805/79726

Java Innovations Continue

The Java 16 release earlier this year and the current Java 17 release are generating enthusiasm in the developer community. Over the last few years there have been many changes in the Java community, but one thing remains the same — the strength and value of Java technology and the Java developer community. The foundation and advantages for the Java developer community are provided through the oversight of the JCP program.

The innovations in Java 9 allowed for Java SE to deliver a new release every six months.  Oracle also contributed many commercial features of Oracle JDK into OpenJDK following the release of Java 9. The Java community adopted the concept of long-term support (LTS) releases, with many community members providing a variety of options for support in distributions.

New features and functionality became accessible and digestible to developers in smaller increments with the six-month release cadence.  This enables an easier migration to new versions of Java, but also helps developers to learn and use all of the features as they become available without waiting for years in between releases.  The ability to have these innovations available sooner, also motivates community members to have their contributions accepted

In addition, Java EE migrated to the Eclipse Foundation, and has transitioned to Jakarta EE.  https://jakarta.ee/

. With the Java 16 release, the OpenJDK Community’s Git repositories are now hosted on GitHub. https://github.com/openjdk

As a community member, how can you navigate the aspects that change and continue to amplify the value provided by the JCP program to ensure continued success of Java technology?  

The JCP continues to evolve the Java SE platform (and Java SE optional packages) and requires JSRs to include full complete specifications, Reference Implementations, and Technology Compatibility Kits, which provides the compatibility required for a diverse ecosystem to thrive and grow.

The result is that the JCP is more open than it has ever been.

How will you participate?  As in individual is okay. It is even better as a team. You can help each other and work together in your Java User group or your team at your employer to make Java better. Working together we achieve more.

Why & how to participate

Why

  •  Acquire knowledge. Learn from experts, early access. Enable an easier transition between releases. Be faster to market. Put your Requirements into process.
  • Build your resume. Add experience and skill development. Grow as developers. Communication, collaboration, negotiation, teamwork.
  • Increase professional visibility: curriculum, articles, workshops, presentations.
  • Become famous! Grow your reputation and network, as well as the reputation of your JUG.
  • Altruism: Make Java better: Specifications based on real world experience are more successful. Gain new customers based on your expertise. Create the future Java technology.

Steps to Participation & Collaboration

  1. Pick a project. There are many options.  You can pick a JSR out of the active JSRs list on JCP.org: https://jcp.org/en/jsr/stage?listBy=active

For example, the Java SE Platform JSR: https://jcp.org/en/jsr/detail?id=393

You can participate in OpenJDK by downloading the Early Access Builds and joining the Adoption Group of OpenJDK. Join the mailing list and then indicate your interest and feedback. 

https://wiki.openjdk.java.net/display/Adoption

As part of the Adoption Group, there is also the Quality Outreach group.  You can support FOSS Java projects keep up to date with the latest release of Java. There are over 100 projects currently participating and listing of each project communication forum. Two examples of projects participating that have found new contributors via this program are Apache Maven and Eclipse Collections.

https://wiki.openjdk.java.net/display/quality

You can participate in OpenJDK by downloading the Early Access Builds. You can also download early access builds of some OpenJDK projects to learn about upcoming enhancements, such as Project Loom, Metropolis, Panama and Valhalla:  https://jdk.java.net/

You can also become a Contributor of OpenJDK A contributor is a Participant who has signed the Oracle Contributor Agreement (OCA), or who works for an organization that has signed that agreement or its equivalent and makes contributions within the scope of that work and subject to that agreement. A Contributor may submit changes larger than a simple patch, may propose new Projects, and may take on various roles within Groups and Projects.

Download Early access builds: JDK 18LoomMetropolisPanama, & Valhalla

For more information on how to get involved with OpenJDK https://openjdk.java.net/contribute/

  • Communicate. Once you pick a project, either collectively or on your own, remember to communicate within your JUG. You also need to communicate with the Project Lead or Spec Lead and EG on public discussion and issue trackers.  Communication is a two-way street.

3) Decide on actions. Once you have communicated your interest, decide and agree on the actions you will take. See below for some suggestions. These are some things that have been successful – you should not be limited by this list.

  • Share ideas and feedback, comment on list and public issue trackers.
  • Read early versions and share feedback on specifications and Javadocs.
  • Download and provide feedback on early access reference implementation.
  • Try writing sample applications using early builds of reference implementation.
  • Write or speak about the technology and encourage others to participate. Translate into your native language.
  • Evangelize – use social media, blogging or lightning talks to share your knowledge.
  • Help with documentation.

4)  Follow through.  It is crucial that you follow through on your agreed actions.  This can include contributing to public discussions/issue trackers and providing your feedback and comments. It is important to keep in mind that the Specification Lead and the Expert Group or Project Lead has the final decision on incorporating the feedback. For specifications in Public Draft, new feature requests may not be considered for the current release. Multiple groups or JUGs can and should collaborate on projects. There is always plenty of work and going through the material multiple times can improve the quality of feedback provided.

5) Participate and organize hack days. A hack day can be virtual or in person and can be a small (3-5 developers) or large group (100s).

When you organize or participate in a hack day, you may follow suggestions to past successful hack days:

Test the early RI builds; use them to find pain points, report bugs, suggest feature enhancements.

Help triage issues; reproduce issues, erase/merge duplicates, set priorities/categories etc.

Give feedback on design; discuss issues and deliver feedback, think about how you would use as a developer.

Help build the RI; get coding with the actual implementation of the spec or build sample applications.

Help build the TCK; all implementations must pass the test suite – this is a great way to gain test experience.

Most of all, when you engage, have FUN – being part of the Java community is FUN! For companies, it will help you to develop new Markets, adapt and inform your technology strategies, and enable you to retain developers and grow as a developer.

Author: Heather VanCura

Heather is Director 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.

© 2022 JVM Advent | Powered by Jetbrains LogoJetBrains & steinhauer.software Logosteinhauer.software

Theme by Anders Norén

%d bloggers like this: