views:

322

answers:

3

I want to learn some JVM language, but there are so many

EDIT : How to choose a language between all the JVM languages?

As for my needs, I just want to learn something new, maybe to currently use it for some hobby-project, but would love it if the skills acquired will be useful for big projects in the future. still would love to know what someone with different needs should choose.

(I had a list of questions before, but I was told they are already on Wikipedia)

+3  A: 

How about Groovy

What are its strong points?

  • dynamic typing
  • closures
  • associative arrays
  • safe navigator operator
  • calls java natively

To what kind of applications it is most suited for?

What is its learning curve?

  • quite easy to learn

The quality of its documentation, support and and size of its forum answering fan-base.

  • good, has a great comunity

The level of maturity (Would you choose it to write big important software, or just some cool stuff for your own free time).

  • mature

What you like most, and what less...

  • I like what they did with grails
Mercer Traieste
Thanks, I know Groovy is one of the top players, I wander how it is compared to Scala and the other players, I assume the main difference is that Scala is statically typed?
Liran Orevi
+1  A: 

You don't say why you care if it's a JVM language. Why does the runtime matter to you?

Suppose there was a non-JVM language which scored really high on all your criteria, would you be interested?

I'm happy in Java, reckon it's good enough for big important software. It can reasonably claim to be mature. Clearly there's a wide user base and active communities.

Learning: don't confuse the language itself and the surroundling library set. Mastery of the libraries is what makes you productive. Would you see the large set of Java APIs as a down-side - so much to learn! or an up-side, there's a library out there for anything!

djna
Thanks for the response, I'm also happy with Java, but wanted to try some of those other languages.I do think the JVM has much to offer in terms of portability, debugging, protection against stack attacks etc' so I'm interested in JVM languages currently. Also I believe that this is the current trend in programing (probably because of those) :)As for learning I would love to know how hard it is to learn the language itself, and I agree that it's the libraries that make most of the productivity, but I understand that most (all?) JVM languages can use any other bytecode based library.
Liran Orevi
+3  A: 

First we'll need to know what your needs are!

Because most of the things you ask are already answered in the links from the wikipedia article.

Edit: after your reformulation of the question, I assume that your main goal is to have fun programming with a new language...

Then I think a dynamic language like Groovy or Jython will be funnier to use, as you can get hands on faster and see the results of what you do immediately in the interpreter. Personally I prefer Jython because it's based on Python (in fact, it IS Python, but a little bit outdated), but I must admit that Groovy is more tightly coupled with the JRE, it's more syntactically similar to Java and thus might be a better option.

If you want to change a little bit your way of thinking (assuming you have a procedural/imperative background, as most of the people), then I'll recommend you Scala, Clojure, SISC or Armed Bear CL (those two last aren't in the Wikipedia list).

Also I think it's worth to keep an eye on Fortress, that might be the next "Big One" language for the JVM... I haven't looked at it in a long time, but now it seems that it's already ready to download, build by yourself and test. If you want to have real fun, maybe this one will be the best option, because has "really cool features" (like writing mathematical expressions in LaTeX-like formatting that are in fact parsed by the compiler and used to pretty print the documentation) and you will be constantly amazed by the upcoming changes, as it's a language in active development.

fortran
Thanks for the feedback, edited, hopefully it's better.
Liran Orevi
Thank you for a very informative answer. Fortress looks very unique indeed.
Liran Orevi