Published Sep 3, 2019

Episode 15: The Future of Enterprise Java

Explore the evolution and future of Enterprise Java with Markus Völter and Eberhard Wolff as they delve into the complexities of EJB, the competitive landscape with modern frameworks like Ruby on Rails, and the innovative programming models shaping next-generation enterprise systems.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Model vs. Infra

    The distinction between Java programming models and the infrastructure they operate on is crucial for enterprise systems. and emphasize that while the infrastructure should be standardized by big vendors, the programming model should be defined by the programmers, often the open-source community 1. This separation allows for flexibility in choosing frameworks like Struts, JSF, or Spring MVC, all of which can run on any Java application server 2.

    Enterprise Java means that you have to use Java application servers as an infrastructure.

    ---

    This approach ensures that enterprises can leverage Java's strengths without being locked into a single programming model.

       

    Standardization

    Standardization within enterprise Java presents both challenges and opportunities. argues that while standardizing the infrastructure is essential, the programming model should remain flexible to allow for innovation and adaptability 3. This flexibility enables developers to choose frameworks that best suit their needs without sacrificing portability across platforms.

    If you standardize the infrastructure in a proper way, then you can still run it on every platform without changing the code.

    ---

    The discussion highlights the importance of balancing standardization with the freedom to innovate, ensuring that enterprise Java remains robust and versatile 4.

       

    Innovative Models

    Emerging programming models are reshaping the Java ecosystem with innovative approaches. Continuations, as discussed by , offer a powerful way to manage application state by allowing programs to pause and resume execution seamlessly 5. This model simplifies the programming process, making it more intuitive and efficient.

    Continuations allow you to write a linear program with the steps of your application.

    ---

    Additionally, Aspect-Oriented Programming (AOP) is gaining traction, with frameworks like AspectJ and Spring AOP providing tools to manage cross-cutting concerns such as transactions and security, enhancing the modularity and maintainability of enterprise applications 6.

Related Episodes