【LL魂2007レポート:その2】

Ruby2.0からオレ様言語まで、軽量言語のお祭りが開催

2007/08/07

 日本初のハッカーとされる和田氏の講演(レポートその1)で幕を開けた軽量プログラミング言語の恒例イベント、「Lightweight Language Spirit」(LL魂)。レポート第2弾以降は各セッションからハイライトをお伝えする。すでに前編に書いたように、軽量プログラミング言語の最新情報や実用情報が目白押し、というイベントではなく、ギークなネタやジョークが満載の、いかに会場を沸かせるかを競うかのようなイベントだった。

Io、Clean、R言語、Luaのマイナー言語関連の発表

 最初のセッションは、Perl、Io、Clean、PHP、R言語、Python、Lua、Rubyの各言語の最新情報をまとめて報告する「Language Update」。Io、Clean、R言語、Luaなどマイナーな言語に関しては、近況報告というよりも、言語の概要と特徴を紹介するという感じだ。

ll201.jpg プログラミング言語「Io」の概要を発表する浜地慎一郎氏

 Ioについて発表した浜地慎一郎氏によれば、IoはJavaScriptのようにプロトタイププログラミングが可能なオブジェクト指向言語だという。多重継承やコルーチンなど近代的な機能を備える一方、その文法は「異様にシンプルで、キーワード(予約語)の数はゼロ」という。キーワード数を比較すると、Perlが180、C++が63、Rubyが40などとなっているところIoはゼロというから、ふつうではない。正直、記者には意味が分からなかったが演算子も含めて何でも定義できるということらしい。Ioは小型で高速とされるLuaよりも速く、実はゲームなどのジャンルで利用実績があるという。

ll202.jpg 際だったIoの特徴はキーワード(予約語)の数がゼロ(?)というところ
ll203.jpg Cleanについて発表するlethevert氏

 Cleanについて発表したのはlethevert氏。CleanはオランダのNijimegen大学で1984年から継続的に開発されている言語で、関数型言語のHaskellと良く似ているという。大阪府立大学生命環境科学研究科の樋口千洋氏が概要を発表したR言語は、ベル研究所が開発した「S言語」とLispの派生言語である「Schemeの」の文法を融合した言語という。ベクトル、配列、行列といったデータを容易に扱える統計処理に特化した言語で、対話式シェルで柔軟なデータ分析できるという。

ll204.jpg R言語について発表する大阪府立大学生命環境科学研究科の樋口千洋氏
ll205.jpg R言語の概要

 後に続いたセッションで「Luaがライバル」、「Luaより高速というのを目指した」と名指しされるLua言語は、マイナー言語の中では比較的メジャーな言語だ。World of Warcraft、ラグナロク・オンライン、Adobe Lightroomなどで採用されるなど認知度が高まっているという。産業技術総合研究所の上野豊氏によれば、言語仕様がコンパクトで高速、組み込みが容易であるほか、データ表現が柔軟という特徴があるという。「注釈付きの遺伝子データを表現するのにLuaを用いるとシンプルに書ける」。

ll206.jpg Perlの最新情報について発表する小飼弾氏

 Perlの最新情報を発表したのは小飼弾氏だ。期待されている次期バージョンのPerl6については、「年内にスケジュールが決定する」という段階で、まだ先のことになるようだ。10月に登場するバージョン5.10は「featureプラグマ」がサポートされるという。“プラグマ”とはコンパイラに対して動作を変更する指示を与えるもので、例えば新たに追加された「say」というCの「puts」に似た命令や、Cの「switch〜case」に相当する「given〜when」という制御構文は、featureプラグマを使って「use feature qw/say switch/;」などと明示的に宣言することで使えるようになる。

