Какой может стать сильной альтернативой языку JVM: Scala, Clojure, Fan, JavaFX Script или другой? - PullRequest
2 голосов
/ 11 октября 2009

В настоящее время я выбираю альтернативный язык JVM для портирования существующего настольного приложения Swing, написанного на Java 6. Учитывая, что JavaFX специально предназначается для такого рода приложений, может показаться, что мой лучший вариант - JavaFX Script .

Однако как насчет других видов приложений и библиотек? Будет ли JavaFX Script лучшим выбором для второго языка JVM?

В настоящее время кажется, что Scala является наиболее обсуждаемой альтернативой языку Java. В этом месяце (октябрь 2009 г.) он находится на позиции 34 в индексе TIOBE , а JavaFX Script - на позиции 44, а Clojure, Fan и Groovy - на позициях ниже 50.

Итак, какие у вас впечатления? На каком языке вы бы потратили свое время на изучение и использование (и почему), если предположить, что вы можете свободно выбирать язык для данного проекта для запуска в JVM?

Ответы [ 3 ]

3 голосов
/ 22 января 2011

Мой главный вопрос: почему вы портируете существующее приложение? Ответ на этот вопрос может дать вам некоторое представление о том, куда вы хотите отправиться.

Несколько кратких обзоров основных вариантов:

  • Scala , на мой взгляд, лучше Java, чем Java. Если вы хотите, чтобы язык, который вобрал в себя все лучшее, что есть в Java, добавляет много новых инноваций и возможностей, то он вполне может быть для вас.
  • Clojure - это удивительно хорошо разработанный язык, особенно если вы верите в будущее очень сложных параллельных приложений. Это также чрезвычайно продуктивно - я, вероятно, могу создать больше значения / час в Clojure, чем любой другой язык. Однако, если вы уже не знаете Лисп, он поначалу покажется вам незнакомым. Если вы хотите жить в авангарде, чтобы получить эти преимущества, Clojure вполне может быть для вас.
  • JavaFX script - имеет несколько очень приятных функций для проектирования графического интерфейса и явно поддерживает Sun / Oracle. С другой стороны, я не вижу, чтобы у этого массивного сцепления была за пределами этой области. Я бы посоветовал провести пробную поездку, чтобы проверить, отвечает ли она вашим потребностям.
  • Java - все еще должно быть в вашем списке! Если вы портируете по той причине, что код становится трудно поддерживать, тогда, возможно, сфокусированная фаза повторного факторинга, оставаясь на Java, может принести вам желаемые преимущества. На Java можно писать очень хорошие графические приложения.
  • Groovy - действительно хороший язык сценариев в JVM. Особенно хорошо, если вы хотите встроить функции сценариев в существующее приложение Java / JVM. Однако я не уверен, что выбрал бы его (пере) для составления полной заявки.
  • JRuby / Jython - не видел много такого сам, но слышал хорошие вещи. Вероятно, наиболее подходит, если вы обладаете навыками Ruby / Python в команде, но также хотите воспользоваться преимуществами платформы JVM.
2 голосов
/ 11 октября 2009

Лучший альтернативный язык и лучший язык в целом, IMO, это тот, который лучше всего позволяет вам написать программу в лучшей для вас модели.

Итак, если вы пишете приложение с графическим интерфейсом, то Scala может быть неправильным выбором, так как вы не отойдете от Swing.

Если JavaFX наилучшим образом соответствует вашим потребностям, используйте этот язык.

Если вы знаете LISP, тогда Clojure был бы хорошим выбором, но, как и в Scala, не для этой проблемы, это звучит так.

Если вы не знаете lisp и хотите / нуждаетесь в функциональном языке программирования, то Scala будет лучшим выбором.

По сути, нет единого языка, который был бы лучшим во всех ситуациях, он помогает узнать, что вы хотите сделать, и сильные / слабые стороны различных вариантов.

1 голос
/ 11 октября 2009

Все это звучит как хороший выбор. Вы можете добавить JRuby в список ...

...