2009-10-11 7 views
3

Je suis actuellement en train de décider d'un langage JVM alternatif pour porter une application de bureau Swing existante écrite en Java 6. Etant donné que JavaFX cible spécifiquement ce genre d'application, il semblerait que ma meilleure option est JavaFX Script.Qui pourrait devenir un langage JVM alternatif fort: Scala, Clojure, Fan, Script JavaFX ou autre?

Cependant, qu'en est-il des autres types d'applications et de bibliothèques? JavaFX Script serait-il le meilleur choix en général pour un deuxième langage JVM?

Actuellement, il semble que Scala est l'alternative la plus parlée au langage Java. Ce mois (Octobre 2009), il est à la position 34 dans le TIOBE index, tandis que JavaFX Script est à la position 44, et Clojure, Fan, et Groovy sont à des positions inférieures à 50.

Alors, quelles sont vos impressions? Dans quelle langue consacrez-vous votre temps à apprendre et à utiliser (et pourquoi), en supposant que vous puissiez choisir librement la langue d'un projet donné à exécuter dans la JVM?

Répondre

1

Tout cela semble être un bon choix. Vous pouvez ajouter JRuby à la liste ...

+0

Il y a quelque temps, Sun a semblé être intéressé à pousser JRuby. Maintenant, il semble que l'accent (et l'argent) a déménagé à JavaFX. Il serait intéressant de savoir si c'est vraiment le cas. –

+0

Eh bien, le développeur JRuby est passé de Sun à Engine Yard. Ruby va évidemment bien et je pense que JRuby et Ruby sont là pour rester. JRuby exécute Rails, vous savez, et c'est le test d'acide pour la fonctionnalité Ruby. (The * Rails Singularity *.) Il ya d'autres projets Ruby qui ne peuvent toujours pas faire ça. – DigitalRoss

+0

Je suis d'accord que Sun, err, Oracle, investit clairement dans JavaFX. Mais je suppose aussi que nous ne nous soucions pas si Intel prend en charge une chose donnée qui se passe sur leur ligne de CPU. Peut-être que le support de Sun pour un compilateur JVM donné n'est pas si important? Je comprends vos inquiétudes, mais après avoir cité l'index de Tiobe, vous rejetez une langue dans le top 10 en faveur de certains qui ont été massacrés, et je le dis en tant que fan de Scala et de Clojure. :-) – DigitalRoss

2

La meilleure alternative, et la meilleure langue dans l'ensemble, IMO, est celle qui vous permet d'écrire le programme dans le meilleur modèle pour vous.

Donc, si vous écrivez une application GUI, alors Scala peut être le mauvais choix, que vous ne seriez pas éloigner de Swing.

Si JavaFX répond le mieux à vos besoins, utilisez cette langue.

Si vous connaissez LISP alors Clojure serait un bon choix, mais, comme Scala, pas pour ce problème, cela ressemble.

Si vous ne connaissez pas Lisp et que vous voulez/avez besoin d'un langage de programmation fonctionnelle, alors Scala serait le meilleur choix.

Fondamentalement, il n'y a pas une langue qui est le mieux dans toutes les situations, il est utile de savoir ce que vous voulez faire, et les forces/faiblesses des différentes options.

+1

Je suis d'accord avec tout ce que vous avez dit, mais je n'ai pas vraiment hâte d'apprendre/d'utiliser une demi-douzaine de langues différentes pour la JVM. En outre, la plupart de ces langues ne vont probablement jamais devenir mainstream ... –

+0

Soyez juste conscient d'eux. Par exemple, si vous ne connaissez pas le lisp, ignorez Clojure. Si vous n'avez jamais besoin de PF, sautez Scala. Si Java SE/ME/EE fait tout ce dont vous avez besoin, mais qu'il vous manque une ou deux fonctionnalités, trouvez le langage qui vous aidera et apprenez celui-là. –

3

Ma question principale serait: pourquoi portez-vous une application existante? La réponse à cette question peut vous donner une idée de l'endroit où vous voulez aller.

Quelques perspectives rapides sur les principaux choix:

  • Scala est à mon avis, une meilleure Java que Java. Si vous voulez un langage qui prend les meilleurs morceaux de Java ajoute beaucoup de nouvelles innovations et fonctionnalités, alors il pourrait bien être pour vous.
  • Clojure est un langage étonnamment bien conçu, surtout si vous croyez en un avenir de, applications concurrentes très complexes. C'est aussi extrêmement productif - je peux probablement créer plus de valeur/heure dans Clojure que n'importe quelle autre langue. Cependant, à moins que vous ne connaissiez déjà Lisp, il semblera très peu familier au début. Si vous êtes prêt à vivre à la fine pointe pour obtenir ces avantages, Clojure pourrait bien être pour vous.
  • JavaFX Script - a quelques très belles caractéristiques de conception graphique et a clairement le soutien de Sun/Oracle. D'un autre côté, je ne vois pas de traction massive en dehors de ce domaine. Je suggérerais de faire un trail pour voir si cela répond à vos besoins.
  • Java - devrait toujours être sur votre liste! Si la raison pour laquelle vous faites du portage est que le code est devenu difficile à maintenir, alors une phase focalisée de recréation tout en restant sur Java peut vous apporter les avantages que vous souhaitez. Il est possible d'écrire de très bonnes applications graphiques en Java.
  • Groovy - langage de script vraiment sympa sur la JVM. Particulièrement utile si vous souhaitez intégrer des fonctionnalités de script dans une application Java/JVM existante. Je ne suis pas sûr de le choisir pour (re) écrire une application complète.
  • JRuby/Jython - Je ne les ai pas vu beaucoup moi-même mais j'ai entendu de bonnes choses. Probablement le plus approprié si vous avez des compétences Ruby/Python dans l'équipe, mais aussi les avantages de la plate-forme JVM.
Questions connexes