質問

何をしますか ミラー言語 Jruby、Groovy、Scalaに提供しますか?

役に立ちましたか?

解決

によると ミラの作成者とのインタビュー ミラのポイント(これはジャワの「ルビー」を意味する)は、ルビーの高性能バリアントを作成することです。操作に快適にするのに十分なルビーのような構文ですが、JVMの上に大きなランタイムレイヤーのオーバーヘッドなしで実行できるように、JavaおよびJVMセマンティクスに十分に近いです。

選択の引用:

同様の言語に対するミラの利益の多くは、とても軽量であることにかかっています。 Groovy、Scala、Jruby、Clojure、またはJythonで、「Hello、World」と書く瞬間に、ランタイムライブラリに縛り付けました。ミラでは、「こんにちは、世界」はJrubyと同じように簡潔ですが、あなたに依存関係を押し付けないという追加の利点があります。ソースファイルが入り、クラスファイルが表示されます、それだけです。 JVMには新しい依存関係のない言語が必要であり、ミラはそれを提供しようとする私の試みです。

Jrubyのパフォーマンスは他のRuby通訳者に匹敵するかそれを超えていますが、最速のJrubyコードは依然として純粋なJavaのパフォーマンスを桁違いに遅らせています。 Jrubyのパフォーマンスが1.6リリースで改善することを期待できますが、Mirahはパフォーマンスの上限を突破し、Javaコードと同等の実行速度を探しているプログラマーにオプションを提供しようとします。

他のヒント

独自のライブラリが付属するフル機能の言語とは異なり、MirrahはJavaライブラリとは異なる「フロントエンド」に似ています。

Mirrah Codeは、それ自体の環境に依存しません(コンパイル時のMirrahコンパイラを除く)。

それが主な利点です。Javaの別の構文です。

vs.グルーヴィー

  • 既存のRuby/Jrubyプログラマーにより馴染みのある構文
  • 静的に入力されました

vs. jruby

  • 静的に入力されました

vs. Scala

  • 既存のRuby/Jrubyプログラマーにより馴染みのある構文

主な利点は静的タイピングです(JVMでのパフォーマンスの高速化と、既存のJavaライブラリとのはるかに簡単な相互作用)そしておなじみの構文(ルビーから来たら).

依存関係が考慮事項である場合(たとえば、Androidアプリの開発)そうすれば、これがあなたの言語の選択を導くべきではありません。 Proguardのようなツールを使用すると、競技場が平準化されます。

あなたがルビーから来ているなら、ミラは良い選択です。 ErlangまたはHaskellから来ている場合は、Scalaが必要です。あなたがリスパーなら、Clojureを見てみたいと思うでしょう。

あなたの唯一の以前の経験がJavaであるなら、あなたを恥じてください! - そして、おそらくScalaに行くべきです - Javaの相続人としての評判を急速に獲得しています。ツールサポートは現在強く、同じ移行を行った他の人の大規模なコミュニティにいるので、たくさんのブログ/があります/すでに利用可能なチュートリアル。

そしてグルーヴィー? Groovyは最近ではほとんど正しい選択ではありません...

Google Appengineで毎日Mirahを使用しています。

ミラを使用する私の理由は次のとおりです。

  • ランタイムライブラリはありません
  • とても素敵な構文
  • Javaと同じくらい速い

ボンネットの下にJavaを持つことも非常に役立ちます:

  • ソリッドタイプシステム
  • よく文書化されています
  • 一般的な問題の既知のソリューション

私はいくつかのグルーヴィー、たくさんのJruby、そしてScalaを何もしませんでした。これらを知っているなら、ミラを試してみてください。そうでない場合は、Jrubyと一緒に行きます。

ミラは、Javaのもう1つのRubyish構文です。私見はまったく良くありません。ジェネリックについては何も知らず、ツールが不十分です。 Ceylon、Xtend、Scala、Kotlinなどを試してみてください。
ミラーはJavaクラスにコンパイルします(ソースではなく)。 XtendはJavaソースにコンパイルされているので、フードの下で何をするかを見つけるのは非常に簡単です。 CeylonとScalaには独自のStdlibsがあります(それでもJava Interopは両方とも完璧に近いです)、Kotlinについてはわかりません。 KotlinはJetbrainsの子供であり、したがってアイデアに結びついています。
jruby私も好きではありません。 Java Interopのバグが多すぎます。また、再発明されたホイールが多すぎます。私はエンコーディング(Java文字列や正規表現ではなく、生のバイトバッファーの上にカスタム文字列を使用するのではなく)、iOS、例外処理、スレッドなどを意味します。
Jrubyの唯一の利点は、Rubyであることです。多くのRubyコードはそのまま機能します。
Groovy Otohはホイールを再発明せず、よくテストされたJavaライブラリを使用し、構文砂糖も追加します。また、Groovy-javaのインターロップも素晴らしいです。ジェネリックができます。スレッド、例外、文字列、コレクション - は、JavaのようにJavaクラスです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top