Skip to main content
Redhat Developers  Logo
  • Products

    Featured

    • Red Hat Enterprise Linux
      Red Hat Enterprise Linux Icon
    • Red Hat OpenShift AI
      Red Hat OpenShift AI
    • Red Hat Enterprise Linux AI
      Linux icon inside of a brain
    • Image mode for Red Hat Enterprise Linux
      RHEL image mode
    • Red Hat OpenShift
      Openshift icon
    • Red Hat Ansible Automation Platform
      Ansible icon
    • Red Hat Developer Hub
      Developer Hub
    • View All Red Hat Products
    • Linux

      • Red Hat Enterprise Linux
      • Image mode for Red Hat Enterprise Linux
      • Red Hat Universal Base Images (UBI)
    • Java runtimes & frameworks

      • JBoss Enterprise Application Platform
      • Red Hat build of OpenJDK
    • Kubernetes

      • Red Hat OpenShift
      • Microsoft Azure Red Hat OpenShift
      • Red Hat OpenShift Virtualization
      • Red Hat OpenShift Lightspeed
    • Integration & App Connectivity

      • Red Hat Build of Apache Camel
      • Red Hat Service Interconnect
      • Red Hat Connectivity Link
    • AI/ML

      • Red Hat OpenShift AI
      • Red Hat Enterprise Linux AI
    • Automation

      • Red Hat Ansible Automation Platform
      • Red Hat Ansible Lightspeed
    • Developer tools

      • Red Hat Trusted Software Supply Chain
      • Podman Desktop
      • Red Hat OpenShift Dev Spaces
    • Developer Sandbox

      Developer Sandbox
      Try Red Hat products and technologies without setup or configuration fees for 30 days with this shared Openshift and Kubernetes cluster.
    • Try at no cost
  • Technologies

    Featured

    • AI/ML
      AI/ML Icon
    • Linux
      Linux Icon
    • Kubernetes
      Cloud icon
    • Automation
      Automation Icon showing arrows moving in a circle around a gear
    • View All Technologies
    • Programming Languages & Frameworks

      • Java
      • Python
      • JavaScript
    • System Design & Architecture

      • Red Hat architecture and design patterns
      • Microservices
      • Event-Driven Architecture
      • Databases
    • Developer Productivity

      • Developer productivity
      • Developer Tools
      • GitOps
    • Secure Development & Architectures

      • Security
      • Secure coding
    • Platform Engineering

      • DevOps
      • DevSecOps
      • Ansible automation for applications and services
    • Automated Data Processing

      • AI/ML
      • Data Science
      • Apache Kafka on Kubernetes
      • View All Technologies
    • Start exploring in the Developer Sandbox for free

      sandbox graphic
      Try Red Hat's products and technologies without setup or configuration.
    • Try at no cost
  • Learn

    Featured

    • Kubernetes & Cloud Native
      Openshift icon
    • Linux
      Rhel icon
    • Automation
      Ansible cloud icon
    • Java
      Java icon
    • AI/ML
      AI/ML Icon
    • View All Learning Resources

    E-Books

    • GitOps Cookbook
    • Podman in Action
    • Kubernetes Operators
    • The Path to GitOps
    • View All E-books

    Cheat Sheets

    • Linux Commands
    • Bash Commands
    • Git
    • systemd Commands
    • View All Cheat Sheets

    Documentation

    • API Catalog
    • Product Documentation
    • Legacy Documentation
    • Red Hat Learning

      Learning image
      Boost your technical skills to expert-level with the help of interactive lessons offered by various Red Hat Learning programs.
    • Explore Red Hat Learning
  • Developer Sandbox

    Developer Sandbox

    • Access Red Hat’s products and technologies without setup or configuration, and start developing quicker than ever before with our new, no-cost sandbox environments.
    • Explore Developer Sandbox

    Featured Developer Sandbox activities

    • Get started with your Developer Sandbox
    • OpenShift virtualization and application modernization using the Developer Sandbox
    • Explore all Developer Sandbox activities

    Ready to start developing apps?

    • Try at no cost
  • Blog
  • Events
  • Videos

Why Java is so hot right now

September 5, 2019
Rhuan Rocha
Related topics:
Java
Related products:
Red Hat build of OpenJDKRed Hat build of QuarkusRed Hat JBoss Enterprise Application Platform

