2013/11/13

Devoxx 2013 Keynote: Java 8 and beyond

Mark Reinhold, Brian Goetz
Java: 18 years old
  • static language, but many dynamic features
  • many great features: gc, JIT ..
  • principles Java Language
    • reading code more important than writing
    • simplicity
    • one language, same everywhere
Java 8 features:
  • lambda expressions (+ type inference)
  • default methods in interfaces
  • java.util.stream: aggregate / data-parallel operations
lambda expressions:
  • inspiration: How to think about Parallel Programming -- Not (Guy Steele) (http://www.infoq.com/presentations/Thinking-Parallel-Programming)
  • more expressive code
    • instead of boilerplate of anonymous inner classes
    • syntax inspired from C#
    • single-method interfaces
    • ´´default´´ methods
      • default implementation
      • fully virtual
      • how stream() method was added
  • more powerful:
    • treat behavior as data
    • "gentle turn for the functional"
    • push away from mutative / imperative
    • huge impact on API design
  • more parallel
    • aggregate operations (filter, conversions, max, etc.)
    • stream() -> parallelStream() (single parallel pass on datasets)
    • retrofitted Collections
next:
  • value types: key enabler for
    • tuples,
    • user-defined primitive types

No comments: