You may be aware that Java Standard Edition (SE) is not open source software if you use it to write business applications. Oracle changed its policy in January 2019 to require a commercial license for any use of SE, from development to production, as it is not managed by a foundation like Python or JavaScript.
This change also sparked a lot of discussion in open source communities about licensing and Java usage. If you’re still perplexed, this blog will explain what makes Java open source and how any changes affect Java programmers.
What is Open Source?
The term “open source” originally referred to open source software (OSS). Anyone can see, modify, and distribute open-source software, which is code that is designed to be publicly accessible.
Peer review and community production are used to develop open-source software in a decentralized and collaborative manner. Open-source software is frequently less expensive, more flexible, and has a longer lifespan than its competitors because rather than being developed by a single author or company, it is developed by communities.
Open Source Software – A Movement
Beyond software development, open-source has evolved into a movement and a way of life. The open-source movement uses open-source software’s values and decentralized production model to find new solutions to problems in their communities and industries.
Researchers working on early internet technologies and telecommunication network protocols relied on an open and collaborative research environment in the 1950s and 1960s. Peer review and an open feedback process were encouraged by the Advanced Research Projects Agency Network (ARPANET), which would later become the foundation for the modern internet. The source code was shared and built upon by user groups. The facilitation of discussion and the development of open communication and collaboration standards were aided by forums. Since the internet’s inception in the early 1990s, the values of collaboration, peer review, communication, and openness have been written into its foundations.
Java Journey To Being Open Source
Java began its open-source journey in 2006, but it was only in 2011 that Oracle released Java SE 7, which included a full reference implementation. Within the OpenJDK community, Oracle leads the open-source Java development. The Java Community Process is in charge of the specification processes (JCP).
Many places, including Oracle, sell commercial Java licenses, enterprise features, and support. Oracle Java SE Subscription is Oracle’s commercial Java offering. The Oracle JDK’s core runtime and libraries are identical to OpenJDK’s, with a few minor differences (such as packaging and look and feel). Professional support and commercial software tools for managing and monitoring Java in the enterprise are included in Oracle’s commercial license.
Why is Java open source?
According to Georges Saab, Oracle’s vice president of Java platform development, the open-source process improves Java. Developers, users, and businesses, including Oracle, will benefit from it. It promotes transparency in the development and encourages innovation, stability, and a predictable release schedule.
In general, new features in open source software appear in the release cycle sooner than new features in proprietary software. When it comes to proprietary software, development takes place behind closed doors, and users don’t get to see new features until the software reaches beta, which is often too late to incorporate feedback into the final version. Open source development allows for smaller increments of change and more immediate and detailed feedback.
History of Java and Open Source
Oracle is dedicated to open source and has a large and active Java community. It’s necessary to go back in time to understand how the Java community came to be where it is today.
In 1995, Microsoft launches Windows 95 with a massive marketing campaign and people are lining up to buy it at midnight. Amazon opens its online store. Larry Page and Sergey Brin launched BackRub, a search engine that would later become Google. Dumb and Dumber is the highest-grossing film of the year, while other notable films include Sandra Bullock’s The Net, Robert Redford’s cybercrime thriller Sneakers, and Pixar’s first feature film, Toy Story. Sun Microsystems introduced Java to the world as proprietary, closed-source software in 1995.
To put things in perspective, the tech industry in the 1990s wasn’t as open to open source as it is now, according to Donald Smith, senior director of product management for Oracle’s Java platform group. Indeed, it wasn’t until 1998, three years after Java’s release, that the term “open source” was coined. Advocates had previously discussed free software.
Sun, IBM, Hewlett-Packard, Fujitsu, Oracle, and Apple all worked together to make Java more platform-agnostic. The two companies collaborated on source code. It wasn’t, however, open-source. The code was carefully guarded and restricted.
That wasn’t enough to satisfy everyone, so in 2007, Sun released OpenJDK 6, the first open-source Java version. Although OpenJDK 6 was unfinished, it allowed Sun to start collaborating with other interested parties in an open-source process and to establish the Java open source community.
The Java community – Where Platforms Are Constantly Changing
OpenJDK (Open Java Development Kit) is a Java SE implementation that is free and open source. It’s an option that allows more than 70% of Java developers to keep their Java application environments stable while staying within the open-source ecosystem. The GNU GPLv2 is the primary license for OpenJDK. Because of the freedoms provided by this distribution strategy, OpenJDK has become the standard for Java developers creating desktop applications that are compatible with Java SE.
Enterprise Java (Java EE), which is based on the Java SE platform, has been developed and maintained by Oracle. Java EE includes features outside of SE’s scope to support large-scale, scalable, multi-tier, and secured applications for a variety of enterprise environments. In September 2017, the Eclipse Foundation took over the Java EE platform, which resulted in the adoption of more agile processes, a change in governance, and the implementation of more flexible licensing.
The Eclipse Foundation announced a new brand name, Jakarta EE, along with a new logo and working groups to help developers transition from Java EE to the new platform a year later, in 2018. Many enterprise Java developers were impacted by the transition from Java EE to Jakarta EE when it came to implementing new business logic.
The Evolution of Java And Frameworks
Meanwhile, alongside rapidly changing web architectures, new technologies such as RESTful APIs (2000), HTTP 2 (2015), and JSON (2017) were being developed. Microservices architectures were becoming more popular, but because Java EE was in transition, it didn’t pick up on these new paradigms right away.
MicroProfile
MicroProfile was developed in 2016 by the Java community as well as a number of vendors (IBM, Red Hat, and Tomitribe) to optimise the Enterprise Java platform for microservices architectures. MicroProfile later became a member of the Eclipse Foundation, giving enterprise Java developers the option of using SpringBoot or MicroProfile to build microservice architectures. MicroProfile allows developers to create cross-vendor Java-based microservices while ensuring that the Java/Jakarta EE and MicroProfile APIs in the same application are compatible.
MicroProfile Starter is a great resource for exploring microservices in practice if you’re interested in Enterprise Java development. The graphical user interface of MicroProfile Starter requires a few details in order to generate code for a monolithic Java application server.
A MicroProfile runtime allows you to deploy an application artifact (for example, a JAR or WAR file) and run it as a Java application server that follows the MicroProfile specification. You can select a cloud-native runtime from MicroProfle Starter’s runtime list (for example, Quarkus), then select specifications to gain additional enterprise features like fault tolerance, OpenAPI, OpenTracing, and more. After you’ve completed these steps, click “Download” to start working on your app.
Final Thoughts
Java developers can maintain standard enterprise applications while maintaining open source freedoms by sticking with OpenJDK and Jakarta EE. If you want to learn more, check out MicroProfile or explore Quarkus to learn more about runtimes.