Just hours before Mark Reinhold's latest major blog post on the state of the Java 9 module system, Paul Bakker, a writer and speaker who has researched OSGi and cloud applications for several years, took the stage at JavaZone to give a talk on the exact same topic as Reinhold.
Besides a few minor details, everything he talks about in this presentation is still accurate. Here was key the theme he explained to me about Java 9 modularity:
The most important thing that Java 9 will do is force developers to think about modularity. This is great, because modularity is the concept we're aiming for. The fact that we currently use OSGi is just a tool to achieve that goal. At the same time it's a little scary that we have the first public prototype only three months before the scheduled code freeze of Java 9, while this is such a huge change.
UPDATE 9/17/15, Additional Quote:
The most disruptive thing here is probably that it’s the first thing that certain (unsupported APIs) are no longer reachable without explicit exports and break backwards compatibility. The first versions of 9 will have backwards compatibility flags, though.
So if you'd prefer to have a visual presentation including most of the ideas discussed in Reinhold's recent article, check out the video:
Session Description from Vimeo:
With modularity coming to the core Java platform in Java 9, are all our modularity needs fulfilled, or does it still make sense to use something like OSGi? In this talk you will learn how Jigsaw helps modularity, and in what cases it might fall short.
Java 9 will provide a module-system, called Jigsaw. Besides modularising the JDK itself, Java developers can build more modular applications with Jigsaw. Modularity and Java go back way longer, though. OSGi, the de facto standard for modularity in Java has been around since 2000. Adoption is increasing in recent years.
A modular architecture has many advantages, such as increased decoupling resulting in more flexibility. In that sense, native support for Java modularity is very welcome. The big question now is: does Java 9 provide everything you need to build truly modular applications? Since Java 9 needs to maintain backwards compatibility, some compromises need to be made while enforcing module boundaries.
This talk discusses what you really need to build modular applications. We'll investigate which requirements are met (or not) by both module systems. You'll see that both Jigsaw and OSGi provided pieces of the modularity puzzle. Also, you'll learn whether having an additional modular runtime such as OSGi on top of Java 9 still makes sense.
Paul is a software architect for Luminis Technologies and the author of "Building Modular Cloud Apps With OSGi" published by O'Reilly. He believes that modularity and the cloud are two of the main challenges we have to deal with to bring technology to the next level, and is working on making this possible for mainstream software development. Paul is an active contributor on open source projects such as Amdatu, Apache ACE and BndTools. He has a background as a trainer on Java related technology and is a regular speaker on conferences.