先ごろ、Rick Hightower氏(source)はSunのJRubyサポートに関する意見をブログに投稿し、次のようなリクエストをした。
Sunにお願いしたいのは、JRubyのサポートをやめて欲しいということです。時間の無駄だと思います。そちらにかける費用をGroovyに回して下さい。GroovyのシンタックスはJavaと非常に親和性が高いものです。また、言語の発展を進めて欲しいと思いますし、Javaのシンタックスを壊すのはやめて下さい。それから、GroovyのまともなIDEツールを作って欲しいです。また、Javaを頻繁にいじるのは止めてください。Rickは、彼がSunにリクエストする理由をいくつか述べているが、シンタックスの問題も含まれている。
Rickは、シンタックスに加えてプログラミング言語の人気も考慮するべきだと述べ、JavaのほうがRubyよりもずっと人気があることを示すグラフを載せている。SunはJRubyを通してRubyに投資しています。残念です。GroovyはJavaに非常によく似ていて、とても始めやすい言語です。開発者がシンタックスのせいで苛立つこともありません。
Rubyに多額の投資をするべきではないもう一つの理由がこのグラフです。グラフの色の区別がわかりにくい方のために言っておくと、Rubyの人気は完全に最下位なんです。
Rubyは完全に最下位です。大変革が起きそうだったとしたら、すでに起こっていたでしょう。Rubyはちょっと古く不成功に終わると思います。そう思いませんか?
Java はC++やCに似ているから人気があります。C++はCに似ているから人気があります。C#はJavaに似ているから人気があります。このパターンを理解してください。Gosling氏のリードに従い、そしてGroovyのきちんとしたサポート(コードの完成やリファクタリング等)を追加して欲しいと思います。新しい言語機能がメインストリームになったときは/もしなったら、それからJavaに追加して下さい(あるいは、それが理にかなったものでなければ、追加しないで下さい)。
このような意見や提案を行ったため、Rickのブログにはたくさんの書き込みがあった。実際、この記事の執筆時点で50を超えるコメントが寄せられている。
コメントをよせた人の大部分は、プログラミング言語に選択肢があるのは良いことだと考えているようだ。
私は、我々には選択の余地があるべきだと思っています。ですから、JRubyの開発をやめるように依頼するのは私にとっては不当なことです。誤解しないで欲しいのですが、私はまだJRubyが好きではないですし、現時点ではGroovyを使っています。でも、JRubyもScalaも残しておいて欲しいのです。選択肢があるということは素晴らしいことです。
Michael Galpin氏(source)は、議論を異なる観点から見て投稿しています。特に、Scalaに投資することに価値がある理由を一つ述べています。
制御の抽象化を備えた言語には大きな可能性があります。Scalaはまさにそういった言語です。アクタ・モデルや何も共有しない(shared nothing)モデル、並列コンピューティングのためのメッセージベースの設計といったものの実装が、Scalaでは可能なのです。これはJavaではできません。Groobyだったら、多少はできますが、扱いにくいものになるでしょう。その理由は単純です。例えばクロージャを呼び出すメソッドを呼び出すオブジェクトがあったとして、Scalaでは、クロージャからオブジェクトに制御を戻すことが可能ですが、Groovyではメソッドにしか戻せません。 Groovyに組み込まれている特別な制御構造は、よくても制御の抽象化のいくつかの面を扱いにくくするでしょう。ブロガーのOla Bini氏(source)もRick Hightower氏とは意見が異なる。
私はJRubyは重要だと思います。というのは、Javaと同じ環境で実行できるのですが、Javaで発生する問題が起こらないからです。Ola氏は、彼がJavaに存在すると思っている問題点や、何故JRubyがよりよい選択であるのかを説明している。さらに、Michael Galpin氏はSunがJRubyに関心を持っている理由をこう述べている。
Sunは、新しい言語やプラットフォームを導入し、それを産業界のデファクト・スタンダードにすることがどれだけのものがかかるかを知っています。それは非常に困難で費用のかかることです。彼らは一度経験していますが、非常にコストがかかりました。Javaはずっと頂点に立ちつづけることはできません。彼らは、もう同じような苦労はしたくないと思っています。けれども、JRubyでRailsを取り込むことができれば、Railsアプリケーションをデプロイする最善の方法がJRubyとなり、今度は何もしなくても「頂点に立ちつづける」ことができるでしょう。彼らは、Railsコミュニティーがやってくれるのに任せているのです。
SunのJRuby支援に加え、NetBeans IDEのJRubyサポート機能の開発も行われている。その一方では、NetBeansでGroovyやGrailsをサポートする機能の開発も活発に行われていることにも言及しておかなければならない。実際、Martin Adamek氏(source)は、NetBeansでGroovyやGrailsをサポートするアップデートをブログ(source)で提供している。
さて、皆さんはどうお考えだろうか。JVMに様々な言語をサポートする余地はあるのだろうか?SunはGroovyを支援し、開発やツールのサポートを強化するべきなのだろうか?