【 ここから本文 】
[特集]Webブラウザ
ソーシャルブックマークに登録 :
印刷用ページの表示
【連載】
エンタープライズ・オープンソース[ベスト・セレクション]
第7回 開発言語
(2008年04月23日)
もともとコミュニティ・ベースで開発が進められてきたオープンソース・ソフトウェアだが、今や多くの有力ベンダーがサポートし、企業が安心して利用できる環境が整っている。もちろん、OS、Webサーバ、メール・サーバなど、一部の分野ではかなり以前から企業利用が進んでいたが、最近は多様な分野において、「エンタープライズ・オープンソース」が本格化しているのだ。本連載では、そうしたエンタープライズ・オープンソース・ソフトウェアを8分野に分け、それぞれの分野において特にすぐれたものを紹介する。第7回目となる本稿では、開発言語分野における秀逸なソフトを取り上げる。
Andrew Binstock/Steven Nunez
InfoWorld米国版
開発言語
Perl、PHP、Python、Ruby……開発言語に「最良」はあるか?
BOSSIEの選考にあたって、われわれは広範囲なアプリケーション開発グループを多数のサブカテゴリーに分類することから着手した。その時点では、そうすることが名案に思えたのだ。
その後、システム・レベルの開発言語をスクリプト言語と比較することが公平かどうか、また、個々のさまざまな言語をオープンソースと見なせるかどうかといったことを検討した。
PerlやPHP、Python、Ruby、Tcl/Tkなどがオープンソースの言語であることは明らかだが、JavaやJavaScriptもそうであるかどうかは定かではない。サブセットがオープンソースのリポジトリや、ISOないしECMA標準の要件を満たしていれば選考対象とすべきか、それとも完全にオープンソースでコミュニティ主導の開発サイクルを持つものだけを選ぶべきなのだろうか──。検討を重ねた結果、われわれは最終的に、自然言語にしろコンピュータ言語にしろ、特定用途以外で最良のものなど存在しないことに気がついた。そこで今回は、幅広く利用されているオープンソースの開発言語の中から、ニッチ市場を確立した言語を評価することにした。
Rubyの急成長と、JavaScriptの実績を評価
まず初めに、Rubyコミュニティの成長を牽引したWebアプリケーション・フレームワーク「Ruby on Rails」を称賛したい(画面1)。同フレームワークのベースとなるRubyは洗練されたオブジェクト指向のスクリプト言語で、クロージャなどの高度なプログラミング構造をサポートする。
| 画面1:オープンソースのWebアプリケーション開発プラットフォームとして人気を集めている「Ruby on Rails」。同プラットフォームは公式サイトから入手可能だ |
Rubyは2007年に大きく前進し、Javaで実装した処理系の「JRuby」をはじめ、Microsoftの動的言語ランタイム(DLR)の上に実装される「IronRuby」などの派生が登場した。これらの派生が言語の差異を招かないかぎり、Rubyは今後も数多くの開発者に受け入れられるだろう。
次に称賛するのが、長きにわたってWebクライアント開発のデファクト・スタンダードである「JavaScript(ECMAScript)」だ。代替となる他の選択肢も増えてきたが、インタラクティブな操作を実現するWebアプリケーションのユーザー・インタフェース開発では、依然としてJavaScriptが使用されており、Ajaxの基礎要素ともなっている。
JavaScriptは“オープンソース”?
JavaScriptは純粋なオープンソースと言えるだろうか。サブセットのECMAScriptだけを見れば、むろんそうだと答えられる。しかし現実には、クライアント・サイドのWebアプリケーションは通常、JavaScriptへのエクステンションと、個々のWebブラウザのDOM(Document Object Model)を使う必要がある。これはWebブラウザがオープンソースであろうとプロプライエタリであろうと同じだ。
純粋なスクリプトの記述には「Rhino」など、JavaScriptのオープンソース実装が利用できる。また、Java SE 6.0のリリース以降、JVM(Java仮想マシン)上で動作する新しいスクリプト言語が登場しつつある。すなわち、Javaスーパーセット「Groovy」や、複数のプログラミング哲学の機能を組み合わせた「Scala」、そしてJRubyなどである。
- 関連キーワード
- Ruby on Rails│ECMAScript│Rhino│オープンソース│ソフトウェア開発
- エンタープライズ・オープンソース[ベスト・セレクション]
- 第1回 業務アプリケーション
- 第2回 ネットワーク
- 第3回 プラットフォーム/ミドルウェア
- 第4回 セキュリティ
- 第5回 モニタリング
- 第6回 ストレージ管理
- 第7回 開発言語
- 第8回 開発ツール



