This report is an update to earlier Wikibon research “The Next Decade of Java”, which focused on Java for Global 2000 enterprises. This research report is in two parts.
Part 1 focuses on Java SE in mid-sized enterprises with less than 10,000 employees. The premise is that the 2018 change to a continuous improvement strategy for Java with releases every six months, together with the Java SE subscription services, will reduce costs for mid-sized enterprises.
Part 2 focuses on Java SE futures on-premises and in the cloud. Most enterprises want the flexibility to move workloads to the cloud, including Java workloads. The premise is that the change to a six-month Java release cadence will enhance current and future Java functionality for mid-sized enterprises. In particular, future releases will enhance Java to be even more efficient and scalable for both private clouds, public clouds, and personal devices such as laptops and computers. In addition, the inherent portability of Java will ensure that any migration costs between private and public clouds are minimized.
The overall Wikibon premise is that Java will continue as a strong foundation for high-security and high-performance applications for on-premises and cloud deployments for all enterprise sizes over the next decade.
Java SE Support Strategy Business Case
Figure 1 shows that Oracle’s new Java SE Subscription offering can create value for mid-size enterprises.
The vertical (y) axis shows the total 4-year costs of Java Upgrades, Updates, Patching, and a Java SE Subscription for a mid-sized enterprise. This assumes an annual enterprise revenue of $2.5 billion with 8,300 employees supporting 272 Java applications. Table 1 in the Footnotes section below gives the details of all the assumptions and how the data was derived from the Wikibon Java survey and 10 in-depth interviews.
The x-axis shows two (2) scenarios. The left-hand scenario in blue is the total 4-year IT cost of $41 million for a Java support strategy upgrading to the latest release every six months. The right-hand scenario in red is the total 4-year IT cost of $29 million for a Java support strategy using Java SE Subscription. The Subscription enables support to be available for all releases for longer periods and specific releases for extended periods. The business case shows a saving of $11.8 million over four (4) years (a 29% saving) with the Java SE Subscription compared to an alternative strategy of upgrading every six months to stay current.
There may be some mid-sized enterprises where the benefit of upgrading to the latest release will be worth the additional cost; Wikibon’s view is that most enterprises will be better served with the more flexible Java SE Subscription offering.
Oracle’s roadmap for Java SE rolls out future Java enhancements that will continue to support an evolving application development environment, which, in turn, will support both current on-premises and future Java cloud-native applications.
Wikibon concludes that the 2018 change to a continuous improvement strategy for Java, together with the Java SE Subscription offering, is working for mid-sized enterprises. Wikibon projects that Java will continue to be a platform of choice as workloads move to the cloud. Wikibon also concludes that Oracle’s more flexible upgrade strategy for Java introduced two years ago will lead to accelerated functional delivery.
Wikibon believes that Java will continue as a strong foundation for high-security and high-performance applications deployed on-premises and in the cloud for all enterprise sizes over the next decade.
Mid-size Enterprise Survey Extract
For this research, we have defined a “typical” mid-sized enterprise as having revenues in the order of $2.5B and employing about 8,000 persons (revenue per employee is about $300,000). The annual IT budget is assumed to be $87 million (about 3.5% of revenue). The internal IT staff is assumed as 286 persons. The full details and calculations are shown in Table 1 in the Footnotes section below.
The major data source used in this research was a Wikibon survey of 122 enterprises with more than 1,000 employees using Java in 2019. The survey was web-based, with four (4) introductory questions and thirty-three (33) detailed questions. All the 122 survey participants answered all of the total of thirty-seven (37) questions.
For this research report, we selected the responses of mid-range enterprises with between 1,500 and 10,000 employees, with at least eighteen (18) Java applications. The number of enterprises that met these criteria was forty-five (45). A small number of survey results were not included if the answers to questions were well outside normal expectations.
Also, Wikibon conducted ten in-depth interviews with senior executives responsible for Java in 2019 and 2020. These participants were from different enterprises than those included in the survey. The interviews were about an hour-long and allowed the research team to develop and test different hypotheses based on the survey results.
An outside company arranged for the interviewees, who were guaranteed anonymity. The interviewees received a small consideration for sharing their expertise and time.
Wikibon developed the financial model for this report based mainly on the answers to the survey questions. Wikibon’s ten years of experience building financial models of IT organizations were used to augment the model.
Our survey indicated that for a mid-sized enterprise of the size defined above, about 171 of the IT staff were supporting a Java portfolio of 272 applications. The survey shows that eighty-three (83) applications are on Java 8 or earlier, 84 on LTS release Java 11, and 105 on later Java versions. The full details and assumptions are shown in Table 2 in the Footnotes section below.
Results of Selected Survey Questions for Mid-sized Enterprises
Wikibon selected four (4) questions that illustrated important aspects of the survey. The following Figures 2 through Figure 5 show the question, the choices for selection, and the percentage distribution of the responses for mid-sized enterprises.
The previous research shows the same questions as answered by the Global Fortune 2000 enterprises. We’ve noted where there are significant differences between the two enterprise-sized groups.
Importance of Java to Mid-sized Enterprises.
Java as a Leading Platform
Figure 2 below focuses on the answers to Question 1 (Q1).
• Q1: “What are the most important programming languages for your enterprise? Please select the top 2.”
• The choices are Java, Python, C, C++, Go, C#, and Visual Basic.
These results illustrate that Java continues as a leading application platform. 93% of the respondents regarded Java as one of their top two programming languages, significantly ahead of C++ (51%) and Python (29%).
Mid-sized enterprises selecting Java as a top 2 programming language is higher than the Global 2000 (G2K) customers analyzed in our previous report (83%). The priority of other platforms is similar for very large and mid-sized enterprises.
We conclude that mid-sized enterprises focus resources on fewer platforms. The survey, in general, confirms that Java is essential to developers and ISVs across all industries, enterprise sizes, and government agencies (Figure 7 in the Footnotes section shows the details of that distribution).
Figure 3 below focuses on the answers to Question 32 (Q32).
- Q32: “In the past 2 years, have you had any of the following occur with one of your Java SE-based applications? Check all that apply.”
- The choices were:
- Unauthorized intrusion into the application, Compromised customer data or IP loss, Slow application response time, Ransomware, Inconsistent application response time, and Missing transactions.
- Respondents selected an average of 1.9 responses.
Figure 3 above shows that the leading application shortfalls for Java in mid-range enterprises related primarily to application response time. The top three (3) are slow application response time, missing transactions, and inconsistent application response times.
While these mid-sized Java users had many of the same concerns as Global 2000 Java users, they were less concerned about ransomware than their larger peers. Wikibon expects this will change significantly over the next few years.
Drivers for Java Upgrades
Figure 4 below focuses on the answers to Question 11 (Q11).
- Q11: “What are the most important reasons for upgrading your Java SE-based desktop or server applications with new versions of Java SE? Select up to 3.”
- The choices were:
- Better application performance, We want to stay current with latest features, More reliable performance, Better application stability, Important customers demand it, Compliance and regulatory requirements.
- Respondents selected an average of 2.8 responses.
Figure 4 above shows that better application performance, more reliable performance, and security were the top three drivers of Java upgrades. Wanting to stay current with the latest features was the next driver of importance. All the features had significant votes, which suggests that the focus of the Java community is in line with mid-size enterprise requirements.
Our in-depth interviews with senior Java executives in mid-range IT departments indicated that upgrades are needed more frequently for business-critical Java applications. They also indicated that support for upgrades across the Java application portfolio needed to be more flexible.
One significant difference between the mid-size and Global 2000 users is that application stability was somewhat less important for mid-sized enterprises than for G2K enterprises with more than 30,000 employees.
Java Support Mid-size Enterprise Strategies
In addressing their strategies for upgrades and support, the survey data shows that mid-size enterprises use multiple approaches and support options for different parts of their Java portfolio. 69% of mid-sized enterprises have a Java SE Subscription or other support from Oracle.
Although the open-source software is free, the support of open-source software has never been free. Enterprises have always paid for third party support of open-source software. Red Hat for Linux is an obvious example of this practice.
The same is true for Java, with support services being offered by Bellsoft, Oracle, Red Hat, and other vendors. Some vendors provide support via their other products, such as Red Hat, with RHEL licensing.
As a result of our in-depth interviews with mid-size enterprises and the survey data, Wikibon strongly recommends taking a Java portfolio view for support. We suggest that mid-size enterprises should consider their entire Java application portfolio and the different requirements of each application when making decisions about support.
Some applications require mission-critical support services, where the latest release of Java could be significant, and external support services need to be available at short notice. At the other extreme, many simple Java read-only applications may run infrequently and not need attention except when they fail.
We conclude that a workable support strategy needs a long-term model, which allows for a flexible support profile for the different applications in a broad portfolio of Java application systems. This allows each application type in the portfolio to have different requirements and timescales for upgrades, updates, and patches.
Java Upgrade Strategies for Mid-size Enterprises
Figure 5 below focuses on the answers to Question 33 (Q33).
- Q33: “Which statement best describes your attitude about your most important Java-based applications?”
- The choices were:
- I prefer staying with a stable version of JDK for my most important Java SE-based applications and will tend to upgrade to new versions of Java only infrequently,
- I prefer staying with a stable version of Java SE for my most important Java SE-based applications, but will upgrade to new versions of Java SE on a regular cadence to take advantage of new features and functions,
- I try to stay as up to date as I can with Java SE versions and updates so I can take advantage of new features and functions.
In Figure 5, respondents characterized their overall Java application portfolio upgrade strategy for key applications they employ to meet their overall business objectives. The responses indicate a diversity of strategies among mid-size Java users. Still, the most frequent approach is a preference for Java application stability, with an understanding that they will upgrade to new versions on a regular cadence to take advantage of new features and functions. This suggests that application upgrade strategies need to be flexible to meet overall enterprise goals and to enable different solutions for applications and application suites within a portfolio of Java systems.
One interesting difference between the upgrade strategies of G2K and mid-sized enterprises is that the latter is more aggressive in adopting the “up to date Java SE versions and updates to take advantage of new features and functions” strategy (29%) compared with only 12% of very large Java enterprises.
Oracle Java SE Subscription for Mid-sized Enterprises
New Support Offerings
The recent change to a six-month Java release cycle and the “End of Public Updates” (EoPU) for Java 8 have changed the support requirements for users, resulting in new offerings from Java support vendors. Oracle has retired its legacy and higher-cost perpetual licenses and separate support service. In its place, they have launched the Oracle Java SE Subscription, a simpler and relatively lower cost option, which includes the commercial license and support services as an annual subscription.
Oracle has the advantage of being the primary steward of Java and is the largest contributor to the platform. Wikibon observes that other vendors have their versions of a Java SE subscription support available as well.
Some enterprises might prefer to upgrade their Java portfolio on a six-month upgrade cycle. This approach offers enterprises a predictable timeline, provides the opportunity to acquire new features earlier, and enables development teams to be more productive with modern application development capabilities. For some enterprises, the costs of this strategy could look similar over a two to three-year period compared to the costs of the one-time major upgrade cycles of the past.
The Java SE Subscription offers enterprises some important advantages over a six-month upgrade strategy. The subscription offering provides the flexibility to stay on older releases almost as long as required. It can also accommodate a mixed environment, which is likely the reality for most organizations with a significant Java portfolio. The cost of this offering is predictable and mid-sized enterprises are likely to find overall savings.
Whenever there is any change in product or support offerings, every enterprise must consider how to address the opportunities and challenges of deciding how they will adapt to these changes. Alternatives should be evaluated in light of the strategic fit of the available options to their business model, their skill levels, and other factors.
However, for most enterprises, Wikibon believes there is usually a compelling case for adopting the cadence changes and the Java subscription option from Oracle or other vendors. This case includes enterprises that are taking conservative upgrade strategies, as well as enterprises taking aggressive upgrade strategies. In the next section, Wikibon examines the business case for the Oracle Java subscription option in more detail.
Financial Analysis of Java Support Strategy Options
The four-year financial analysis in Figure 6 below represents the likely outcome of an IT business case for an enterprise with revenues of $2.5B, an IT budget of $87M, and a total IT staff of 286. We estimated that about 171 of the IT staff would be supporting a Java portfolio of 272 applications. The source of all the detailed parameters in this model is the 2019 Wikibon survey of senior Java executives, as well as in-depth interviews with 10 Java business managers. Table 1 through Table 4 in the Footnotes below list the detailed data points from the survey, the assumptions, and calculations.
The data comes from Table 4 in the Footnotes below, which is derived from Table 1 through Table 3. The left-hand column in Figure 6 shows the costs of a six-month Java upgrade strategy. This is composed of Updates and Patching ($18 million), less important Java application upgrades ($7 million), and most important Java application upgrades ($16 million). This strategy upgrades all applications to the latest release as soon as it is available, and before support ends six months after release availability. The cost of each upgrade is lower than the previous two-plus year major upgrade strategy and slightly less for updates and patches, but IT must perform more upgrades overall. Wikibon’s analysis calculates the four-year cost of this strategy to be $41M.
The right-hand column in Figure 6 shows lower 4-year costs ($29M) for an “upgrade when needed” strategy supported by the Java SE subscription service. This is composed of Updates and Patching ($20 million), less important Java application upgrades ($1 million), and most important Java application upgrades ($5 million). This approach allows IT to apply upgrades, updates, and patches selectively across their entire portfolio of Java applications. Some applications will need upgrading every six months, others less often, and some others may need upgrades only very rarely.
In addition to this flexibility, our research shows that the Java SE Subscription is likely to be 29% less expensive than a six-month upgrade strategy because of lower labor requirements. Beyond the cost savings of $11.8 million over four years, a high level of support can provide best practice business protection against downtime, customer churn, reputation damage, and other business risks.
It is important to emphasize that some enterprises will focus on reducing business risk as much as possible, and will be happy to spend the additional resources to maintain all or the majority of applications at the latest release level every six months. Even if this level of risk reduction is a priority, IT still benefits from the flexibility and speed to-resolution offered by a Java subscription service as well.
Executive management of all enterprises is focused on eliminating IT work that can be outsourced to cloud providers, either private on-premises clouds or public clouds. Cloud-native applications are built around microservices that are specific to a specific cloud.
Oracle needs to be relevant to all potential users. If the user is in a smallish company and wants to grow and go to the cloud, he will be asked the question, “Will Oracle Java be an issue?” Oracle is quietly building the Java platform as relevant to all users. Wikibon believes Oracle has a vision and the scale to get Java users to the cloud and for Java to perform more efficiently with a lighter footprint and lower cost in the cloud. Wikibon observes that Oracle needs to accelerate its initiatives in these areas, both for its own OCI and other cloud initiatives.
To be successful, Java will need to embrace a volume strategy rather than optimize revenue in the short-term. Java and Oracle will need to be relevant to ISV developers in particular, and tap into the expertise available in this community more effectively.
JDK Enhancement Process
The JDK evolves through a process where JDK Enhancement Proposals (JEPs) are collected, reviewed, and tracked at OpenJDK. In this place, collaboration on an open-source implementation of Java SE primarily occurs.
The primary goal of this process is to produce a regularly-updated list of proposals to serve as the long-term Roadmap for JDK Release Projects and related efforts. The Roadmap should extend at least three years into the future to allow sufficient time for the most complex proposals to be investigated, defined, and implemented.
The last five releases and the expected September 2020 release are all exactly 6-months apart. A summary of the content in the releases is shown below.
- JDK 10
- JDK 10 was released on March 19, 2018.
- JDF 11
- JDK 10 was released on September 17, 2018.
- JDK 12
- JDK 12 was released on March 19, 2019. Among others, Java 12 includes a number of new features, such as Shenandoah (A Low-Pause-Time Garbage Collector (Experimental)).
- JDK 13
- JDK 13 was released on September 17, 2019. Java 13 includes three (3) new features and two (2) preview features (Switch Expressions and Text Blocks).
- JDK 14
- JDK 14 was released on March 17, 2020. Java 14 includes ZGC on macOS and Windows, and a large number of other features.
- JDK 15
- JDK 15 is planned for release on September 15, 2020. Some of the JEPs currently targeted for JDK 15 include ZGC: A Scalable Low-Latency Garbage Collector (Production) and Shenandoah: A Low-Pause Time Garbage Collector (Production).
There are several OpenJDK projects which are specifically dedicated to improving Java performance in private and public cloud environments. These improvements are aimed at lowering the cost and improving the speed of running Java applications. The following are some of the important OpenJDK projects which are part of the 3-year roadmap.
ZGC OpenJDK Project
Many Java applications are designed to serve thousands or even millions of concurrent users. These applications need to allocate huge amounts of DRAM. Managing all that memory can easily impact application performance. Therefore, it is important for Java to reclaim memory dynamically and efficiently.
The objective of the ZGC project is to create a scalable, low latency garbage collector capable of handling large heaps. This is separate from the alternative experimental project Shenandoah, which is a low-pause time garbage collector. The ZGC project has been GA, and the default GC for Oracle Java releases since Java 11. Improvements and innovations continue in subsequent releases, and performance improves towards the goal for ZGC to be a sub-millisecond maximum pause time Garbage Collector, where pause times do not increase with heap, live-set, or root-set size.
Panama OpenJDK Project
The Panama project has the objective of providing higher performance and easier development of I/O intensive applications through the ability to more easily interface with native libraries and applications. These enhancements will allow programmers to access functionality outside of the JDK libraries such as OpenGL. This capability will also enable Java applications to interact with legacy code and systems.
Valhalla OpenJDK Project
Today’s object references often point to data values spread out inefficiently throughout memory. The Project Valhalla enhancements introduce Value Types, which are designed to enable a list or array of values to be laid out linearly in a consecutive block of memory. This should lead to fewer cache misses and improved performance of machine learning and big data applications.
Loom OpenJDK Project
In order for massive scaling of applications, lightweight threads are required to make concurrency simple for programmers. Project Loom proposes user-mode threads that rely on a Java runtime implementation of continuations and schedulers instead of being implemented in the OS. This will make writing asynchronous applications, a popular programming style, much easier for developers.
Amber OpenJDK Project
The aim of the Amber project is to continuously improve developer productivity for Java developers by making code easier to write, read, and maintain. In other words, its goal is to enable cleaner code with less boilerplate.
GraalVM is a low-overhead high-performance runtime written in Java. The functionality focuses on reducing startup times, improving performance, reducing CPU use, and lowering memory consumption. In particular, it allows native GraalVM images to be generated for known environments before execution.
An example of the potential for performance improvement is illustrated by an Oracle benchmark showing that the startup time when running the Micronaut application on the JVM is 1202ms. With a native GraalVM image, the startup time is 18ms, a 60X improvement.
GraalVM has a cost profile similar to Java SE Subscription, and Java SE Subscription is a pre-requisite for GraalVM. GraalVM is included in the cost of Oracle Cloud Infrastructure (OCI). It is also available on-Premises as Oracle Exadata Cloud@Customer and Dedicated Region Cloud@Customer.
Wikibon Conclusions on Java Directions
Wikibon concludes that Java is an important platform used by a high percentage of enterprises. The release data above shows that the faster Java release pace (every six months) has been well established over the last two years. As a result, the time to-availability of new function has been improved. This faster time to availability has also led to further improvements being delivered earlier, as a result of Java community earlier trials and deployment.
Java is also well established in the ISV community. However, there are simpler platforms that are gaining ISV traction, such as Python. Wikibon believes it is important that the Java fundamentals remain relevant to the entire development market, and do not focus just on the current Java strengths in high availability and recovery.
It is also vital that Java continues down the path of becoming a fully autonomous platform that will minimize the IT effort required for patching, updates, and upgrades. Java needs to develop even further and become a platform that can be used by user-department business analysts directly.
Conclusions: Java will Continue as a Leading Application Platform On-premises and in the Cloud over the Next Decade
The first conclusion is that Java is alive and well, and is the platform of choice for mission-critical high-value systems for mid-size enterprises. Wikibon believes that the change to a six-month release cadence is essential for Java to remain competitive and relevant compared to other CI/CD cloud application platforms. The advantages of this approach include establishing a predictable upgrade timeline, as well as earlier access to new features. Oracle Java has a strong development roadmap that is aimed at improving performance and manageability. The open-source nature of the project makes it natural that Java will continue to be available on multiple cloud platforms.
Without these changes, some enterprises will have to seriously consider converting to another development platform. As Wikibon has emphasized many times before, this a very expensive option, with significant business risk. Wikibon believes that the changes in Java support options will make the need for such a conversion unlikely.
The financial analysis illustrated in Figure 6 shows that costs are significantly lower (29%) if an enterprise avoids upgrading every six months and deploys the Oracle Java SE Subscription model. This is a more flexible and lower cost ($12 Million less) way of balancing the upgrade, update, and patching requirements within an application portfolio.
In summary, Java has prospered well for 25 years (as of August 25, 2020). Wikibon believes that Java will continue to be a leading application platform, and will provide good support for the strategic multi-cloud and hybrid-cloud corporate challenges ahead. Java will continue to support enterprise requirements over the next decade, and its continued popularity is likely to ensure good and varied vendor support services.
As a result of our survey, in-depth discussions, and financial analysis, Wikibon recommends that most enterprise IT executives adopt an “upgrade when necessary” strategy for a mixed portfolio of Java applications as the most flexible and optimal approach. Other enterprises may elect to upgrade some parts of their Java application portfolio every six months. Wikibon strongly recommends the Java SE Subscription services from Oracle or other vendors to support either of these strategies.
There are important OpenJDK projects that will enable Java applications to run more efficiently in private on-premises and public cloud environments. Wikibon recommends close monitoring of these projects to ensure they can be incorporated as necessary.
Java Industry Survey Distribution for Mid-sized Java Enterprises
Detailed Calculations and Assumptions used in the Financial Model
The charts and tables below are the source of Figure 1 and the Financial Analysis of the Java Support Strategy Options section and Figure 6 above.