Seems like Java9 forces more and more useless boilerplate needed for Jigsaw. Not sure I would call it a progress.
(full disclosure: I'm author of Java 9 Modularity, O'Reilly, see https://javamodularity.com)
- OSGi: offers run-time modularization (based on classloaders), with a more dynamic model (bundles can start/stop/load/unload). Often derided for its complexity, which Jigsaw has tried to reduce (in part by offering a less dynamic model)
- Forced modularization: fortunately, Java 9 has many migration features to allow incremental modularization. Most notable are automatic modules, which allow you to treat non-modularized JARs as modules, and interoperation between automatic modules and the classpath
Hope this helps.