I’m interested in learning a dynamic language after at least 10 years on the Java platform. There are two choices that I was considering. One, learning one such as Clojure / Groovy that ride on top of the Java JVM. Secondly, a language off the JVM, which would include Ruby / Rails or Erlang.
Having knowing alot about the Java side, I’d like to choose a JVM based solution, but considering an off the JVM solution.
My question is:
- What advantages / disadvantages would I get by choosing a language off of the Java JVM?
One of my biggest pain points is deployment memory footprint. I’d like to have a solution that allows low memory consumption, because most cloud / ISP providers require high dollar for anything greater the 512 MB / server. I’ve been so used to using High Memory JVM’s which just don’t work well with my costs. Maybe this isn’t a concern for using clojure or groovy, but I’d expect a high memory footprint since it’s running on the JVM.
I’ve already started using Ruby / Rails lately and I’ve been impressed with it.
If you go off the JVM then you have a good tool you can use in the cases where the JVM is poorly suited, like command line utilities where JVM startup time is really annoying.
If you go with Clojure you get both, with the clojure compiler you can produce classes for the JVM and with the ClojureScript compiler you can produce javascript that will run on very nearly anything.
My personal and therefore unverifiable advice is to go with the option that will expand your programming mind cough clojure but I am personally rather biased.