Friday, December 24, 2021

Education, JUGs, and hack days: The evolving Java community ecosystem

Oracle Java Exam Prep, Oracle Java Certifications, Oracle Java Exam Prep, Java Career, Java Tutorial and Materials

The chair of the Java Community Process shows you how to engage—and how to make a difference

Download a PDF of this article

Whether you are new to Java programming or have been using the platform for 25 years, it is clear that Java continues to remain one of the most popular and relevant programming languages.

Java moves our world. Think of any industry or technology, and you’ll see Java—banking, healthcare and life sciences, commerce, gaming, insurance, education, quantum computing, artificial intelligence, blockchain, and much more. Java is literally everywhere.

As a trusted ecosystem, Java has adapted to changing developer and business needs, thereby remaining relevant and popular. Java continues to be at or near the top of the rankings of programming languages used by companies and developers. For example, see the TIOBE Index, GitHut survey of languages used on GitHub, and the RedMonk Programming Language rankings.

The Java Community Process

A huge part of Java’s success can be attributed to how the language and runtime have evolved—and how the developer community is collaboratively involved in the evolution.

The Java Community Process (JCP) program is the method by which the international Java community standardizes and ratifies the specifications for Java technologies. The JCP ensures that high-quality specifications are developed using an inclusive, consensus-based approach. Specifications ratified by the JCP program must be accompanied by both a reference implementation, which proves the specification can be implemented, and a technology compatibility kit, which is a suite of tests, tools, and documentation used to test implementations for compliance with the specification.

Years of experience working within the JCP have shown that the best way to produce a technology specification is to use an open and inclusive process to codevelop 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.

Within the JCP, the Executive Committee (EC) is responsible for approving the passage of specifications through the JCP’s various stages, as well as for reconciling discrepancies between specifications and their associated test suites. Every year, the members of the JCP program elect the members of the EC, ensuring that the EC represents a broad cross-section of major stakeholders and other members of the Java community.

Who are those members of the JCP? It varies widely, and includes companies, foundations and nonprofit organizations, Java user groups (JUGs), and individuals.

Anyone can apply to join the JCP and then participate in the JCP program as a corporation or nonprofit (full member), JUG (partner member), or individual (associate member). The stability of the JCP program and participation from community members ensures continued success of the Java platform today and into the future.

Standards enable execution of technical strategies, and the JCP enables collaboration of industry and participation from the developer community. Compatibility matters: The specifications, reference implementations, and technology compatibility kits required by the JCP program have led to a large, stable, and vibrant ecosystem to be built up around Java technologies. The JCP program provides the foundation and structure for this because intellectual property rights and obligations are protected, and everyone’s choice of implementations that pass the compatibility tests benefits the whole ecosystem.

Evolution of the JCP and the JCP.Next

After being introduced in 1999, the JCP program has continued to evolve over time using the process itself through an effort called JCP.Next, with the work being carried out in the open by the EC.

JCP.Next is a series of JSRs 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 operational processes through modifying the JCP process document. Once the changes are complete, they will apply to all new JSRs and to future Maintenance Releases of existing JSRs for the Java platform.

As director and chairperson of the JCP program, I lead and chair the EC, and in this role, I act as specification lead of the JCP.Next JSRs. The EC itself serves as the expert group developing and revising those JCP.Next JSRs. In the JCP, we use the process to change the process: In other words, we use the same process to evolve the JCP program as we do to evolve technologies and other specifications.

The following four JSRs in JCP.Next have been finalized and approved:

◉ The first effort, JSR 348, Towards a new version of the Java Community Process, was completed and put into effect as JCP process document 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, contains revisions and resulted in JCP process document 2.9.

◉ The third, JSR 364, Broadening JCP membership, was put into effect as JCP process document 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 may join the JCP program, and depending on the type of membership, JCP members can participate as a JSR specification lead, expert group member, or contributor.

◉ The fourth, JSR 387, Streamline the JCP program, 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. This JSR also resized the JCP EC to the current size of 18 EC members.

Inspire students, the next generation of Java developers

While the JCP celebrated 25 years of Java technology in 2020, we 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 already participate in the JCP program from all around the world; as mentioned above, JUGs can join the JCP program as partner members.

In 2020, some of our discussions focused on the topic of Java in education. This topic was suggested by Ken Fogel, a new EC member.

Java community leaders are in a unique position to inspire their local community of junior developers and students to learn and use Java technology, and so we formed a working group to address the issue. The purpose and focus of this initiative 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 a top in-demand skill from employers for technical talent, and Java developers are also the most highly paid tech workers. 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.

Get involved with Java in Education

The Java in Education effort is designed to be global, JUG-led, and supported by the JCP program. Join the group.io list to participate in discussions with Java community leaders. This is where we develop materials for the community and share experiences.

