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

「なぜ作ったのか?」、オレ様言語作った人々

2007/08/07

 軽量プログラミング言語の恒例イベント、「Lightweight Language Spirit」(LL魂)。レポート第3弾は、自らプログラミング言語を開発している人々によるセッション「オレ様言語の作り方」の模様をお伝えする。日本語で書けるプログラミング言語を開発した人、高校で教師生活を送る傍ら独自言語開発を楽しむ人など、それぞれの立場で「オレ様言語」に対する熱い思いを語った。

日本語でプログラムできる言語「なでしこ」

 「その当時好きだった女の子にひとこと、プログラミング言語を作ると言ったことが原因で作ることになった」。独自プログラミング言語「なでしこ」を作り始めたきっかけを冗談交じりにそう語るのは、酒徳峰章(クジラ飛行机)氏だ。事務処理の自動化を目的に、日本語によるプログラミングを可能にしたなでしこは、きわめてユニークな存在だ。文法はシンプルで難しい概念も出てこないが、ファイル処理、画像処理、ネットワーク、Excel連携などの命令を備える。

 自分で言語を開発して良かったと思えることはと聞かれた酒徳氏は、「日本語で開発したこと」と即答。確かに、きわめて可読性が高く、プログラムリストをパッと見た瞬間に全体が頭に入ってくるような印象がある。文法が単純で、しかも日本語。なでしこなら、プログラマでなくても、自分のニーズに合わせてちょこちょこと改変ができる。中学生が図書館の蔵書管理プログラムを作った例もある。英単語の羅列ではやる気にならないが、日本語だからできたという。

 言語を開発して失敗したと思えることはと聞かれた酒徳氏は、やはり「日本語で開発してしまったこと」と即答し、会場は笑いに包まれた。なでしこはIPAの未踏ソフトウェア創造事業の「未踏ユース」で2004年に採択された実績があるし、日本語を話す人には取っつきやすいプログラミング言語だと思うが、なかなかメジャーになるのは難しいようだ。酒徳氏自身は、なでしこヘビーユーザーで、もはや「なでしこなしでは生きていけない」と話す。

ll301.jpg なでしこによる日本語プログラムの例。「そうならば」の“そう”がPerlの“$_”に相当する。予約語を入れ替えて大阪弁に対応したバージョンもあるという
ll302.jpg なでしこではGUIプログラミングも容易にできるという
ll303.jpg 「日本語プログラミングがはびこる悪の帝国を作りたい――、コミッター募集中」と発表を締めくくった。

すでに似たようなものがあるのに、なぜ作るのか

 プログラミング言語を自分で開発する動機として達成感や勉強になるということがあるという。

 すでに誰かが考えたアルゴリズムを、自分でゼロから考えたり、すでに存在するプログラムをゼロから実装するのは時間の無駄だ。そうした考えから、一般的には「車輪の再発明は悪いこと」とされる。しかし、C言語に似た言語「Diksam」を開発する前橋和弥氏は、「車輪の再発明は勉強になる」という。セッションに参加したRuby作者のまつもと氏も、大学時代に作った過去の習作ともいうべき言語「Classic」を披露し、そのときの経験や知識がRubyに結び付いているという。「プログラミング言語を作るのは、一般の人が思うよりは難しくない」というまつもと氏だが、Classicの実装のときに初めて、言語開発で必須となる構文解析プログラムの使い方を理解したとも明かす。

 「こつこつ作ることに小さな達成感がある」と、作ること自体の楽しみを指摘するのは、「Sukuna」を開発する小原広之氏だ。高校で理科を教える傍ら、自身がファンであるというForthをベースにしたオブジェクト指向言語として開発している。「これは誰が使うんだろうかと思いながら3回も作り直しました」というライブラリは、ほとんど誰にも使ってもらえなかった。作ることが楽しいから、それでいいのだという。

 石橋立宣氏が開発する「Xtal」(クリスタル)は、意欲的なプログラミング言語だ。高速さが命のゲーム開発を想定して作成したXtalはC++との親和性が高く、実行速度も速いという。ガベージコレクタでの性能劣化を最小限に抑えるという目標も、ゲーム向けらしい。イテレータの採用などRubyを意識した近代的な言語仕様で、実装はC++による。石橋氏はデモンストレーションで「先ほど私のマシンではLuaより遅かったですが……、あっ、このマシンではXtalのほうが速いです。このマシン、いいマシンです」と、天然ぼけのような愛すべきキャラクターで会場を魅了していた。

ll304.jpg 左から順になでしこ開発者の酒徳峰章(クジラ飛行机)氏、Sukuna開発者の小原広之氏、Diksam開発者の前橋和弥氏
ll305.jpg Xtal(クリスタル)開発者の石橋立宣氏。ネーミングの由来は「Rubyのように宝石の名前にしたかった」からだそうだが、「最近はeXTreme Agile Languageと呼んでいます」という

プログラミング言語開発者は雑誌の編集長のようだ

 雑誌編集者出身の記者は、プログラミング言語と雑誌は似ているなと思った。雑誌というのは、雑多な興味を持った人が織りなす文字通り“雑”なネタが詰まったパッケージだが、本質的には編集長こそが雑誌そのものだ。ほかの商品同様に、雑誌もあらかじめマーケティングを行い、読者ターゲットを決めて設計するのが建前だが、多くの編集長や編集者は、自分が興味を引かれるもの、おもしろいと思うネタを拾って誌面を作る。その編集長のアンテナ感度に合う人が、世の中にどれだけいるかで雑誌の部数ポテンシャルは決まる。市場調査の結果やマーケティング理論を振りかざして雑誌の市場性を議論することはできるが、自分たちがおもしろいと感じないネタ、言い換えるとアンテナに引っかからないものを探してきて、それを形にして伝えることは難しい。

 Ruby作者のまつもと氏は、Rubyを開発するときの想定ユーザーは自分だという。「自分が使ってイライラしないものを作る」のだという。Rubyが普及しているというのは、まつもと氏の周波数に合うプログラマが世界中にたくさんいるということではないだろうか。

(@IT 西村賢)

情報をお寄せください:



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