#CloudMinds: The Future of Java in the Enterprise

Kevin J. Allen
4 min readOct 2, 2017

--

A new group of #CloudMinds — all experts in Java — convened in San Francisco Sunday for a huddle discussion around the future of Java for the enterprise.

Our newest #CloudMinds gathered in San Francisco at JavaOne for a huddle around the future of Java in the enterprise.

On Sept. 12, Oracle announced that it would move Java EE to the Eclipse Foundation. It marked a fundamental shift for the technology that brought to mind questions around its future and the direction it will take to remain a vital tool for so many developers.

Sunday’s #CloudMinds huddle discussion aimed to answer some of these fundamental questions about the shift to open governance, plus some of the trends and technologies outside of Java that are catching developers’ attention. Specifically, the group discussed:

  • What problem Java EE is trying to solve
  • Where the community can and should take Java EE
  • Why some developers are moving away from Java EE or not considering it at all
  • What will drive fundamental changes in the Java ecosystem
  • How Java will continue to evolve as a language
  • Changes needed to cloud technology itself and underlying runtimes to support Java’s evolution and give users the best possible Java experience

With all of our huddle summaries, we tend to break them out by insights (in bold) and lingering questions. Over the next several weeks, we’ll attempt to answer some of these questions through content featuring our newest group of #CloudMinds.

There are at least two schools of thought around Java EE’s relevance as a programming model. Some believe customers are moving past it, choosing instead containerized and serverless programming models. Some recognize that Java EE is still the programming model of choice for many businesses who rely on it, therefore it shouldn’t be dismissed or overlooked. Still others suggest that serverless are birds of a feather, so to speak — accomplishing similar outcomes through similar means — and that Java EE can evolve to accommodate these new models.

Is the Java EE programing model going to move forward or will it evolve to meet new developer demands? And if so, how will it evolve (i.e. event-driven)?

Is Java EE more suited for heavier weight workloads? If so, does this mean Java EE is poorly suited (and therefore a microservices model better suited) to handle “lighter” workloads? Is Java EE itself another form of microservices?

Is Java EE prepared for new generation of applications? If it’s not, what needs to happen to get it to that point?

For Java EE to survive, it needs to play well with the new types of application models. In order for this to happen, Java EE needs to evolve quickly (but not too quickly) in a way that engineering teams can understand the evolution and seamlessly integrate into these new models.

How can businesses who bought into Java and hired tons of Java engineers and need to get value out of their Java investment push to play well with newer, more modern application models?

How relevant do we think the industry feels standards are today? Does the industry still think standards are important? What role should standards continue to play in the Java EE space?

A significant portion of the developer world is still creating applications in a way that Java EE is helping.

Is the Java EE community and user base growing? Is it growing at the rate that newer application models are growing?

What can Java EE do to become (or remain) relevant to those developers who are moving past it?

As excitement continues to build around Spring Boot, will Java EE be completely left behind?

When new projects are being built, many developers aren’t seeing Java EE as top of mind.

If this trend continues, where does that leave it in 5–10 years?

Where can Java EE cut its losses and focus its energy on improvements that will make it relevant for the next 20 years?

The Java SE/EE/ME split is unnecessary. They should be treated as one platform, one language with one goal: To make Java the most successful language for cloud-native developers.

What should enterprise Java platforms (and anyone writing Java platforms) be asking from VM implementers, language designers, etc.? What could you be asking that’s going to make a fundamental difference in delivering enterprise?

Can viewing our industry as more of a fashion industry help us understand shifts and evolutions in our programming models and where they’re heading in the future?

One of Java EE’s greatest values is in its APIs. Developers are seeking to use the current APIs but implement them differently. There’s also great need for new APIs.

What’s the best way to make the old stuff faster and keep making new stuff at the same time?

Opportunities exist in cross-stack collaboration and delivering incremental improvements — to show the industry that Java EE can introduce relevant improvements that address modern developers’ needs.

How can the Java EE community encourage and grow cross-stack collaboration?

An underlying issue: the IP model around Java EE has discouraged contribution in the past, which has held back the technology. Those barriers are being removed and change is coming.

We encourage you to share your thoughts about the insights we shared here, and please answer any of the questions that came out of the huddle. Weigh in here on Medium or let us know what you think on Twitter using the #CloudMinds hashtag.

--

--

Kevin J. Allen

Dad, husband, improviser, writer, videographer, editor, content creator.