DEV Community

Discussion on: Java is too old, What should you learn in 2018?

Collapse
 
eljayadobe profile image
Eljay-Adobe

JVM platform has a lot of top-shelf language choices.

Java is a lot like C#. Java is longer in the tooth, and its stewards have been much less attentive compared to the stewards of C#.

Kotlin is a lot like Swift. However, the one downside to Kotlin in the JVM ecosystem is the developer still has to be aware of the Java peccadillos or be puzzled by otherwise surprising behavior. (Analogously, Swift devs still need to have some familiarity with Objective-C to understand some of Cocoa's peculiarities in a Swift world.)

Clojure is Lisp with Functional Programming added in. If you like Lisp, I'd think you'd find Clojure to be the perfect choice for JVM. I'm not sufficiently familiar with Clojure to contrast it to super-focused functional programming language Haskell, or "FP first" functional programming language F#. I am sufficiently versed in Lisp and Scheme to have due respect for the top-of-the-food-chain languages in which Clojure belongs.

Scala is an object-oriented language seasoned with functional programming. (For those Scala fans that may find my description to be flipflopped, I suggest you take a few months to learn Haskell or F#.)

Groovy is a kinder-gentler-friendly less fussy syntax flavor of Java. Groovy is to Java, as CoffeeScript is to JavaScript. However, the creator of Groovy jumped ship as soon as he saw Scala... so if you are leaning towards Groovy, you may want to seriously test the Scala waters before committing to Groovy. (In .NET land, Boo! is analogous to Groovy... except Groovy is a top-shelve JVM language, whereas .NET only has three top-shelf languages: VB.NET, C#, and F#.)