Wednesday, 7 March 2012

Qcon 2012 The future of Java Platform: Java SE8 and Beyond

Here are my notes from "The future of Java Platform: Java SE8 and Beyond" talk by Simon Ritter (Java Platform track).

Java 8 release is planned for middle of 2013, after that they plan a new release every two years, with plans being made for Java 12 already.


1. The talk started with a brief overview of java history, and a list of priorities that were defined for java and are still considered valid: readability, simplicity, features not weighting down the language, continuos evolution.

2. We've proceed to talk about most important features planned for Java 8. The first one being Lambda Expressions - http://openjdk.java.net/projects/lambda/. They will make writing parallel map/reduce code much easier (although we'll see if it will be much easier to read). They will replace use of inner classes which gets the a gold star from me.

3. There's a new way to extend old classes with new functionality - extension methods will allow you to add a method to an interface that won't have to be implemented by it's children. If a class doesn't implement a method a default method defined in the extension method will be used. That way Collection classes can now use map, reduce, filter and parallel methods with lambda expressions.

4. Module-info.java file (http://openjdk.java.net/projects/jigsaw/) is a result of a trend towards modularisation of java apps and java as a language. The idea is that you can get rid of classpath and define your dependencies in a more flexible way.

5. Summary of the features planned for java 8: lambda project, jigsaw project, JVM Converge (Hotspot VM and JRocket VM), Java FX 3.0 (as part of java 8), Javascript support, multiply devices support, focus on developer's productivity.

6. The trends for further future: Interoperability, Cloud, Ease of Use, Advanced Optimisation, "Works Everywhere and with everything".

4 comments:

  1. Excellent Article! Very good read. And some promising new Java features (lambdas/extension methods... mm... let's see... where have I come across these before... oh, I know, C# :-) it was about time theese things made it into Java. I am beginning to like Java :-)

    ReplyDelete
    Replies
    1. Let me know when you want to come over to the "dark side", we have vacancies ;)

      Delete
  2. It seems like Java is 5 years behind C# in terms of language features but in the same time, Java developers as a community seem to be 5 years ahead when it comes to design/architecture. It may be the case that rich and friendly environment (C#) does not encourage people to innovate on the side of architecture. They rather sit on the couch waiting for Microsoft to solve their problems with the next version of .NET.

    ReplyDelete
    Replies
    1. A few years ago I think this may have been the case, but as someone who has spent some time on either side of that fence, I would disagree with this today. You can do a lot of with these "new" language features which wouldn't be possible with the current state of the Java language due to boilerplate bloat. Take Reactive Extensions for .NET. A library like this has a huge impact on architecture/design, and is something which really wouldn't be possible in Java. Spring seems ancient when compared with even the oldest of the .NET IoC/DI containers (Castle Windsor).

      To be fair, scala is currently my language of choice, and has been since I started writing it full time over a year ago. I found that I had a much easier time learning scala after 5 years of C# than my java counterparts on my current team.

      At a minimum, APIs for java libraries lag behind APIs for their C# .NET counterparts a great deal.

      Delete