Ruby 2.0は最大500倍高速に

 Rubyについては、開発者のまつもとゆきひろ氏が「みんながよい子にしていれば、クリスマスにはマッツサンタさんがRuby 2.0を持ってきてくれます」とニコニコとRuby 2.0の新機能の数々を紹介。次期バージョンでの採用が決定しているRuby仮想マシン「YARV」(Yet Another Ruby VM)は、現在のまつもと氏作のVMに比べて「2〜500倍高速です」という。すさまじいパフォーマンスアップだ。さらにRuby 2.0では、一切のコンバートなしに多言語が扱える言語処理機能の強化、マルチコアCPUでコアを生かし切るためのOSネイティブスレッドのサポート、無限データ列を扱える遅延評価の導入など、すさまじい進化ぶりだ。

 極めつけは自動エラー修正機能だ。変数やメソッド名にタイプミスなどがあった場合、“もしかして”と正しい文字列を提示する、「もしかして機能」が実装されるという。

 もうお分かりだろう。まつもと氏と一緒に登壇したYARV開発者の笹田耕一氏がマイクを取ると、「YARVが500倍も速かったらCより速いじゃないですか」と、一連のRuby 2.0ネタがジョークだったことを暴露。Rubyぐらいメジャーな言語となると、LL魂参加者のほとんどはアップデートを必要としないのかもしれない。会場最前列で「そんな話は初耳だ!」と、いちばん最後までだまされていたのは間抜けな記者ぐらいだろうと思う。

ll207.jpg Rubyの最新情報について発表する、まつもとゆきひろ氏と笹田耕一氏

PHP、Pythonの最新アップデート

ll208.jpg 日本Pythonユーザ会の柴田淳氏

 まつもと氏のユーモアや、日本のコミュニティから生まれてきたという事情もあるのだろうか、日本ではRubyの認知度が高い。一方、Rubyと同じオブジェクト指向のLL言語というポジションは同じでも、日本でもう1つ普及が進まないのがPythonだ。Pythonの最新事情について発表した日本Pythonユーザ会の柴田淳氏によれば、Pythonを取り巻く環境は急速に変わってきているという。1つの動きは、かつてPerlが使われていたような場面でPythonが利用されるケースが増えており、中でもドリームワークスやピクサーといった映画制作会社のCG制作の現場では、Pythonの利用率がPerlのそれを抜いたという。高速な演算が求められる部分はCなどで実装し、そのレンダリングエンジンを使うアプリケーション自体はGUIを含めてPythonで書くというのだという。欧米を中心に普及が進んだPythonは、長らく日本語による情報が少なかった。そうした状況も、日本語によるPython関連本の、ちょっとした出版ブームで変わってきたという。

 今後のPythonのロードマップについては、2007年中にアルファ版がリリースされるPython 3.0とシンクロする形で、3.0系の機能をそのつど取り入れた2.x系バージョンが並行してリリースされるという。2008年から2009年にかけて3.x系への乗り換えが推奨されるが、柴田氏によれば、こうしたメジャーバージョンアップにおいても、高い後方互換性が確保されているのがPythonの特徴の1つという。

ll209.jpg 最近、発売された日本語によるPython関連書籍
ll210.jpg 今後のPythonの開発ロードマップ
ll211.jpg 日本PHPユーザーグループのSeiji Masugata氏

 最も利用が進んだLL言語の1つ、PHPについては日本PHPユーザーグループのSeiji Masugata氏が発表を行った。PHPの次期メジャーアップバージョン、PHP6では限定的ながら名前空間が使えるようになるという話や、RubyにおけるRuby on Railsに相当するZend Frameworkが、ついにバージョン1.0としてリリースされたというトピックを紹介した。これは記者の私見だが、PHPはメジャーで実用的ではあるものの、言語として特に先進的であったり際立った特徴があるわけではないため、どうも聴衆のアドレナリンレベルは“平時のそれ”という印象だった。バグとセキュリティパッチでいっぱいいっぱいの状態であることについても「PHPは叩かれる運命にある言語なんです」と話すMasugata氏の言葉が印象的だった。

 LL魂イベントレポートその3では、自分でプログラミング言語を開発した人々、必ずしもメジャーといえない人々にによる「オレ様言語の作りかた」のセッションをレポートする。

(@IT 西村賢)

情報をお寄せください:



@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)