During last year, I had the chance to work as CTO of a startup, working mainly within MEAN stack. I was happy, the technology I was working with was in a great hype and its community grew bigger and bigger with lots of projects popping up everywhere.

Java vs Node.js

But life is continuously changing, and I started to work in a new company within Java/JEE technologies. I was back to my first days as a professional computer engineer. Java ecosystem is huge, and there are some well established tools that you must control if you want to progress as Java developer. But Java -the language- is getting older, and newer languages are more expressive and require less boiler plate code (don’t get me wrong, JVM is a great platform, and probably the best one for enterprise applications). Even with the recent release of Java 8, which introduced Lambdas and some functional style capabilities, I still feel like writing too much, or at least much more than with other languages.

You could ask yourself then why did I change?

Not long ago JVM included some bytecode instructions that allowed scripting languages to be run within it. That turn the JVM into a polyglot ecosystem, with languages like Groovy, Scala or Clojure gaining traction, attracting more users into it and making its community more vibrant than ever.

We’re living a Functional Renaissance, where OOP is not the only solution one would dare to apply any more. And probably its flagships are Scala and Clojure, both JVM based (whereas there are implementations of Scala for .NET platform, its origin and biggest user base is using JVM version).

And this transformation happening within the JVM was the main reason I wanted to come back. It’s a perfect moment to be there and worth of losing daily touch with Node.js (at least in my job, because I still love this technology and its community). JVM is a great platform, has great tools, and now finally, has some great languages.