9

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.

rinogo
  • 217

5 Answers5

12

None

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

Josh K
  • 23,029
  • 10
  • 67
  • 100
7

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.

Daniel C. Sobral
  • 3,541
  • 1
  • 26
  • 21
3

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.

vartec
  • 20,846
3

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.

GregC
  • 311
0

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).

mikera
  • 20,777