2013-04-22 8 views
-3

Есть ли язык на основе JVM, который полностью совместим с Java?Java-совместимый язык JVM

Почему такой язык может быть полезным:

  1. Существует существующий проект с большим количеством строк кода, написанных на Java, и команда хочет перейти на новый язык с минимальными усилиями. Не требуется перевода.
  2. Команда постепенно начинает использовать новые возможности нового языка. Некоторые программисты пишут в старом стиле Java. Другие используют язык полностью.
+4

Вы ищете какую-то мифическую Java ++, но вы даже не знаете, что делает Java ++, что делает ее лучше, чем Java? Проект должен переключать языки только в том случае, если преимущества нового языка перевешивают затраты на коммутацию, поэтому почему бы даже рассмотреть возможность переключения языков, пока вы не узнаете, что новый язык имеет преимущества? –

+5

Да, есть язык на основе JVM, полностью совместимый с Java. Это называется Java. –

+0

Groovy - это самый похожий язык для Java. –

ответ

1

Groovy, вероятно, лучший выбор. В большинстве (но не совсем всех) Java-код действителен Groovy-код.

4

У вас есть много хороших вариантов, я перечислю, что я считаю быть ведущим 4 варианта (с точки зрения технической зрелости, размеру сообщества и общей полезности):

  • Clojure: а JVM Лисп , подчеркивает динамизм и функциональное программирование. Большой сдвиг парадигмы, но очень мощный/продуктивный, если вы овладеете им.
  • Scala: Как Java ++ с функциональными функциями и мощной системой статического типа. Вероятно, самый продвинутый из новых языков JVM.
  • JRuby: Ruby для JVM. Отлично, если ваши разработчики имеют опыт работы с Ruby или вам нужно поместить Ruby-код в JVM.
  • Groovy: Очень похож на Java, но как динамический язык сценариев. Вероятно, самый простой способ узнать о четырех перечисленных здесь языках, поскольку он синтаксически очень похож на Java.

Все они «полностью совместимы» с Java в том смысле, что они могут работать на одной JVM и полностью использовать библиотеки Java/существующие базы кода.

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

+0

Я спрашиваю о языке, совместимом с Java, а не о совместимом с JVM языке. Компилятор Clojure не может скомпилировать Java-код (а также Scala, JRuby и Groovy) – ZhekaKozlov

+1

Если вы хотите, чтобы Java затем использовала Java, я думаю. Но нет ничего, чтобы остановить вас, имея один проект polyglot, который смешивает Java и один или несколько языков выше. Я делаю это все время (обычно Java + Clojure в том же проекте в Eclipse). Компилятор Java будет компилировать части Java, а компилятор Clojure будет компилировать части Clojure. – mikera

+0

Наконец-то я нашел язык, который в основном удовлетворяет моим требованиям. Это Xtend. Синтаксис очень близок к Java. – ZhekaKozlov

Смежные вопросы