2009-07-12 7 views
1

Je veux apprendre une langue JVM, mais il y a tellement manyQuel langage JVM correspond à mes besoins?

EDIT: Comment choisir une langue entre toutes les langues JVM? En ce qui concerne mes besoins, je veux juste apprendre quelque chose de nouveau, peut-être l'utiliser actuellement pour un projet de passe-temps, mais je serais ravi que les compétences acquises soient utiles pour de grands projets dans le futur. J'aimerais toujours savoir ce que quelqu'un avec des besoins différents devrait choisir.

(j'avais une liste de questions avant, mais on m'a dit qu'ils sont déjà sur Wikipedia)

+0

Connexes: http://stackoverflow.com/questions/821105/fonctions-langues-fonctionnelles-erlang-f-haskell-scala –

Répondre

5

D'abord nous aurons besoin de savoir quels sont vos besoins! Parce que la plupart des choses que vous posez sont déjà répondues dans les liens de l'article de Wikipédia.

Modifier: après votre reformulation de la question, je suppose que votre objectif principal est d'avoir du plaisir avec la programmation d'une nouvelle langue ...

Je pense un langage dynamique comme Groovy ou Jython sera plus drôle à utiliser, car vous pouvez vous familiariser plus rapidement et voir les résultats de ce que vous faites immédiatement dans l'interprète. Personnellement, je préfère Jython parce qu'il est basé sur Python (en fait, c'est Python, mais un peu dépassé), mais je dois admettre que Groovy est plus étroitement couplé avec le JRE, il est plus syntaxiquement similaire à Java et pourrait donc être mieux option.

Si vous voulez changer un peu votre façon de penser (en supposant que vous avez un contexte procédural/impératif, comme la plupart des gens), alors je vous recommande de Scala, Clojure, SISC ou Armed Bear CL (ces deux derniers ne sont pas dans la liste Wikipédia).

Aussi je pense qu'il vaut la peine de garder un oeil sur Fortress, qui pourrait être le prochain "Big One" langage pour la JVM ... Je ne l'ai pas regardé depuis longtemps, mais maintenant il semble qu'il est déjà prêt à télécharger, construire par vous-même et tester. Si vous voulez vraiment vous amuser, peut-être que ce sera la meilleure option, car il a des "fonctionnalités vraiment géniales" (comme écrire des expressions mathématiques en format LaTeX qui sont en fait analysées par le compilateur et utilisées pour imprimer la documentation) et vous serez constamment surpris par les changements à venir, car c'est un langage en développement actif.

+0

Merci pour les commentaires, édité, j'espère que c'est mieux. –

+0

Merci pour votre réponse très informative. Fortress semble vraiment unique. –

5

Que diriez-vous Groovy

Quels sont ses points forts?

  • dynamique de frappe
  • fermetures
  • de tableaux associatifs
  • opérateur navigateur sûr
  • appels java en mode natif

Pour ce genre d'applications, il est le plus adapté pour?

Quelle est sa courbe d'apprentissage?

  • assez facile à apprendre

La qualité de sa documentation, le soutien et la taille et de son fan-base répondant à un forum.

  • bon, a une grande comunauté

Le niveau de maturité (Vous choisissez pour écrire grand des logiciels importants, ou tout simplement des trucs cool pour votre temps libre).

  • matures

Qu'est-ce que vous aimez le plus, et ce moins ...

  • j'aime ce qu'ils ont fait avec Grails
+0

Merci, je sais que Groovy est l'un des meilleurs joueurs, je me promène comment il est comparé à Scala et les autres joueurs, je suppose que la principale différence est que Scala est statiquement typé? –

2

Vous ne dites pas pourquoi vous attention si c'est un langage JVM. Pourquoi le temps d'exécution vous importe-t-il? Supposons qu'il y ait un langage non-JVM qui a obtenu de très bons résultats sur tous vos critères, seriez-vous intéressé (e)?

Je suis heureux en Java, je pense qu'il est assez bon pour les gros logiciels importants.Il peut raisonnablement prétendre être mature. Il y a clairement une large base d'utilisateurs et des communautés actives.

Apprentissage: ne pas confondre le langage lui-même et le jeu de bibliothèques environnantes. La maîtrise des bibliothèques est ce qui vous rend productif. Voudriez-vous voir le grand ensemble d'API Java comme un inconvénient - tant à apprendre! ou un up-side, il y a une bibliothèque là-bas pour quoi que ce soit!

+0

Merci pour la réponse, je suis également heureux avec Java, mais je voulais essayer certaines de ces autres langues. Je pense que la JVM a beaucoup à offrir en termes de portabilité, de débogage, de protection contre les attaques de pile, etc. Je suis donc actuellement intéressé par les langages JVM. Aussi je crois que c'est la tendance actuelle dans la programmation (probablement à cause de ceux-ci) :) En ce qui concerne l'apprentissage j'aimerais savoir combien il est difficile d'apprendre la langue elle-même, et je suis d'accord que ce sont les bibliothèques qui la productivité, mais je comprends que la plupart des langages JVM (tous?) peuvent utiliser n'importe quelle autre bibliothèque basée sur le bytecode. –

Questions connexes