<story><title>Java 12</title><url>https://jdk.java.net/12/</url></story><parent_chain></parent_chain><comment><author>MarkMc</author><text>I&amp;#x27;m so glad I was taught Java at Macquarie University back in 1998.  For the past 20 years I&amp;#x27;ve had a career built on a solid API that doesn&amp;#x27;t change every 2 years like some flavour-of-the-month Javascript framework.&lt;p&gt;Even on the client where Java has lost to Javascript, I&amp;#x27;m finding it more enjoyable to add features to my 15-year-old SWT app [0] rather than dealing with the multiple layers of abstractions that is  Javascript+CSS+DOM (+ maybe Electron).  
Personally I think it&amp;#x27;s a shame Sun dropped the ball with client Java - if they had chosen SWT over Swing and provided a minimal JVM then maybe Java Web Start would have beaten Javascript web apps. It&amp;#x27;s also a shame Sun sold Java to Oracle - Google would have been a better steward, and probably would have been willing to pay more for the Java parts of Sun.&lt;p&gt;I&amp;#x27;m now trying Dart to develop a few Flutter apps.  It&amp;#x27;s no doubt a better language, but not &lt;i&gt;that much&lt;/i&gt; better - I think Flutter would have been more successful if it was built on Java.&lt;p&gt;[0] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.solaraccounts.co.uk&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.solaraccounts.co.uk&lt;/a&gt;</text></comment>
<story><title>Java 12</title><url>https://jdk.java.net/12/</url></story><parent_chain></parent_chain><comment><author>hyperpallium</author><text>Switch expressions prepare the way for pattern matching (&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;openjdk.java.net&amp;#x2F;jeps&amp;#x2F;305&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;openjdk.java.net&amp;#x2F;jeps&amp;#x2F;305&lt;/a&gt;), instead of `instanceof` checks and casts.&lt;p&gt;But (in my naive opinion) double dispatch seems a more elegant and java-ry solution, i.e. polymorphism on argument classes, so different methods are invoked for different object &lt;i&gt;runtime&lt;/i&gt; classes (instead of using the &lt;i&gt;compiletime&lt;/i&gt; type of the variable).&lt;p&gt;The switching could be optimised, as ordinary polymorphism is in the JVM.&lt;p&gt;Sure, you&amp;#x27;d wreck legacy code if you just introduced it, but there&amp;#x27;s surely a backcompatible way to do it that isn&amp;#x27;t too awkward.&lt;p&gt;BONUS: goodbye visitor pattern!</text></comment>