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
  • 2
  • 6
  • 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
  • By the way, thank you, for your insight, Mark! I appreciate both 1) answers to the "clear leader" question as well as 2) personal commentary. :) I noticed you deleted your response - I wanted to thank you here. – rinogo Apr 23 '11 at 19:42
  • 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 :) –  Apr 23 '11 at 21:18
  • Is the intent of the question to ask about non-Java JVM languages? It'd be nice to clarify that. You don't actually list the languages you are asking about, except in the tags. – jprete Apr 23 '11 at 22:55
  • 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
  • 3
    For the record, I appreciate Mark's solid effort as a moderator, and I think he's doing a great job. With that said, it seems that the consensus is that perhaps not as much editorial action is necessary. Regardless, thanks for your wonderful help, Mark! :) – rinogo Apr 24 '11 at 03:36
  • [fantom](http://fantom.org/) looks useful "portable to the Java VM, .NET CLR, and JavaScript in the browser." Far from being the winner though. – NimChimpsky May 21 '12 at 12:25
  • The good things about Fantom is that it is statically typed and easy to learn. – Ali Shakiba Mar 04 '13 at 10:29
  • @Deckard You wrote "Groovy refer to a language _and_ implementation", but Groovy creator James Strachan made clear the Groovy Language is different from the implementation hosted at Codehaus, which he called [the current RI of Groovy](http://groovy.329449.n5.nabble.com/Paris-write-up-tt395560.html#a395571). Just because Groovy presently only has one implementation doesn't mean Groovy is both a language _and_ implementation. – Vorg van Geir Dec 15 '13 at 12:20

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,019
  • 10
  • 65
  • 100
  • 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? – alternative 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?). – Steven Evers 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. – Steven Evers Apr 23 '11 at 23:35
  • @Josh K: what's so special about NYC? I thought that most lucrative opportunities are in Cali, and most creative work is in Austin and Portland... – GregC Apr 24 '11 at 03:46
  • Most likely the Groovy job is a Grails Job. – user281377 Apr 24 '11 at 07:25
  • +1 for quantitative resolution of what may have been a flame war otherwise – Nitsan Wakart Jan 21 '13 at 14:29
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
  • 24
  • 21
  • 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 03:54
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,760
  • 1
  • 52
  • 98
  • +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
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
  • 1
  • 2
  • 9
  • 3
    Feelings don't make an answer. Do you have [facts and references](http://blog.stackoverflow.com/2010/09/good-subjective-bad-subjective/)? –  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. –  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
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,617
  • 5
  • 75
  • 80