Follow the money: The financial background of Open Source in the Java ecosystem - JVM Weekly vol. 88
Today's edition is thematic, focusing on one specific topic: money. We'll explore where the funds come from for all the cool things I describe each week.
1. The Future of the Vavr Project: From an Expired Domain to the Search for a New Maintainer
We'll start the story with an one expired domain.
At the beginning of December 2023, the Vavr.io website stopped working, which sparked a discussion about the future of the Vavr project and its maintenance. The project leader, Daniel Dietrich, confirmed the issue with the site (German law imposed many regulatory requirements on him as an author) and took the opportunity to express his desire to step back from the project, emphasizing the need to find a new owner and more active contributors. Despite the "on paper" large group of contributors, Daniel pointed out the discrepancy between the number of contributors and the responsibilities they were willing to take on - the project largely relied on his involvement in strategic decision-making, maintaining code quality, and overall management. The discussion initiated in December revealed that while the community values the project, transitioning to new leadership is necessary to ensure its sustainability and continued development.
But what is Vavr in general? Formerly known as javaslang (the name change is a topic for another story), it is a library designed to enable Java developers to use functional programming paradigms. Vavr introduces immutable collections and structures such as Option
, Try
, Either
, and Lazy
, which help manage errors, exceptions, or nullable fields, as well as various functional utilities. This makes Vavr a tool for developers who argue that the standard JDK API is not functional enough.
Because, in truth, sometimes it's not:
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> userIds = Arrays.asList(1, -1, 0);
userIds.stream().forEach(userId -> {
try {
String userData = getUserData(userId);
try {
String result = processUserData(userData);
System.out.println(result);
} catch (Exception e) {
System.out.println("Error processing user data");
}
} catch (Exception e) {
System.out.println("Error fetching user data");
}
});
}
public static String getUserData(int userId) throws Exception {
if (userId <= 0) {
throw new Exception("Invalid user ID " + userId);
}
return "John Doe";
}
public static String processUserData(String userData) throws Exception {
if (userData.isEmpty()) {
throw new Exception("User data is empty");
}
return "User name is " + userData;
}
}
vs
import io.vavr.control.Either;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> userIds = Arrays.asList(1, -1, 0);
userIds.stream()
.map(Main::getUserData)
.map(userDataResult -> userDataResult.flatMap(Main::processUserData))
.forEach(result -> {
result.peek(System.out::println)
.peekLeft(System.out::println);
});
}
public static Either<String, String> getUserData(int userId) {
if (userId <= 0) {
return Either.left("Error fetching user data");
}
return Either.right("John Doe");
}
public static Either<String, String> processUserData(String userData) {
if (userData.isEmpty()) {
return Either.left("Error processing user data");
}
return Either.right("User name is " + userData);
}
}
Someone might say the examples are biased - but you get the point 😉.
However, the domain issue was not the end of the story. At the end of May, Daniel Dietrich announced his decision to cease active involvement in the project and its development - including maintaining the website and documentation - describing the latest version Vavr 0.10.4 as 'complete' in terms of functionality. Despite earlier considerations about transferring the project to the Eclipse Foundation, Daniel decided to retain full ownership and freeze the project, suggesting that interested parties should fork the Vavr code (available under the Apache 2.0 license) and develop it independently. This decision stems from the need for a fresh start for Vavr. Daniel believes the project requires a new custodian passionate about functional programming who will dedicate time and energy to develop and effectively communicate a new direction and increase community engagement.
Of course, the decision was met with the usual loud opposition from the community, unhappy with the creator's decision. Cause you know…
Therefore, as a twist, Daniel in a follow-up post decided to offer the possibility of sponsored work on the project. This new option allows interested companies to simply hire him to work on feature development, bug fixing, or documentation updates, as well as consulting services related to Vavr.
The whole situation fits perfectly into the current picture of open source, where individual creators do a lot of work but struggle to find willing sponsors for their efforts. In an era of investment cuts and cost reductions, even the largest companies cut spending on solutions that do not bring immediate profits. For many managers, open-source solutions may seem like "fat" that can be trimmed. Although projects like Vavr are valued by the community, the lack of stable funding and support can lead to their freezing or complete abandonment. The case of Vavr is thus an excellent example of the challenges facing open-source software creators, trying to balance passion with financial reality.
Generally, in Java, most projects have historically been funded in two ways - either supported by various foundations or commercial companies. Often the reason is not just money. Sometimes the desire to become a market standard remains equally important. And that's probably the case with Quarkus, which you'll read about in the next section...
2. Quarkus is looking for a new home, and that home is to be a foundation
Since its release in March 2019, Quarkus has been developed under the aegis of Red Hat, creating an ecosystem of over 700 extensions around it. Therefore, noticing the impact and broad acceptance in the community, the Quarkus team, led by Max Rydahl Andersen, proposes transferring the project to a foundation. This move aims to increase the pace of adoption, improve transparency, and decouple the project from a single corporation, enabling broader collaboration and participation from various vendors.
In the post Quarkus in a Foundation, Andersen details the vision of a two-step process that will begin with more open management - improving transparency and communication within the project. This includes giving the community greater visibility of decision-making processes and more opportunities to engage in project management. The next step will be officially transferring Quarkus to an external foundation, with continued support from Red Hat. The criteria for choosing a new home for the project include maintaining the fast delivery pace, visibility, technological independence, and licensing flexibility. This strategic move aims to secure Quarkus's position as the de facto standard for cloud-native Java applications.
People sometimes underestimate how strong the Apache or Eclipse brand is in large enterprises and how much these enterprises fear dependency on a single vendor when such a foundation is absent. This will facilitate many conversations, especially since, while I value Red Hat, they have made a few controversial moves in their history.
In my opinion, this is great news because the whole thing sounds similar to the recent situation with EclipseStore and MicroStream. MicroStream is still doing much of the work, but being part of Eclipse, they are betting that they will become the standard in the future - which would not be possible if they were still developed under the MicroStream brand. Let's just hope it's not a classic case of "death by open-sourcing" and that everything will be fine.
Computer sentences Quarkus to death... by snu snu.
I just want to see a future where Quarkus becomes a player equal to Spring. And speaking of Spring, let's move on to the next section...
3. Spring I/O 2024, State of Spring, and the Broader Implications of VMware's Acquisition by Broadcom
The annual Spring I/O conference, the most important event dedicated to Spring, recently took place. You can find its keynote here:
I won't list the topics covered here, as the
newsletter provides a list of the most popular talks along with their Vox Populi. Generally, I always recommend subscribing to them, let's leave these things to the specialists.However, the results of the State of Spring Survey were also recently released. Let's take a quick look at what the report contains.
12% of respondents are already integrating Generative AI into Spring applications, despite the early version of projects like Spring AI. This indicates growing interest and adoption of AI in the Spring environment and probably the entire ecosystem. No wonder I increasingly come across the term RAG Ops.
One of the main challenges is keeping software up to date; 41% of respondents still use Spring Boot 2.7, despite newer versions being available. 65% of respondents perform updates manually, showing the need for better automation tools - maybe we can harness AI for this.
GraalVM and Project Leyden are seen as technologies with great potential, but their adoption is limited due to technical challenges such as compatibility issues (51%) and long compilation times (22%).
Kubernetes is used in 65% of Spring environments, with 52% running their own Kubernetes distribution, and 33% using Kubernetes-based platforms like OpenShift.
Overall, nothing groundbreaking, but a glance at the broader ecosystem is always appreciated. The only thing to watch out for is that less than 1.5 thousand participants took part in the survey, probably more "invested" ones, but that's a problem with all data.
Let's fit this into our main topic. It won't surprise anyone that large open-source projects nowadays usually have corporate sponsors, and many people developing them do so as part of their corporate jobs. Pivotal Software, behind Spring and specializing in cloud platform development and developer tools, was originally founded as an independent company by EMC Corporation, which also held a majority stake in VMware, a leader in virtualization and cloud infrastructure. In 2012, VMware and EMC jointly invested in Pivotal, and in 2013, Pivotal was officially spun off as a separate company. In 2019, VMware acquired Pivotal, further deepening their relationship and strengthening VMware's position in application development and cloud services, leveraging Pivotal's expertise in areas like Cloud Foundry.
But the story doesn't end there. Broadcom, known mainly for semiconductor manufacturing, decided to expand its software market presence as part of a broader diversification strategy. The choice fell on VMware, recognized as a leader in virtualization and cloud infrastructure, making it an attractive direction for Broadcom's growth. The acquisition began in May 2022, being one of the largest transactions of its kind, valued at $69 billion, and was completed on November 22. Shortly after the transaction, a series of layoffs occurred at the company.
After Broadcom's acquisition of VMware at the beginning of 2024, significant changes in the licensing model followed. Broadcom discontinued perpetual licenses in favor of subscriptions, aiming to simplify the product offering and ensure predictable spending models for customers. Customers with active license agreements can use their current licenses until the end of the contract period, after which they will have to switch to the subscription model. Additionally, licensing was changed from processor-based to core-based, potentially increasing costs for customers with smaller CPU configurations. Broadcom also introduced significant changes in VMware's partner and reseller network, reducing their number and taking over direct support for large strategic accounts, which may affect customer relations and costs.
The technology community responded in various ways, mainly with concerns and dissatisfaction - the change sparked numerous controversies, especially among customers who preferred one-time license fees. They fear increased costs, confirmed by reports of license price hikes up to 1200% - however, this number appears to be reposted without any source, so please treat it as a an example of False Precision fallacy. This led to a search for alternatives to VMware, such as Proxmox or Microsoft Azure. Additionally, changes in VMware's partner and reseller structure by Broadcom caused anxiety among smaller partners, who may lose the ability to sell VMware products.
What conclusions can be drawn about Spring? For now, absolutely none, but the VMware story is loud enough that it's worth letting it seep more broadly into our JVM circles.
However, despite all its significance, Broadcom and Spring must give way to an even bigger giant. So I left the cherry on the corporate cake for last: Oracle.
4. Oracle in Action: Audits, AI, and Cloud Partnerships
When I saw Java land on the top of technology Reddits again, I knew what was brewing...
According to theregister.com, Oracle has sent audit letters regarding Java to Fortune 200 companies for the first time. These changes stem from the new licensing structure introduced in January 2023, called Java SE Universal Subscription. The new model offers a unified, low-cost monthly subscription covering Java SE licensing and support across various platforms but requires licensing the software per employee, making it significantly more expensive – estimated by Gartner to be two to five times more costly than the previous model. Oracle, previously focusing audits on smaller companies, is now also scrutinizing larger corporations. Craig Guarente of Palisade Compliance revealed that audits include long-term Java subscribers and companies that previously did not pay for Java. These changes sparked discussions about licensing costs, with forecasts that most Java applications may shift to third-party runtimes by 2026 due to rising costs.
This is yet another example of Oracle licensing issues making headlines, though this time it seems particularly curious. You see, it's not that Fortune 200 companies don't know what licensing models their software has and that they try to hide something from Oracle. If there are audit issues, it's more likely due to general chaos rather than no one expecting Oracle. These companies are, after all, Oracle's main customers, paying for databases, HR systems, and other services. While I can imagine such a letter scaring a startup and becoming a media event, here I really don't know why it gets so many clicks, aside from the standard "Oracle bad" narrative.
But I think no one at Oracle was worried because the company has recently achieved some interesting successes. The company announced a collaboration with OpenAI and Microsoft, providing the extension of the Microsoft Azure AI platform on Oracle Cloud Infrastructure (OCI) and increasing OpenAI's operational capabilities - OCI will offer OpenAI up to 64,000 NVIDIA Blackwell GPU processors or GB200 Grace Blackwell superchips. Larry Ellison emphasized that this collaboration will meet the growing demand for powerful AI infrastructure, positioning OCI as the leading choice for AI development.
Additionally, Oracle and Google Cloud announced a partnership, allowing customers to combine Oracle Cloud Infrastructure (OCI) technology with Google Cloud. Oracle Interconnect for Google Cloud will be introduced in 11 markets, enabling the deployment of applications without additional data transfer fees between clouds. Moreover, later this year, a new Oracle Database@Google Cloud service will be introduced, streamlining the operation of Oracle databases on GCP, providing capabilities similar to those offered by OCI. Interestingly, Sundar Pichai, CEO of Google and Alphabet, emphasized that the partnership will help joint customers leverage Oracle databases and applications in combination with... Google Cloud's AI capabilities. I don't know if I'll eat my words later, but Oracle looks like a dark horse in the cloud computing battle, and I suspect we'll see more of them in the enterprise space. They have built many relationships there over the years and seem to be a very "neutral" partner with whom it's easy for everyone to form strategic alliances.
Of course, it's not like everything Oracle touches turns to gold. For example, Oracle Advertising, once worth $2 billion, is being shut down due to a revenue decline to $300 million in fiscal year 2024. This decision reflects Oracle's strategic withdrawal from the advertising business in the face of stricter privacy norms and declining profits from user data, which seems to be a broader trend across the industry. At the same time, in light of the above announcements, the stock market is reacting very positively to Oracle's actions.
Why am I writing about this? Because if you follow how the JEPs are coming out, you'll see that most of the people working on them are Oracle employees. So while Java won't die without this company (too much investment worldwide), the entire ecosystem would certainly face an uphill battle.
And that's all for this week, Tarnished Ones. I have some plans fot the weekend.
BTW: I received a Father's Day gift from my wife and daughter, which we celebrate in Poland this Sunday. They are going to visit wife’s cousin in the morning and will be back in the evening, and I will be able to stay at home alone 🎮