○利用者環境から見たRubyについて 〜スクリプト言語に対する誤解を解く〜 報告者: 法林浩之(ソニー) 最後のセッションとしてパネルディスカッションが行われました。このセッショ ンでは、Rubyを使った実用的なプログラムを紹介することにより、「スクリプト 言語は実用的でない」という誤解を解くことを目的としています。 ・SGmailの開発を中心に: 鴫原厚博(アサカ理研) SGmailは、鴫原さんがRuby/Tkで書かれたメーラです。開発の動機は、X11R6で動 くIMAP対応メーラを使いたいと思って探してみたところ、見当たらなかったので 自作することにしたとのことです。開発にあたり、候補となる言語としては C/C++, Tcl/Tk, Perl/Tk, Ruby/Tkがありましたが、日本語の入出力をきちんと 扱えること、socketを扱えること、GUIも容易に作成できることなどが理由で Ruby/Tkを選択されたとのことです。 実際にRuby/Tkを使ってみた感想としては、Tkとオブジェクト指向の親和性の良 さ、デバッグが短時間でできるので開発期間を短縮できる、実行速度も速い、な どを挙げておられました。また、RubyはよくPerlと比較されるが、それよりも Javaの対抗言語として考えたいと述べられました。 ・Meeting2000の開発を中心に: 松尾尚典(ForUs) Meeting2000は、会合(および宴会:-))の日程や場所の調整を支援するWebアプリ ケーションです。参加者が希望する日時や場所を入力し、幹事がそれを見て決定 します。これの開発言語にRubyを選択した理由は、CやJavaよりも開発効率が高 く、Perlなど他のスクリプト言語に比べてオブジェクト指向プログラミングとし ての出来が良いことです。実際に開発して、生産性の高さは予想通りでしたが、 それ以外に良かった点として、定義が動的にできることや制御構造がオブジェク トを返せることなどを挙げられました。 今後は、より一般的なWebベースのグループウェアを対象とするアプリケーショ ンサーバを開発し、その上にMeeting2000を載せたいとのことで、現在はそのグ ループウェアサーバのフレームワークを検討しておられるとのことです。また、 Ruby普及のためには、本などドキュメントの充実と、小さくても完結したアプリ ケーションをどんどん開発することが重要であると述べられました。 ・Rubyによる地球流体データの扱い: 後藤謙太郎(北海道大学) 「地球流体電脳倶楽部」という、地球流体データを扱うプロジェクトにおける Ruby利用の紹介です。このプロジェクトでは、膨大な地球流体データ(数100MB〜 1GBのファイル)を使った描画などを行っています。この中でRubyがもっとも活躍 しているのはプロトタイピングで、他の部分がFORTRANなどで構成されている中、 インタプリタ言語で手早く開発できる利点が生かされています。また、観測デー タの新たな書式をRubyで記述することや、DCL(地球科学用FORTRANライブラリ)の wrapperとクラスライブラリ化なども行っているとのことです。 ただし、データが大きいこともあって実行速度が遅いことと、地球流体データの 扱っていく上でFORTRANとの連携が欠かせないことが問題点で、それらをカバー するためにプログラミングにおいていろいろ工夫されているようです。 ・スクリプト言語の簡単講座: 木村浩一(キヤノン) スクリプト言語について議論する前に、スクリプト言語そのものについて木村さ んから簡単な解説をいただきました。木村さんによれば、スクリプト言語とは 「プログラムの先頭に『#! ....』と書いていい言語」だそうです。また、今後 のプログラミングは、パーツを作るシステム言語と、それを組み合わせるための スクリプティング言語という構成で行われるようになるだろうとのことです。 ・質疑応答 これまでの発表を踏まえて、参加者による討論が行われました。そのすべてを紹 介するには紙面が足りないので、印象に残ったいくつかの話題を紹介します。 1. スクリプト言語に対する誤解を解くには? 参加者から、「仕事で使うプログラムをRubyで開発しようとしても、それで十分 なものを開発できることを理解してもらえない」という体験談が報告されました。 言語としての性能はRubyも決して劣るものではないはずなのに、なぜそういうこ とになるのでしょうか。 これについて、Ruby作者のまつもとさんは以下のように分析されました。「会社 でシステム開発の主導権を握っている世代の人達が思い出すスクリプト言語は sedやawkである。これらの言語はUNIXコマンドと組み合わせて初めて力を発揮す る言語であり、それ自体は簡素な言語である。よって、今でもスクリプト言語で 実用的なアプリケーションを作ることはできないと思っているのではないか?」 PerlやRubyなどを単独で使った有用なアプリケーションをどんどん開発すること が、こうしたイメージを払拭するカギになりそうです。 2. Rubyを普及させるには 現状、RubyはJavaやPerlなどに比べて、まだまだ誰もが知っている言語とは言え ません。Rubyをもっと多くの人に使ってもらうためにはどうすればよいでしょう か。これについて、さまざまな意見や提案が出されました。 会場から出た意見の中で多かったものは、1つはRubyに関する解説書の出版です。 これについては、10月ごろ刊行されるとのことです。もう1つは、Rubyを簡単に 導入できるように、OSごとのバイナリやインストーラを用意することです。これ はまだ整備されているとは言えず、今後作業してくれる人を募って整備していこ うという話になりました。 また、一連の議論の中で、Rubyに関するプログラムを書く人とは別に、いわゆる 普及を進めるための活動(いわゆるマーケティング)のための人材が必要で、Ruby に限らずオープンソースのコミュニティにはこれが不足しているという意見があ りました。今後はこの方面を強化していくことも必要でしょう。 Rubyの普及にはまだたくさんの課題がありますが、例えばPerlも5年前は現在の Rubyと同じような状況であったと考えられるので、今後の展開次第ではPerlのよ うに普及するかもしれません。少なくとも、そうなる可能性を感じさせる素材の 良さを持った言語なので、これからの発展が楽しみです。