jvm-languages

Which JVM language suits my needs?


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)


Solution

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