Connect your local community to your KIG. Work with your local educational community to leverage Oracle Academy resources which offer secondary schools, technical/vocational schools, two- and four-year colleges, universities, and educators free resources, including

◉ 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.

Leverage your Java User Group. Host a learning workshop in your JUG to encourage interest in members of your JUG to consider participating in this initiative. You can also invite local teachers to attend or copresent with you in a scheduled session with students.

Don’t make it overwhelming for teachers to attend or copresent. Check to see if your local institutions have joined Oracle Academy. You might use the existing presentation materials on the Java in Education page.

Reach out to universities. You can contact student associations, college professors, or teaching assistants to try to figure out what they are looking for from the industry. You can offer to host sessions by industry professionals (perhaps from your JUG) at their educational institutions, help or organize a Java hack day, or even be a guest speaker at a computer science class.

You can also hold a JUG meeting (virtual or in person) for students and encourage them as well as their professors to join your JUG or subscribe to its mailing list.

By the way, professors are often looking out for internships for their students in good organizations. You and your JUG can help by sharing any open internships.

Encourage students to check out Java certifications. Recognized by the industry the world over, the Oracle Certified Professional: Java SE certifications help students and recent graduates know Java inside out, work with great projects and organizations, and boost their careers.

Tell students about the free Java class. Oracle University offers a free Java Explorer course, a seven-hour class that provides an overview and covers text and numbers; arrays, conditions, and loops; classes and objects; exception handling; inheritance and interfaces; and Java on Oracle Cloud Infrastructure. You and your JUG can offer to mentor students as they complete the coursework.

Navigating the evolution of the Java platform

The Java 16 release in March 2021 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, and that’s 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 Java 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 between releases. The ability to have these innovations available sooner also motivates community members to have their contributions accepted.

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? How will you participate? While participating as an individual is okay, being part of a team is even better. You can help each other and work together in your JUG or your team at your employer to make Java better. We achieve more by working together.

Why participate in the JCP?

◉ Acquire knowledge. Learn from experts, gain early access to releases. 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 a developer through communication, collaboration, negotiation, and teamwork.

◉ Increase professional visibility through contributing to curriculum, articles, workshops, and presentations.

◉ Become famous! Grow your reputation and network as well as the reputation of your JUG. Gain new customers based on your expertise.

◉ Make Java better: Specifications based on real-world experience are more successful. Create the future Java technology.

Here are some steps to participation in the JCP:

Pick a JCP project. There are many options. You can pick a JSR out of the active JSRs list on JCP.org, such as the Java SE Platform JSR.

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 Loom, Metropolis, Panama, Valhalla, and even JDK 18.

You can participate in OpenJDK by joining the Adoption group. Join the mailing list, and then indicate your interest and feedback.

As part of the Adoption Group, there is also the Quality Outreach group. You can support open-source Java projects and keep up to date with the latest release of Java. More than 100 projects are currently participating; two examples that have found new contributors via this program are Apache Maven and Eclipse Collections.

You can see more about involvement with OpenJDK here.

Communicate! Once you pick a project, either collectively as a work team or as an individual, remember to communicate within your JUG. You also need to communicate with the specification lead, project lead, and the expert group, as appropriate, on public discussion and issue trackers.

Communication is a two-way street; if you don’t communicate, you aren’t participating.

Decide on actions. Once you have communicated your interest to a project, decide and agree on the actions you will take. Here are some things that have been successful, but 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, such as by social media, blogs, or lightning talks.

◉ Help with documentation.

Follow through. It is crucial that you follow through on your agreed actions, including contributing to public discussions/issue trackers and providing your feedback and comments. It is important to keep in mind that the specification lead, project lead, and the expert group have the final decision on incorporating the feedback.

Participate and organize hack days. A hack day can be virtual or in person, and it can be with a small group (three to five developers) or a large one (hundreds of developers). When you organize or participate in a hack day, you might find these ideas on past successful hack day projects useful:

◉ Test the early reference implementation builds. Use them to find pain points, report bugs, and suggest feature enhancements.

◉ Help triage issues: Reproduce issues, erase/merge duplicates, and set priorities/categories.

◉ Give feedback on design, discuss issues, and deliver feedback. Think about how you would use this feature as a developer.

◉ Help build the reference implementation. Start coding with the actual implementation of the specification or build sample applications.

◉ Help build the technology compatibility. Because all implementations must pass the test suite, this is a great way to gain test experience.

When you engage, have fun. As an individual, being part of the Java community should be enjoyable. For companies, it will help you to develop new markets, adapt and inform your technology strategies, and enable you to retain and grow your developers.

Source: oracle.com

Related Posts

0 comments:

Post a Comment