Rubyの生みの親まつもとゆきひろさんインタビュー

2007年10月17日
Award on Rails審査員まつもとゆきひろさんに取材の機会をいただき、松江へ伺わせていただきました。
まつもとさんから最近の活動、Rubyの開発などいろいろな話をいただきましたので、第2回インタビューとして公開いたします!



■最近の活動について



--
昨年に続いてまつもとさんに作品審査をしていただくことになりました。
 1年前と比べてずいぶん忙しくなったと思いますが。
ええ。倍ぐらい忙しくなりました(笑)
去年の今ごろは月1回ぐらいの講演だったのが今は週1回ぐらい講演をしています。

--どのような内容の講演が多いのでしょうか。
Ruby関連、プログラミング関連、それとオープンソース関連の題材が中心ですね。

--今年からは楽天のフェローとしてのお仕事もしています。
3週間に1回ぐらいのペースで東京で打ち合わせしています。
私が関連しているテーマはスケーラビリティ周りです。
開発はRubyでプロトタイプの開発を進めていてどうしてもパフォーマンスが問題になる部分はCで開発してRubyでwrapすることも考えています。

楽天がRubyを採用したのはRubyが国産の技術であることが大きくて、「地方」「日本」といった部分にこだわりを持っているようです。

--最終的にどういうゴールになるのでしょうか。
私が関わる部分については最終成果物はオープンソース化するという約束をしています。
技術力をアピールするためには、技術があるだけでなく技術を生かしたプロダクトを出して、多くのエンジニアに使ってもらう必要がある。
そのためにはオープンソースで、ということで進めています。

--海外で活動されることは多いのでしょうか。
11月に開催されるRubyConfには毎年参加しています。
http://rubyconf.org/)
どんどん人数が増えてきていて、これまでずっとシングルトラックで開催していたのですが、今年はマルチトラックで開催します。


■Rubyの開発について


--
Ruby1.9の開発はいかがでしょうか。
予定通り今年のクリスマスにはリリース予定です。
ささだくん(ささだこういちさん)がリリースに向けてがんばってくれています。

--今はどのような部分の実装を行っているのですか?
Unicode周りの実装を行っています。

--Rubyの開発をはじめたきっかけは?
1993年ごろなんですが、当時すごく景気が悪かったんですね。
僕はソフトウェアハウスで働いていて社内のエンジニア支援をする仕事をしてたんですが、すごく暇になったんです。
で、作ってみようか、ということで開発を始めました。

--そこから実際作りきってリリースしてしまうのはすごいですね。
2月に開発を始めて8月に「Hello World」が動きました。
次の年の12月にアルファリリースしてメーリングリストを作って参加者だけにソースの場所を公開していました。
fjで公開したのはそのさらに1年後なのでトータル3年近くかかってます。

--それだけの期間モチベーションを維持するしつづけるのは大変では?
そんなに大変ではなかったです。
こつこつと作ってましたね。仕事が暇だった、というのもありますが(笑)

--「Hello World」からアルファリリースまでは?
次にガーベジコレクタ作ったんですね。
で、その次にソケット。ソケットの処理でintの32bit目をフラグとして使う必要があったんですが、rubyでは別の用途で32bit目を使っちゃってた。
どうしようかということでbignumを実装。動機が全然間違ってる(笑)
そんな感じで芋づる式にいろいろ実装を進めてました。

