Procs, lambdas, blocks?! What’s the difference? Rails Rumble ‘09
Jul 31

- Overall results

First off, I’d like to thank everyone who voted on this poll.
With a total of 236 votes, here is the summary of the first two questions:

- Are you currently working with or researching about language alternatives for the JVM? - e.g. JRuby, Scala, Groovy

Level of interest on JVM language alternatives

Level of interest on JVM language alternatives

- If you answered yes or maybe to the previous question, what alternative would that be?

JVM language alternatives preference

JVM language alternatives preference

As you can see, the vast majority of Java developers that participated on this poll have interest or are working with a language other than Java for the JVM. The results of the second chart were surprising for me and we have Groovy standing really tall with an astonishing 101 votes, followed by Scala and JRuby in a tougher competition.

The poll also consisted of 2 other questions, both free text, and I tried to analyze them in more detail to understand the “why’s” and “how’s” of these results.

Keep reading for the detailed summary…

I’ve split the results according to the choices and analyzed them individually using a tag cloud. This allowed me to filter some common words and hopefully focus on the important bits of the comments. They are displayed grouped by choice and question.

- Groovy

Please provide a brief summary to back up your choice

Why choose groovy

The general feeling here is that people find Groovy a language easy to move to, being a java developer. Most of the answers also highlights the Groovy integration with java. Things like “change from .java to .groovy and start from there”.

Another aspect was the community, which is vast and supportive. A good amount of the answers also mentioned Scala as being too complex and academic.

Is there anything that would make any of these alternatives more attractive to you?

What could be improved?

Most people said that JRuby would be their second choice if they saw more improvements on the Java integration and performance. Scala also got mentions about - again - its complexity and a few asking for improvement in documentation. Both JRuby and Scala got negative comments regarding their syntax.

- JRuby

Please provide a brief summary to back up your choice

jruby_likes

As one might guess, many people mentioned the ability to use Rails - thus leveraging their existing Ruby knowledge - as a big win for JRuby. Also, kudos for the community for being supportive and friendly. Several comments about it.

Is there anything that would make any of these alternatives more attractive to you?

jruby_improvements

Many wishes towards JRuby’s Java integration and support. More specific comments of compiling ruby classes into java classes and so on…

-Scala

Please provide a brief summary to back up your choice

scala_likes

Clearly Scala’s type system and functional programming features were highlighted the most. As a general feeling, people who chose Scala would have chosen Groovy as a second best.

Is there anything that would make any of these alternatives more attractive to you?

scala_improvements

Tooling. The majority of comment urge for better tooling and IDE support. That simple.

- Others

People who chose others mentioned Clojure, Fan and Jython, with a clear advantage for Clojure.

- Disclaimer

This poll has no scientific foundations whatsoever and its sole purpose is to summarize the feelings and personal choices of the people who answered it. If you would like the original spreadsheet with the answers, you can find it here and do your own analyzis.

Related Posts

