Java 7 is now available
There is a good amount of <i>stuff</i> to get excited about in this release.<p><pre><code>  - Try-with-resources-Catch-Block [0]
  - Fork/Join libraries from Doug Lea (author of Executor framework) [1]
  - Inferred/Simpler generics in declarations (should have been in Java 5)
  - NIO2, brand new/robust filesystem APIs [2]
  - NIO2, treat ZIP/JAR files like directories of files for R/W [3]
  - SDP support [4]
  - String-in-switch (NOTE: check on performance implications of this for tight loops)
    NOTE: Read through "COMPILATION" section here for details [6]
  - Elliptic curve cryptography (when normal curves just don't cut it)
  - Underscores in numbers (e.g. int million = 1_000_000;)
  - XRender pipeline on Linux (Swing/Java2D rendering get a big boost)
  - New sound synthesizer (replaces a proprietary lib that wasn't OS)
  - XML stack finally got updated across the board.
  - InvokeDynamic (already talked about numerous times below)
  - Other Swing stuff I'm not all that pumped about.
</code></pre>
I think the most exciting items are:<p><pre><code>  1. Try-with-resources
  2. NIO2 filesystem API
  3. InvokeDynamic
</code></pre>
Features that got pushed to 8 (next year) that will be really exciting:<p><pre><code>  - Modular programming (super packages? think OSGi-lite)
  - Syntactic Sugar: Collection literals
    List<String> people = {"Frank", "Mary", "Satan"};
  - Closures
  - Modularization of the JDK (JDK gets broken into core modules)
</code></pre>
And one that I can't get confirmation on if it's in 7 or got pushed, index-access for List and Maps [5]:<p><pre><code>  - List<String> people = {"Frank", "Mary", "Satan"};
    System.out.println("Hello " + people[0]);
</code></pre>
I understand that a lot of people don't find Java sexy any more, that is understandable, it has become a platform for what seems like a lot of next-series of languages.<p>That being said, I've been working with Java since 1998 and still love it. I know people get a big kick out of writing code with no exception handlers and no curly braces, and programming <i>is</i> a creative/artistic process so you have to do what feels good... but none of that stuff ever bothered me.<p>I like being a pedantic programmer.<p>[0] <a href="http://www.javacodegeeks.com/2011/07/java-7-try-with-resources-explained.html" rel="nofollow">http://www.javacodegeeks.com/2011/07/java-7-try-with-resourc...</a><p>[1] <a href="http://artisans-serverintellect-com.si-eioswww6.com/default.asp?W9" rel="nofollow">http://artisans-serverintellect-com.si-eioswww6.com/default....</a><p>[2] <a href="http://openjdk.java.net/projects/jdk7/features/#f250" rel="nofollow">http://openjdk.java.net/projects/jdk7/features/#f250</a><p>[3] <a href="http://openjdk.java.net/projects/jdk7/features/#fa537814" rel="nofollow">http://openjdk.java.net/projects/jdk7/features/#fa537814</a><p>[4] <a href="http://openjdk.java.net/projects/jdk7/features/#f639" rel="nofollow">http://openjdk.java.net/projects/jdk7/features/#f639</a><p>[5] <a href="http://mail.openjdk.java.net/pipermail/coin-dev/2009-March/001108.html" rel="nofollow">http://mail.openjdk.java.net/pipermail/coin-dev/2009-March/0...</a><p>[6] <a href="http://mail.openjdk.java.net/pipermail/coin-dev/2009-February/000001.html" rel="nofollow">http://mail.openjdk.java.net/pipermail/coin-dev/2009-Februar...</a>