--他にrubyの開発で苦労させられたところは?
yaccというのは訳がわからなかったですね(笑)
rubyで実装したい文法とyaccが許可してくれる文法が違っていてどうやってyaccをごまかして処理させるのか・・・。
(yaccの説明:http://ja.wikipedia.org/wiki/Yacc

--他のLL系言語で意識している部分ってありますか?
動向をチェックしてはいるけど特に意識はしていないですね。

--ずっとプログラミング言語を作りたかったんですか?
高校生のころにはいつか作りたいと思ってました。
当時はCコンパイラが普通の人には手の届かない値段で、 でも、もっといい言語ができるんじゃないかと思っていました。

--どういう部分でしょう
まずサブルーチンに命名できない(笑)
あと、BASICに基本で実装されている手続きを自分で定義することができない。
システムが提供しているものと自分が定義できることの間に壁があったんです。それが許せなかった。

--その思いはRubyによく出ていますね。
BASICに対するアンチテーゼというか(笑)

--今後のRuby開発のテーマとしてはどうでしょうか。
今後のテーマはスケーラビリティになってくると思うんですね。
一つは楽天と取り組んでいるデータレベルでのスケーラビリティ。
あとはプログラム規模のスケーラビリティ。
100万行のコード、100人のチームとなってくるとある程度縛りが必要になってくる。
でも、Javaのようにあれもダメ、これもダメにはしたくない。

自分たちではクラスボックスとかセレクタリングスペースと呼んでいるんですがたとえば、今のRailsだと既存クラスのメソッドを置き換えたり追加したりしてますよね。
それってグローバルな影響を与えてしまうのでよくないことがある。
だから、その影響範囲を限定させられるようにしたいんです。
「あなたがIntegerクラス書き換えるのは勝手だけど僕に迷惑かけないでね」みたいな。

これまでRubyは自由にプログラミングできることが大事だったので、優先度は低かったんですが、これからはどうやって閉じ込めていくのかもテーマになってくるのかなぁ、と。

--そのあたりはRuby2.0で実現?
そうですね。
2.0以降の提供になるのでしょうが、実装は決まっていない。
全部のメソッド呼び出しに処理をかければ実装できるけど、それだとすべてのメソッド呼び出しが重くなってしまう。
そのあたりが考えられてから取り組むことになりますね。

--Rubyとは別に何か作りたい言語はありますか?
昔はRubyに似た言語で静的な型付けができる言語を作ってみたいと思ったことはあります。
でも最近のマシンはだいぶ処理が速くなっているので・・・。


■Webについて

--
Ruby on Railsが出たときはまつもとさんしてはどういう印象だったのでしょうか。
Web開発のフレームワークとして一番初めに出たわけでもなかったですし特に何かが突出していたというわけではなかったので「Yet another」という受け止め方をしていました。

--なるほど、ここまでRuby on Railsが広まったのはまつもとさんにとって
 結構意外なことだったんですね。

--JRubyについてはどうでしょう?
わくわくしながら見てます。冗談かと思いました(笑)
考える人はいてもまさかRailsが動くところまで持っていけるとは思ってませんでした。

--普段使っているWebサービスは?
GoogleとかWikipedia?(笑)
RSSリーダーはLivedoor Readerを使ってます。
あと、最近Remember the milkをやっと使えるようになってきました。

RSSリーダーのようにオンラインの時に使うと決めているサービスは問題ないのですが、タスク管理やメモだと移動中などオフライン環境でアクセスしたい状況が多いので、ネットに接続しているときしか使えない、というのはつらい。
オフライン環境でいかに動くかが重要ですね。



--それでは、優秀作品の発表をお願いします。


発表は表彰式にておこないます。
まつもとさんからソフトウェア開発をする人へのメッセージもいただいています。
作品を提出された方も残念ながらできなかった人もぜひ表彰式までご来場ください。
お待ちしております!


まつもとさんと仕事をしてみたい方はこちらから。
  ↓  ↓  ↓  ↓  ↓  ↓
 

「Award on Railsで人生が変わった」:株式会社万葉 大場寧子氏インタビューその1

2007年09月21日
Award on Rails運営委員長 今村庄一が、Railsエンジニアにインタビューをする
運営委員長のRailsエンジニア取調室


「Railsの開発現場って実際どうなの?」
「Railsエンジニアってどんな人なの?」

なかなか知ることができないRails開発の現場を、多少の脱線を含めて今村刑事長が楽しく取調べします。


第一回のゲストは、ウェブ家計簿アプリケーション小槌で Award on Rails2006大賞を受賞した大場寧子さんです。


ウェブ家計簿アプリケーション小槌


大場さんは Award on Rails2006大賞を受賞後に独立。
株式会社万葉の社長として、Railsをつかったウェブ系情報システムの構築・コンサルティングに携わっています。(参考:大場寧子氏プロフィール



■ プログラミングをはじめたきっかけ?プログラマ少女


今村: まず最初に、大場さんがプログラミングをはじめたきっかけを教えてください

大場氏(以下敬称略):父がPC98LTという、ラップトップのはしりみたいなパソコンを持っていたんですが、使えるソフトがほとんどなかったんですね。「無いなら作ろう」ということで、BASICで簡単なゲームを作ったのがはじめでした。

今村: どんなソフトをつくっていたんですか?

大場: 百人一首が好きなので、百人一首の下の句を表示して、上の句を当てるクイズソフトをつくっていました。当時はプログラミングをやっている女の子なんていなかったし、雑誌も読まなかったので、情報は何もなくて。APIマニュアルがお友達みたいな感じでした。

今村: ずっとBASICをやられていたんですか?

大場: 中高時代に一人だけ女の子で同好の士がいて、その子とBASICでプログラミングをして遊んだりしていました。

今村: 男同士ではけっこうそういう話はありますけど、女同士っていうのは珍しいですね。

大場: 女子高だったので(笑)高校時代にPC98LTが壊れて、大学に入ると同時にデスクトップパソコンを買ったんです。その時にQuick CとQuick BASICを購入してC言語を勉強しました。Cは分かるけど、オブジェクト指向はさっぱり…というところで1996年にジャストシステムに入社しました。


■ ジャストシステム時代?Javaエンジニアとして


今村: 当時のジャストシステムというと、まだベンチャー企業という感じだったんですか?

大場: いえ、同期も100人くらいいて、研修もしっかりした大企業でしたね。

今村: ジャストシステムではどんなお仕事をしていたんですか?

大場: C++からはいって、Javaのエンジニアとして働いていました。後半はXMLコンソーシアムにかかわっていた関連でXSLTをさわっていました。これが楽しくて。

今村: XSLTが楽しいというのには何か理由が?ドリコムのブログのシステムの中にもXSLTがあるんですが、これがなかなか難しくて…

大場: 書いていて気持ちがいいんですね。XSLTには制約が多くて、再帰だらけになるんです。それが奇麗に書けるととても気持ちがいい。「難しいことができた私すげー!」みたいな(笑)

今村: 完全にプログラマー志向ですね(笑)。そうそう、Java Worldに寄稿していたXML家計簿の記事を拝見したんですが。

大場: 当時、家計簿への記入をしやすくすれば続くかと思って、iモードで携帯から入れられるアプリを作ろうと思い立ちました。ちょうどXMLやXSLTに詳しくなっていたタイミングだったので、CGIでXMLとXSLTを活用した家計簿を作ったところ、上司がうまく紹介してくれて雑誌記事を書くことになりました。「モバイルコンピューティングとユビキタス通信研究会」にて論文まで書き、優秀論文に選出されました。その内容をジャストシステムのHPで公開することになり、SVGで円グラフを書く機能もつけたりしました。

 参考:XMLでつくる「iモード家計簿」
 http://www.justsystem.co.jp/ark/xml/index.html


今村: Award on Railsのエントリー作品も家計簿でしたが、やはり家計簿にはこだわりが?

大場: 続かないんですよ(笑)続かないのはなぜかっていうと、やはりツールが悪いんじゃないかと。私でも続く家計簿が欲しいということで作りました。


■ ベンチャー企業の開発責任者として?コードが書きたい!


今村: ジャストシステムの後はどういったことを?

大場: 業界に特化した業務アプリのASPや受託をJavaで行っているベンチャー企業に開発本部長として2001年に入社しまして、主にPM等に従事していました。はじめは分からないことだらけだっだんですが、やっていくうちに慣れていったというか。

今村: その時もプログラミングを?

大場: やっていましたね。開発本部長だったので会社からは「やるな!」と言われていたんですが、こっそり…みたいな。

今村: やっぱり根っからのプログラマですね。

大場: その会社ではマネージャーだったので、だんだんとコードを書けない状況に追い込まれていって。私はやっぱりコードを書くことが好きなので、「コードが書きたい」ということで2006年に退社しました。

その2へつづく
 

「Award on Railsで人生が変わった」:株式会社万葉 大場寧子氏インタビュー その2

2007年09月21日
■ Ruby on Railsとの出会い?家計簿、ふたたび

今村: Award on Railsに応募されたのはその頃だったんですか?

大場: そうですね。会社を辞めて、前からずっと気になっていた家計簿を「さあ作るぞ!」という感じで。家計簿をつくるポイントは貸し借り。我が家には私の財布、主人の財布、共通の財布と財布が3つあって、財布同士でいくら貸し借りがあったのか管理するのが面倒だったんです。その貸し借りを自動で管理できるシステムがどうしても欲しかったんです。

今村: 小槌はRoRで構築されていますが、慣れ親しんだJavaで作ろうとは考えなかったんですか?

大場: 私はミドルウェアやハードウェアには弱くて、主人が全部管理しているんです。もともと家計簿もJavaで作りたかったんですが、FreeBSD好きの主人が「FreeBSDでJavaの環境をつくるのは骨が折れる。作っても維持が大変だ。Rubyをやりなさい」ということで、Rubyの本を渡されました。はじめは嫌々だったんだけど、1日たつと「Rubyたのしー!」ってなっていました(笑)Award on Railsを見つけてエントリーを薦めたのも主人でした。


■ エンジニア夫妻の日常?「羨ましい」と今村が言った。


今村: ご主人とはどこで知り合われたんですか?

大場: (前述の)ベンチャー企業のときに、お手伝いをしにきてくれたのがきっかけで知り合いました。

今村: ご主人がハードウェア、大場さんがソフトウェアということで理想的な役割分担ですね。

大場: UNIXまわりでとても助かっています。主人はプログラミングもやるんですけど。

今村: ご主人はなぜ大場さんにRubyをすすめたんですか?

大場: もともとRubyをやっていたんです。今はJRubyの日本語化関連のライブラリについてコントリビュートしています。主人は英語が苦手なので、私が英訳したりもしています。「日本のエンジニアには、このライブラリが必要だから入れてくれ」とか

今村: なんというか、すごい補完関係ですね

大場: リビングには大きな机があって、その上にディスプレイ、足もとにはサーバーを置いてます。アーロンチェア・・と双璧を成すLeapチェア(笑)に座って、いつも二人でカタカタやっています。

今村: 羨ましい…(編集部注:今村はブログで嫁さがしができる「ヨメボード」をAward on Railsに向けて開発中である)

大場: 喧嘩なんかもだいぶ特殊だと思いますよ。せっかく実装したところへ「このプラグインを使うといいよ」「えーっ…(面倒だなぁ)(もう次の機能作りたいのに〜)」とか。たいていは主人の言う通りにすると上手くいくので従っていますけれど。現在は万葉のインフラまわりでアドバイスをもらっています。


■ 会社設立について?Railsの開発体制について


今村: 会社を設立されたきっかけについておしえてください

大場: 前職で、ベンチャー企業時代に、大学の後輩の女性をひとり会社に誘いまして、その人は事務兼テスターで入社したのですが、いつの間にかJavaエンジニアになっていました(笑)その人と「会社を作りたいね」みたいな話はしていたんです。ちょうど彼女が会社をやめることになったので、「このタイミングしかない」ということで、彼女を呼びだして「会社をつくろう!」といって作りました。

今村: いまはどんなお仕事をしているんですか?

大場: 伊藤忠商事さんの”Tラボ”の一員としてRailsの開発支援を行っています。Tラボは先進的な技術の活用部隊として組織されているもので、色々なWebアプリケーションを作っています。そこにアーキテクトとして参加しています。

今村: 「Railsで」というのには何か理由が?

大場: 当初はRailsというわけでもなかったのですが、私が入って「Railsでやろう」ということでやっています。2,3人のユニットが4グループで、Railsとしてはけっこう大所帯でやっています。

今村: 役割分担とかはどうやっているんですか?

大場: ユニットごとに割とViewよりとか、Modelよりといった感じで開発をしています。役割をきれいに切り分けているわけではありません。

今村: Railsの開発体制のスタンダードってまだまだ確立していないと思うんですけど、難しい点はありますか?

大場: Javaと比べてそんなに違いはないです。ソースレビューなど、コミュニケーションを密にとっていれば問題はありません。とはいえ、そういったコミュニケーションも含め、理想の状態には到達しておらず、まだまだ模索中です。


■ Rubyで幸せな開発を?制約が少なくてなんでもできる


今村: 今はコードを書いているんですか?

大場: やっています。すごく幸せですね。抽象化レイヤ作ったり、ライブラリ作ったり、メタプログラミングの嵐で「もう楽しー!」って感じで(笑)。コンテストの頃はRubyのモジュールを使いこなせていなくて、むしろRailsのフレームワークとしての良さに魅力を感じていたんですけれど、最近はだんだんとRubyの良さを発見してきて「おおRubyすごい」みたいな。

今村: 大場さんの考えるRubyの良いところは?

大場: 制約が少なくて何でもできるところですかね。Javaは制約が多くて、悔し涙をのんで色々書かなくてはいけないんですが、Rubyの場合だと制約が少なくて、不必要なコードを書かなくてもいい。効率がいいので、いっぱい作れて楽しいところが気に入っています。


■ さいごに?Award on Railsと今後について


今村: Award on Railsの大賞を受賞したあとに何か変わったことはありましたか?

大場: もちろん。「Award on Railsで人生が変わった」くらいです。これまでJavaの人だったのに、Rubyの文脈でお話ができるようになりました。パブリシティ効果も大きくて、最近はRailsの仕事ばかりです(笑)今度、島根大学で講演をすることになりました。

今村: 大場さんの今後についておしえてください。

大場: 良いと思っている技術をつかって人を幸せにできたらと思っています。今後しばらくはRailsをメインに扱っていきます。あと、コードを書けないくらいなら社長はほかの人にやってもらいたいですね(笑)

今村: ご主人は?

大場: それはリスク分散の意味でも…(笑)

今村: では、最後にAward on Rails参加者の皆さんにひとこと

大場: Awardに参加することで得られる経験は絶対無駄にならないと思います。身に付けたスキルや作ったサービスを活用していけるよう頑張ってください。



 今村からのメッセージ

本当にコーディングが大好き、という印象でした。
独立して社長業をやりながら、好きな開発をしている大場さんのような姿を
目指しているエンジニアの方も多いのではないでしょうか。
今年のAward on Railsも多くのエンジニアに新しいチャレンジの機会を
生み出せるコンテストにしたいです。


 インタビュアープロフィール:今村庄一
2004年ドリコム入社。
立命館大学との共同プロジェクトで検索エンジンの研究開発を行った後、
ドリコムキャリアサーチ、ドリコムジョブボード、ドリコムRSS、
ドリコムアカウントなどWebサービスの開発・運用を担当。
現在はドリコムジェネレーティッドメディアで求人関連サービスの開発責任者、
Award on Rails運営委員長を務める。
Rubyを使い出したのはRails登場以降でまだ1年半ほど。collect派。