11 Responses to “JVM language preferences poll results”

  1. Johan says:

    The permission settings for the spreadsheet seems to prevent public access.

  2. Hi Johan,
    It should be fixed now. ;)

  3. jamesladd says:

    A great exercise !

    It would appear that product SUPPORT and tight Java integration are going to be a must for my Smalltalk JVM project.

    Hopefully Smalltalk will rate as an alternative if you do this poll again next year :)

    Rgs, James.

  4. Jeff Heon says:

    Rats, I was too late to vote. My comments anyway ;)

    My preferences: Clojure, then Scala.

    Summary
    In the end, I think it’s the overall syntax complexity of others choices versus the simplicity of Clojure that attracted me. Plus the fact that Clojure is well-defined with (so far) just one main implementation instead of Common Lisp where there are too many choices behaving differently.

    Also, when you listen to the screencasts of Clojure by it’s creator, you can’t help but see how much thought and consideration. He drew from his work experience to write a language with specific goals in mind, carefully weighting pros ans cons of every features. So did the creators of Scala and Groovy, I’m sure, but Rich is really an articulate speaker.

    If it weren’t for Clojure, I would pick up Scala because I DO like static typing and I like it’s elegant blend of OO and functional programming.

    >Is there anything that would make any of these alternatives more attractive to you?

    I’m an old school programmer but I’ve never been fond of Vi or Emacs. I love IDE’s. So of course, I’d like better out-of-the-box IDE support.

  5. Jeff Heon says:

    If I may correct my last comment:
    Rats, I was too late to vote. My comments anyway ;)

    My preferences: Clojure, then Scala.

    Summary
    In the end, I think it’s the overall syntax complexity of others choices versus the simplicity of Clojure that attracted me. Plus the fact that Clojure is well-defined with (so far) just one main implementation instead of Common Lisp where there are too many choices behaving differently.

    Also, when you listen to the screencasts of Clojure by it’s creator, you can’t help but see how much thought and consideration He put it in. He drew from his work experience to write a language with specific goals in mind, carefully weighting pros ans cons of every features. So did the creators of Scala and Groovy, I’m sure, but Rich is really an articulate speaker.

    If it weren’t for Clojure, I would pick up Scala because I DO like static typing and I like its elegant blend of OO and functional programming.

    >Is there anything that would make any of these alternatives more attractive to you?

    I’m an old school programmer but I’ve never been fond of Vi or Emacs. I love IDE’s. So of course, I’d like better out-of-the-box IDE support.

  6. Hi Jeff!

    Thanks for sharing your comments!

    I’m with you on the IDE issue. The problem with them so far is that they’re usually heavy and bloated. I’d love to see one that is full featured like eclipse and netbeans, but light as TextMate.
    Is that even possible? ;)

  7. Actually, I fall into the “Scala first” camp, and I would pick JRuby as a second choice (first for some tasks). I do wish that JRuby were better integrated with Java. I mean, it’s not bad now, but it could get a lot better. Fortunately, that’s a primary focus in the upcoming 1.4 release, so…wish granted!

    I’m a little disheartened that Scala’s “complexity” was the oft-cited reason for not considering it. It’s actually a terribly simple language. I mean, it’s lightyears more complex than Clojure, but compared to Groovy and Ruby, it’s positively trivial. The thing which makes most people shy away is it *appears* to be very complex due to the way in which the core concepts of the language can be reused in numerous, apparently diverse ways. People look at Scala and they see tons of special little tricks and rules, a grammar the size of my arm, and a type system with scary-looking things like “higher kinds” and “variance annotations”. What they don’t see is that all of those different features stem from a very simple set of core primitives. In many ways, Scala is even simpler than Java, it’s just more flexible in that simplicity.

    When I hear “Scala is too complex”, it almost always means that the person in question has not really given the language a fair shake. This is reinforced by all of the people who said “Scala is too complex” and then turned around and said that they liked Groovy, which is empirically the most complex of all of the mainstream alternative JVM languages (by a wide margin).

    Oh well, the myth of Scala’s enormous complexity will persist regardless of what I say or do. Hopefully, someday people will judge languages not based on their first impressions, but upon the actual core design.

  8. Hi daniel,
    Interesting point indeed. I haven’t gotten past the tutorials on Scala - plan to study more at some point - and to me it’s weird that Java developers find it complex. Java itself is already a pretty much complex language and Scala simplifies several concepts.

    I believe these statements come from the lack of knowledge of a functional programming paradigm. It’s a big shift. Something similar to when people moved from procedural to OO. Many people back then thought OO was too complex… I guess it’s just history repeating itself.

  9. This aligns pretty well with what I expected.

    * JRuby would be more popular if Java integration was better. We’ve focused heavily on Ruby to make sure Rubyists were happy first, and let Java go for a while. Focus is changing a bit now.
    * Groovy 2:1 over JRuby. We have mostly presented JRuby to Rubyists at Ruby conferences, because we don’t have enough people to do all Ruby and Java conferences. Focus is changing a bit now, but we need more Rubyists to take an interest in evangelizing to Java devs.
    * Groovy community cited as a benefit. Rubyists are not as interested in backing JRuby as Groovyists are interested in backing Groovy or Scalaist backing Scala.

    Ultimately, if we believe it’s important for Ruby that JRuby do well on the JVM, we need more than just technical solutions (which are usually pretty easy). We need more folks from Rubyland to help us bring Ruby to the Java community and help them make the transition.

  10. Jeff Heon says:

    Leonardo says
    “I’m with you on the IDE issue. The problem with them so far is that they’re usually heavy and bloated. I’d love to see one that is full featured like eclipse and netbeans, but light as TextMate.
    Is that even possible? ;)”

    I’m pretty difficult to please about IDEs too. For professional development, I was quite happy with IntelliJ IDEA a few years ago or Visual Studio with the ReSharper plugin.

    But for hobby development to mess around with Scala & Clojure, I feel NetBeans or Eclipse is too much.

    My happiest hobby development IDE has been IDLE when I was tinkering with Python. It was just right for me.

  11. Yeah I hear you.

    For scripting languages like ruby and python, I usually use TextMate on Mac OS or GEdit on Linux - with several plugins.

Leave a Reply

preload preload preload