Reputation: 4913
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)
Upvotes: 1
Views: 1180
Reputation: 76147
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 keeping an eye on Fortress, which 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.
Upvotes: 5
Reputation: 4678
How about Groovy
What are its strong points?
To what kind of applications it is most suited for?
What is its learning curve?
The quality of its documentation, support and and size of its forum answering fan-base.
The level of maturity (Would you choose it to write big important software, or just some cool stuff for your own free time).
What you like most, and what less...
Upvotes: 5
Reputation: 55957
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!
Upvotes: 2