What is the current status of these projects, and has any one (or two) emerged as a clear leader?

To demonstrate my motives for asking this question, cast your mind back several years. Prototype and jQuery were going head-to-head with other players like MooTools fighting to survive as well. Fast forward to today, and the general consensus is that jQuery is the best general purpose JavaScript library.

Has something similar happened in the last several years with these JVM-based languages? Have certain languages fallen into disrepair and abandonment? From what I've read, it seems that Scala is certainly well-prepped to become the favorite, but then again, nearly everything I've read is several years old.

I've done a bit more research - I had the idea to check out search volume through the years by using Google Trends. It seems that Jython and JRuby have relatively little interest while Groovy's volume is decreasing and Scala's volume is constant (at worst) or increasing slightly (at best). Is this an accurate assessment?

And yes, I'm referring to non-Java languages on the JVM such as Jython, JRuby, Groovy, Scala, Clojure, etc.

  • 8
    An important thing to remember is that users of JRuby will often search for Ruby whenever they wonder about stuff related to syntax, idioms, examples, etc. So comparing tags or trends is difficult since Scala and Groovy refer to a language and implementation whereas JRuby just refers to an implementation.
    – Deckard
    Apr 23 '11 at 19:20
  • 10
    Define "leader" :) In the pure sense of "# of times used", Java itself is the clear leader
    – Heiko Rupp
    Apr 23 '11 at 20:48
  • 4
    I expect it's still Java :)
    – user4051
    Apr 23 '11 at 21:18
  • 4
    Indeed, Java is a clear leader on the JVM.
    – Chiron
    Apr 23 '11 at 23:39
  • 4
    @jprete: rinogo did list the languages, but Mark Trapp deleted them and changed the question.
    – Jonas
    Apr 23 '11 at 23:48


None have the market penetration necessary to declare them as a "winner" in the race (if there is one) to find a better JVM language.

Checking available jobs (on careers.stackoverflow.com) as indicator of the market for people with these skills.

1 groovy job.
4 scala jobs.
21 C# jobs.
22 ruby jobs.
29 python jobs.
34 php jobs.
39 java jobs.
0 for JRuby, Jython, or Grails.

Searched on 04/23/2011, using zip code 10001 and a range of 150 miles

  • It would be interesting to see how these are weighted by starting salary (or even its range). But then again, this would land you squarely in the off-topic territory.
    – GregC
    Apr 23 '11 at 19:45
  • 3
    How about clojure? Apr 23 '11 at 21:05
  • 2
    Does careers have the kind of market penetration to be a reasonable sampling? The blanket listing shows 549 jobs (sounds like total listings?). Apr 23 '11 at 22:18
  • 1
    @SnOrfus: Perhaps not, it was the first one I went on to search as in my own experience all the jobs are relatively high-quality and well defined with appropriate tags and focus. I will re-run these results on several other sites.
    – Josh K
    Apr 23 '11 at 22:49
  • @Josh K. That's a reasonable decision. +1. Apr 23 '11 at 23:35

A year ago there was an evaluation of Stack Overflow community sizes, and Scala got the lead, with Groovy and Clojure very close. You might use the freely available dump to make similar queries.

At any rate, I don't see any clear winner at all in the JVM land. First of all, there's a big crowd that likes dynamic languages, and won't go with Scala. Then, there's the static crowd that won't go with dynamic languages such as Groovy.

But they all have SMALL followings, compared to any of the big languages out there. They lack critical mass to ensure long term success, which would be the mark of a true winner.

  • 1
    +1 for the useful link - but I'd add that the point about JVM languages is they don't need critical mass in the same way that completely independent language ecosystems do - since they can exploit all the Java libraries and tools. I'd argue Clojure, Scala, JRuby and Groovy are all already well past critical mass as a result of this.
    – mikera
    Oct 12 '11 at 3:54

Most related question is How do you encourage your organization to move from Java to Scala?

Scala offers a different programming paradigm and syntax, while Groovy offers a low learning curve for Java devs. Both have their place.

Related comments from community: https://stackoverflow.com/questions/3644251/what-are-your-experiences-developing-in-scala-lift/3646365#3646365

Judging by the positive comments, I'd say Scala is a good bet.

I also think that an intuitive tool that does not cause an awful lot of questions is a positive indicator, so number of questions on Stack Overflow is not a great metric.

  • 3
    Feelings don't make an answer. Do you have facts and references?
    – user8
    Apr 23 '11 at 19:12
  • 2
    Mark is an awesome moderator!
    – GregC
    Apr 23 '11 at 19:22
  • Thanks, but now your answer doesn't address the question. The question is looking for specific information about the status of the projects, not your thoughts on when to use one or the other. Your original formulation answered the question, it just needed references to back it up.
    – user8
    Apr 23 '11 at 19:24
  • @Mark Trapp: your efforts are very welcome. I have to focus on the substance a bit more.
    – GregC
    Apr 23 '11 at 19:42

This question is based on completely misplaced assumption, that JVM languages are alternatives to each other. You're drawing analogy to JS toolkits, which all are using same language, all have same audience, all have same use. In case of JVM languages, the only thing in common all of them have, is that they are implemented using JVM. Apart of that it's as wide spectrum of languages, as you can get: static, dynamic, functional, objective...

For example it's wrong to assume that Jython is an alternative to Scala or JRuby; it's much more an alternative to CPython, IronPython or PyPy.

As for current top voted answer, it also makes false assumption that job description will talk about implementation details. Actually, even if a company uses Jython or JRuby, the job description will still call for Python or Ruby experience. Jython conforms to language specification, hence Jython is Python, similary for JRuby is Ruby.

  • +1. Very good point. There's no such thing as a "JVM based language". Java itself can be compiled to JavaScript (GWT) or native binaries (GCJ). Conversely JavaScript can run on the JVM (rhino), even though it wasn't listed among the candidates. The whole point of programming languages is to have a manageable abstraction of how programs are executed.
    – back2dos
    May 21 '12 at 15:28

There's no clear leader - Scala, Clojure and Groovy all seem to be very strong at present (mid 2012).

Some survey data:

It's hard to measure though - I think job postings and indexes like TIOBE are essentially useless for new language adoption since they depend primarily on very lagging indicators (your average pointy-haired-boss isn't going to hire a Clojure developer until at least a couple of years after your current Clojure hackers have built an amazing awesome product and you have finally decided that you need to grow the team).

Not the answer you're looking for? Browse other questions tagged or ask your own question.