ZeroTurnaround, creators of the JRebel plug-in for the Java Virtual Machine, has brought out a 50-page report that explores Java 8 and some of the JVM languages.
The Adventurous Developer’s Guide to JVM Languages comes from Rebel Labs, ZeroTurnaround's research team and takes a look at Java 8, Scala, Kotlin, Ceylon, Xtend, Groovy, Clojure and Fantom.
The team's goal was to give an understanding of where each language came from, how they evolved and where they may be going. In order to form these impressions they used the same HTTP Server example in eight implementations and the report provides links to GitHub so readers can also try them out.
The report starts with a timeline that shows the current state of each of the languages chosen for inclusion:
(click to enlarge)
Each of the eight language sections opens with a Getting Started with overview and then picks out specific features - for example, lambda expressions in Java 8; static typing in Groovy; functional programming concurrency in Clojure. Interoperability with Java covered in most sections.
Here's a contents list:
- Introduction & History – Intro, JVM languages timeline, where on Github to see our code examples
- Java 8 – Getting started with Java 8, a bit about Lambdas, functional interfaces in JDK8, defender methods and commentary by our report experts
- Scala – Getting started with Scala, main differences from Java, case classes and pattern matching and fun with strings
- Groovy – Getting started with Groovy, closures, collections, static typing, commentary by Guillaume Laforge, Cedric Champeau, Andres Almiray (Project lead and senior committers of Groovy)
- Fantom – Getting started with Fantom, pods/scripts, standard library & elegance, interop, static & dynamic typing, immutability & concurrency, functions & closures, commentary by Brian and Andy Frank (creators of Fantom)
- Clojure – Getting started with Clojure, IDE support, Read-Eval Print Loop (REPL), thinking about functional programming, Java interoperability, concurrency and order of methods
- Ceylon – Getting started with Ceylon, how it’s built on JBoss, Java interoperability and commentary by Gavin King (creator of Ceylon)
- Kotlin – Getting started with Kotlin, how to code elegantly, writing safe code (unless you don’t want to!), functions and documentation, and commentary by Andrey Bretslav (creator of Kotlin)
- Xtend – Getting started with Xtend, translating Xtend code to Java code, what you can do with Xtend that you cannot in Java, code snippets, Java interoperability and commentary by Sven Efftinge (creator of Xtend)
- Overall Summary (TL;DR) - the ZeroTurnaround take and round up of each of the eight JVM languages covered.
This is more than a manager oriented report because of the inclusion of code but also because of the quotes from the language creators. In the case of James Gosling (Java) and Martin Odersky (Scala) these are culled from outside publications but in other cases Rebel Labs has completely new quotes from the language creators and committers.
Early in the document six of these "other language" experts give their views on new features in Java 8 which provides some interesting insights.
The full report is free to download once you complete a registration form and receive log-in credentials.