Share:

    The Java platform has become one of the most widely used platforms, with a huge ecosystem in the world of technology. Java lets developers create applications for several platforms, such as Windows, Linux, embedded systems, and mobile.

    Java also has received criticisms, such as: Java is fat; Java takes a lot of memory; Java is verbose. But, Java was created to solve big problems, not small problems. Of course, you can also solve small problems with Java, but you see the real benefit of Java when you have a big problem, especially when creating solutions for enterprise environments. In this article, we'll take a closer look at the current Java ecosystem.

    Java is great for enterprise environments because of its power to solve complex problems and its multi-platform characteristics, but also because it promotes more security to business promoting backward compatibility and offers solutions based on specifications.

    Java has a big ecosystem, with emphasis on Java EE (now Jakarta EE) that promotes several specifications to solve common problems in the enterprise environment. Some of these specifications are: EJB, JPA, JMS, JAX-RS, JAX-WS, and others. Furthermore, we have the Spring ecosystem, although it is not based on specifications but uses some specifications from Java EE.

    Cloud computing and microservices

    The cloud computing concept has changed how developers architect, write, and think about applications. Cloud computing is a set of principles and approaches that aims to provide computing resources as a service (PaaS, IaaS, SaaS).  With this, we use only those resources that are necessary to run applications and scale when needed. This way, we can optimize computing resources and consequently optimize costs to business. It is fantastic, but to benefit from cloud computing, applications should be developed according to this approach. With this, the microservices architecture came about as a good approach to architect applications for cloud computing (cloud-native applications).

    Microservices architecture breaks a big application (monolith) into many micro-applications or microservices, generally in the business domain. With this, we can scale only the business domains we really need without scaling all of them, thereby gaining fault tolerance as well as resilience. Additionally, microservices architecture lets us explore cloud computing benefits and optimize computing resources.

    Java and cloud computing

    In a cloud-native application approach, the complexity is not in the applications but in the communication between these applications, as well as management and monitoring. In other words, the complexity is about how these applications (microservices) interact with each other and how quickly we can identify problems. With this, the Java platform and its ecosystem have many gaps to solve, which will be discussed below:

    • Fat JVM: Many Java applications start with libraries that are not used, and the JVM will load things that the application doesn't need. This is okay when you have a big application that solves complex problems, but is not so good for small applications (like microservices).
    • JVM JIT optimization: The JVM has JIT optimization that optimizes applications running a long time. In other words, the longer the application life cycle, the more optimization is done. That means it's better to run an application for a long time than for a short time. In cloud computing, however, applications are born and die all the time and their life cycle is shorter.
    • Longer boot time: Many Java applications have a long boot time compared to applications written in another language because these applications commonly solve other things at boot time.
    • Fat packages (war, ear, jar): Many Java apps have a large package size, mainly when they have libraries inside them (in lib folder). This can increase the delivery time, degrading the delivery process.
    • Java EE has no pattern solutions to microservices: The Java EE has many important specifications to solve enterprise problems, but it has no specs to solve problems that came from microservice architecture and cloud computing.
    • Java and Java EE updates are slow: Java and Java EE have slow processes for updating features and creating new features. This is bad because the enterprise environment is in continuous change with new challenges all the time.

    With this, the Java ecosystem had several changes and initiatives to solve each gap created by cloud computing and put Java on top again.

    Java initiatives

    The Java platform is a robust platform that promotes many solutions, but to me, the best part of the Java world is the community, which is very strong and hard-working. The Java community has promoted many actions and initiatives that have boosted the Java platform and promoted solutions to bring Java closer to a cloud-native application approach, which many people refer to as cloud-native Java.

    The main actions and initiatives done in the Java ecosystem include: Jakarta EE, Microprofile, new Java release cycle, Java language improvements, JVM improvements, and Quarkus. I'll explain how these initiatives have impacted the Java ecosystem.

    • Jakarta EE: Java EE was one of the most import projects at Java ecosystem. Java EE promoted many pattern solutions to enterprise problems, but this project was migrated from Oracle to Eclipse Foundation and had many changes in the work's structure. The project is now called Jakarta EE; it's an umbrella project that promotes pattern solutions (specifications) for the enterprise world and has a new process to approve new features and evolve existing features. Thus, Jakarta EE can evolve quickly and improve more enterprise solutions.
    • MicroProfile: As mentioned above, Jakarta EE has many good solutions for the enterprise world, but it does not have pattern solutions to many problems in a microservices architecture. MicroProfile is an umbrella project that promotes many pattern solutions (specifications) for microservices architecture problems. This project has compatibility with Java EE and lets developers more easily create applications using microservices architecture. Some of these specifications are: MicroProfile Config, MicroProfile OpenTracing, MicroProfile RestClient, Microprofile Fault Tolerance, etc.
    • Java release cycle: The Java release cycle changed, and now Java releases occur every six months. It's an excellent change, because it permits the Java platform to respond quickly to new challenges and promotes a faster evolution of the Java platform.
    • Improvements in Java language: The Java language has seen several improvements, such as the functional feature, as well as the Jigsaw project, which introduced modularity. With this, we can create thinner Java applications that can easily be scaled.
    • Improvements in JVM: The JVM had some issues when used in containers, mainly about measurements of memory and CPU. This was bad because the container is very important to cloud computing. With containers, you don't deliver just the application, but the entire environment with all its dependencies. Since Java 9, the JVM has seen many updates that made communication with containers better. With this, the JVM is closer to cloud computing necessities.
    • Quarkus: Quarkus is the latest news in the Java ecosystem and has been at the top of the talks. Quarkus is a project tailored to GraalVM and OpenJDK HotSpot that promotes a Kubernetes Java application stack that lets developers write applications using the best of breed Java libraries and standards. With Quarkus, we can write applications with faster boot time, incredibly low RSS memory, and an amazing set of tools. Quarkus is really an amazing project that defines a new future for the Java platform. This project works with a container-first concept and uses the technique of compile-time boot to boost Java applications.

    Conclusion

    All of these projects and initiatives in the Java ecosystem bring Java back into focus and start the new era for the Java platform. With this, Java enters the world of cloud computing, offering ways of working with specifications and promoting standardized solutions to cloud computing. These initiatives are amazing both for Java and for cloud computing, because from these standardized solutions will emerge new enterprise solutions that will have the support of many companies, thereby making adoption of these solutions even safer.

    Last updated: February 11, 2024

    Recent Posts

    • Integrate vLLM inference on macOS/iOS with Llama Stack APIs

    • Optimize model serving at the edge with RawDeployment mode

    • Introducing Red Hat build of Cryostat 4.0

    • How we improved AI inference on macOS Podman containers

    • How OpenShift Virtualization supports VM live migration

    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Products

    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform

    Build

    • Developer Sandbox
    • Developer Tools
    • Interactive Tutorials
    • API Catalog

    Quicklinks

    • Learning Resources
    • E-books
    • Cheat Sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site Status Dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Report a website issue