下記の基準を考慮して、Python、Groovy、Rubyのどれを使用しますか?
客観的な比較は難しいと思います。私は個人的にPythonを好みます。いずれかの基準に対処するために、Pythonは最初から組み込み可能な言語として設計されました。非常に豊富なC APIを備えており、インタープリターはモジュール化されているため、Cから簡単に呼び出すことができます。 Javaがホスト環境である場合、Pythonの実装であるJava環境(VMおよびlibs)。
これら3つすべてを使用して、これは私が言えることです。
Python
ルビー
グルービー
水を濁すためだけに...
GroovyはJavaへのアクセスを提供します。 Javaには、API /ライブラリ、アプリケーションなどの非常に豊富なセットがあります。
Groovyは組み込み可能ですが、Javaで最も簡単です。
DLL /ライブラリ(Groovy/Java以外について話している場合)は、いくらか問題があるかもしれませんが、役立つ方法といくつかのAPIがあります。
私はいくつかのPython=プログラミングを実行しましたが、Javaに慣れているため、Groovyの方がずっと簡単になりました。
グルーヴィー?私はそれを拾っているところです。これを試してください(groovyconsole内で):
File.metaClass.invokeMethod = { String name, args ->
System.out.print ("Call to $name intercepted...");
File.metaClass.getMetaMethod(name, args).invoke(delegate, args);
}
new File("c:/temp").eachFile{
if (it.isFile()) println it.canonicalPath
}
最初のコードはAOPです。 Fileオブジェクトの任意のメソッドへの呼び出しはすべて傍受されます。追加のツールは必要ありません。これは、既存のJavaクラスに対して動的に実行されます。
2番目のブロックでは、 'f'クロージャーパラメーターを削除します。パラメータは1つだけなので、デフォルトでは、クロージャコンテキストで使用できる組み込みの「it」変数になります。
ここにあなたが得るものがあります:
「isFileへの呼び出しが傍受されました... C:\ temp\img.jpg」
等.
groovyを試してみてください。必要なすべての機能が備わっています。既存のJava libをそのクラスに変更を加えることなく使用できます。基本的に.. groovyはJava ++であり、(Rubyのように)よりダイナミックで楽しく学ぶことができます。
私はRubyまたはpython構文なので、後ろに置きます。GroovyはC/C++構文に似ているので、彼が好きですlol :)
Pythonには9つの基準があります。スコアは56です。
確かにRubyはすべてを持っていますPythonは持っています。ライブラリの数は少ないようです。したがって、51を獲得します。
Groovyにすべての機能があるかどうかはわかりません。
Pythonは56であり、Rubyは51であるため、PythonはRubyをほとんど使用していません。
しかし、私はこの種の決定がこれらの9つの基準外の主観的な問題にまで沸騰する可能性があると思います。
あなたの基準から、私はJRubyを選びます:
JVMがアクセスできるすべてのもの、つまりlot
優れた Monkeybars フレームワーク。これにより、GUIデザイナーでSwing GUIを設計し、クリーンRubyコードを使用して接続できます。
Rawr アプリを実行可能なjarとしてパッケージ化できます
Java共有ライブラリは簡単、Cは jna + libffi
スイングだけで動作します。 QtJambiを使用するのがいかに簡単かはわかりませんが、それは間違いなく可能です。
たくさん。 Rubyには優れたコミュニティがあります。
JVMが動作するすべての場所
すべてのRubyデータベースライブラリおよびすべてのJavaもの
ここでRubyはgroovyとpythonよりも確実に先導します。この言語は、早い段階でいくつかの本当に美しい設計決定を下しており、標準ライブラリの一貫性と能力に現れています。 ブロック 、特に、それを使用することを喜びにします。
このような機能ごとのスコアの追加は、プログラミング言語を選択する良い方法ではありません。あなたはあなたが一番よく知っているものを選ぶほうがいいでしょう。それらのいずれかを知らない場合は、しばらく試してみてください。本当に特定のプロジェクトを念頭に置いている場合は、一部のプログラミング言語の方が優れているかもしれませんが、一般的な好みがあるだけではコンセンサスに達しません。
とはいえ、Pythonは非常に柔軟性が高く、リストで最も人気があるため、検索することであらゆる種類の問題を解決するのが最も簡単なので、Pythonをお勧めします。
Perl?うわぁ。
誰かがPerlを観察したように、句読点の工場での大爆発のようなものです。その簡潔さはnot結果のコードが自己文書化されていない場合の利点です。
いくつかのユーティリティタスクにGroovyを使用しました。 Javaライブラリへのフルアクセス、およびクロージャを使用してディレクトリ内のファイルを一覧表示するなど、ライブラリへのいくつかのクールな追加機能:
// process all files printing out full name (. and .. auto excluded)
new File(basedir).eachFile{ f->
if (f.isFile()) println f.canonicalPath
}
私はそれがあなたのリストにないことを知っていますが、少なくともPerlを見てください。