<story><title>Using Java 9 Modularization to Ship Zero-Dependency Apps</title><url>https://steveperkins.com/using-java-9-modularization-to-ship-zero-dependency-native-apps/</url></story><parent_chain><item><author>freedomben</author><text>This is definitely an improvement for Java, but it leaves me with a few thoughts as someone who has done Java professionally at times, but also professionally lived in other ecosystems including C++&amp;#x2F;Qt, Python, Ruby, Golang, and of course node&amp;#x2F;JS.&lt;p&gt;1.  Setting up a project is still a pain in the butt.  Tools like Gradle are a nice improvement over Ant (and some would say maven), but still most people don&amp;#x27;t even understand them.  You have some serious reading ahead of you if you want to set something up that isn&amp;#x27;t already templated somewhere for you.  You can lean on an IDE for sure, and for most Java devs this is probably a no-brainer.  I&amp;#x27;m weird in that I don&amp;#x27;t like magic.  I prefer to know what the tool is doing on my behalf, and the Java IDE world is so complex that it isn&amp;#x27;t practical to learn that unless you&amp;#x27;re in the ecosystem for years.  Then dealing with weird exceptions from the JVM can be maddening.&lt;p&gt;2.  The Java world moves slowly.  It could reasonably be years before many shops transition to Java 9, when you would actually realize the benefits of this in your work life.&lt;p&gt;3.  So much Java runs on the server side anyway, where executable size and entrypoint doesn&amp;#x27;t really matter that much.  Because of this, it may only be a small subset of Java shops that really get into Java 9&amp;#x2F;Jigsaw and iron out the bugs, and create tools&amp;#x2F;tutorials for others.</text></item></parent_chain><comment><author>fnl</author><text>None of these points are valid:&lt;p&gt;1. Dependency management is probably &lt;i&gt;a lot&lt;/i&gt; easier with Maven than with C++ or Python. Hope that needs no reference...&lt;p&gt;2. No idea why, but Java is backwards compatible. So not updating to the latest version is only laziness.&lt;p&gt;3. Having much smaller containers or virtual machine disk sizes should lower your AWS&amp;#x2F;Google&amp;#x2F;Cloud... bill a (little, but whatever) bit and therefore make your CFO happy...</text></comment>
<story><title>Using Java 9 Modularization to Ship Zero-Dependency Apps</title><url>https://steveperkins.com/using-java-9-modularization-to-ship-zero-dependency-native-apps/</url></story><parent_chain><item><author>freedomben</author><text>This is definitely an improvement for Java, but it leaves me with a few thoughts as someone who has done Java professionally at times, but also professionally lived in other ecosystems including C++&amp;#x2F;Qt, Python, Ruby, Golang, and of course node&amp;#x2F;JS.&lt;p&gt;1.  Setting up a project is still a pain in the butt.  Tools like Gradle are a nice improvement over Ant (and some would say maven), but still most people don&amp;#x27;t even understand them.  You have some serious reading ahead of you if you want to set something up that isn&amp;#x27;t already templated somewhere for you.  You can lean on an IDE for sure, and for most Java devs this is probably a no-brainer.  I&amp;#x27;m weird in that I don&amp;#x27;t like magic.  I prefer to know what the tool is doing on my behalf, and the Java IDE world is so complex that it isn&amp;#x27;t practical to learn that unless you&amp;#x27;re in the ecosystem for years.  Then dealing with weird exceptions from the JVM can be maddening.&lt;p&gt;2.  The Java world moves slowly.  It could reasonably be years before many shops transition to Java 9, when you would actually realize the benefits of this in your work life.&lt;p&gt;3.  So much Java runs on the server side anyway, where executable size and entrypoint doesn&amp;#x27;t really matter that much.  Because of this, it may only be a small subset of Java shops that really get into Java 9&amp;#x2F;Jigsaw and iron out the bugs, and create tools&amp;#x2F;tutorials for others.</text></item></parent_chain><comment><author>tootie</author><text>Maven is complicated but also very stable and powerful. It&amp;#x27;s no less arcane than webpack and if you&amp;#x27;re using any decent IDE all the available options will autocomplete. Fat jar deploys were always super simple and having a self-contained executable is even better.</text></comment>