Originally published November 17, 2013
For a few years my most used stack for writing web applications has been Clojure + Compojure+ Noir, usually using Bootstrap, with some experiments using Ember.js and Meteor. After playing a lot with Java 8 (with lambdas, Streams, etc.) I am considering once again using Java as one of my go-to languages for new projects.
Even with new language features, Java 8 is not quite the fun developer's experiences as Clojure, JRuby, and Scala but Java has a few advantages: lots of available developers, great tooling, mature tooling, and a wealth of libraries.
I looked hard at Scala and Scalatra but there are rough edges to Scala (like sbt!) that I don't particularly like. Clojure is close to the efficiency of Java (about a factor of 2, in both space and time) but not as efficient. I love coding in Ruby, but the runtime performance keeps me from using Ruby except for small scripts for text processing, quick Sinatra web apps, etc.
I have experimented this weekend with Java 8 + Spark (has Sinatra style routing) + Freemarker templating + Bootstrap. I don't have the warm feeling with this combination that I do for Clojure + Compojure+ Noir and for Ruby + Sinatra. I need to try a small project to kick the tires, but I would really like to give Java 8 a shot at recapturing my "developer's mindshare."