Подтвердить что ты не робот

Что предлагает Мирах через JRuby, Groovy и Scala?

Что делает Mirah language в отношении JRuby, Groovy и Scala?

4b9b3361

Ответ 1

Согласно интервью с создателем Mirah, точка Mirah (что означает "рубин" на яванском языке) заключается в создании высокопроизводительного варианта Ruby. Достаточно Ruby-подобный синтаксис, чтобы сделать его удобным для работы, но все же достаточно близким к Java и JVM-семантике, чтобы он мог работать без накладных расходов большого слоя времени выполнения поверх JVM.

Цитата выбора:

Большая часть пользы Миры над подобными языками сводится к тому, чтобы быть таким легким. В Groovy, Scala, JRuby, Clojure или Jython, как только вы напишете "Hello, world", вы скопировали себя в библиотеку времени исполнения. В Mirah "Hello, world" так же краток, как и в JRuby, но имеет дополнительное преимущество, не навязывая вам никаких зависимостей; исходный файл входит, файл класса выходит, и это он. Я считаю, что JVM нужен новый язык без зависимости, а Mirah - моя попытка доставить его.

В то время как производительность JRuby конкурирует или превосходит другие интерпретаторы Ruby, самый быстрый код JRuby по-прежнему характеризует чистую производительность Java на порядок. Хотя вы можете ожидать, что производительность JRuby улучшится с выпуском версии 1.6, Mirah - это попытка пробить потолок производительности и предоставить возможность для программистов, которые ищут скорости выполнения наравне с Java-кодом.

Ответ 2

В отличие от полнофункциональных языков, которые поставляются со своими собственными библиотеками, Mirrah больше похож на другой "интерфейс" для библиотек Java.

Код Mirrah не зависит от его собственной среды (кроме компилятора Mirrah во время компиляции).

Это главное преимущество: другой синтаксис для Java.

Ответ 3

против. Groovy

  • Синтаксис, более знакомый существующим программистам Ruby/JRuby.
  • Статически напечатано

против. JRuby

  • Статически напечатано

против. Scala

  • Синтаксис, более знакомый существующим программистам Ruby/JRuby.

Основными преимуществами являются статическая типизация (более высокая производительность на JVM и гораздо более легкое взаимодействие с существующими библиотеками Java) и знакомый синтаксис (если вы пришли из Ruby).

Когда зависимости учитываются (например, при разработке приложения для Android), вы не должны позволять этому руководство выбирать язык. Использование инструмента, такого как Proguard, будет выравнивать игровое поле.

Если вы родом из Ruby, то Mirah - хороший выбор. Если вы приедете из Erlang или Haskell, вам понадобится Scala. Если вы LISPer, вам нужно взглянуть на Clojure.

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

и Groovy? Groovy почти никогда не является правильным выбором в настоящее время...

Ответ 4

Я использую Mirah каждый день в Google AppEngine.

Вот мои причины использовать Mirah:

  • нет библиотеки времени выполнения
  • очень хороший синтаксис
  • так же быстро, как Java

Также очень полезно использовать Java под капотом:

  • твердотельная система
  • хорошо документировано
  • известные решения для общих задач

Я сделал несколько Groovy, много JRuby и ни одного из Scala. Если вы это знаете, попробуйте Миру. Если нет, я бы пошел с JRuby.

Ответ 5

Mirah - еще один рубиновый синтаксис для java. ИМХО не очень хорошо. Он ничего не знает о дженериках, а также имеет плохую оснастку. Лучше попробуйте ceylon, xtend, scala, kotlin и т.д.
Mirah компилируется в классы java (а не источники). Xtend компилируется в java-источники и поэтому проще узнать, что он делает под капотом. Цейлон и scala имеют свои собственные stdlib (тем не менее java interop близок к совершенству в них обоих), не уверен в kotlin. Котлин является ребенком JetBrains и, таким образом, привязан к IDEA.
JRuby Мне тоже не нравится. В java-взаимодействии слишком много ошибок. И у него также слишком много заново изобретенных колес. Я имею в виду кодировки (он не использует строки java и регулярные выражения, но настраиваемые строки поверх буферов исходного байта), IO, обработка исключений, потоки и т.д.
Единственное преимущество jruby в том, что это рубин. Многие коды Ruby будут работать так, как есть. Groovy OTOH не изобретает колесо, использует хорошо протестированные java-библиотеки и просто добавляет синтаксический сахар тоже к ним. Также groovy -java interop отлично. Это может быть дженерики. Темы, исключения, строки, коллекции - это только классы Java, как в java.