インタビュー記事

interview

第5回 星一 氏

hoshi2_main

今回は、星一(ほしはじめ)さんにお話を伺いました。星さんは、Ruby用オープンソース・ゲームライブラリ「Star Ruby」の開発を手がけ、誰でも使いやすい2D描画エフェクトのライブラリを公開されるなど、Rubyの分野で積極的にご活躍されております。先日つくば国際会議場にて開催された「日本Ruby会議2008」にてStar Rubyのプレゼンをされるなど、注目は高まるばかりです。取材は、日本Ruby会議2008の初日、夕方の空時間に行いました。

※取材日は、2008年7月です。所属や役職などは当時のまま掲載しております。

川井: 今何歳なんですか?
星: 23歳、1985年生まれです。
川井: なるほど。ということは、年齢的に10歳でWindows95が出てきた感じですかね。
星: はい。Windows95が出たのは小学5年の時ですね。
川井: その前にコンピュータには触っていたんですか?
星: はい、触ってました。あんまり正確に覚えてないですけれども、小学3~4年の頃には家にありました。で、当時はWindowsは入ってなくて、N88-BASICで遊んでました。学校の図書館にプログラミング入門のBASICの本があったので、それを読んで独学しましたね。
川井: 小学校の図書館にそういうのがあったんですね。何でそんなものをまた読んだんですか?
星: いや~、興味引かれたからとしか言えないですけど。休み時間とか昼休みはずっとその本を読んで時間潰せましたね。
川井: 意味なんか最初は分からなかったんじゃないですか?
星: 全然分からなかったです。まず「代入」っていう言葉が分かりませんでした。あと、等式の右辺と左辺っていう意味もよく分かってなかったんですよ。憶測で、三角形の図形の左側の辺りと右側の辺りっていう意味なのかと思って、余計に理解出来なかったですね。やってたらそのうちわかるようになってきましたが。
川井: 周りにそういう人は結構いたんですか?
星: いや、僕だけでした(笑)
川井: (笑)じゃあみんな遊んでるのに、一人だけ昼も放課後も本読んで・・・
星: そうですね・・・いや放課後はさすがに読んでなかったです(笑)放課後は家でパソコンやってました。
川井: 放課後は家に帰ってパソコン、と。
星: そうですね、パソコンをやってました。ただ、ある日パソコンが壊れて、それを機に自然にしばらくやらなくなりましたね。
川井: そうですか。壊れなかったら、ずっとパソコンをやってたかもしれないんですね。
星: かもしれないですね。

川井: 他に趣味とか、子供の頃に遊んだこととかありますか?
星: ずっとスーパーファミコンのゲームで遊んでましたね。
川井: スーファミ?(笑)
星: スーファミです(笑)シムシティばかりやっていました。
川井: ゲームはスーファミで遊ぶのみで、パソコンではプログラミングのみで遊んでいたと。完全にコンピュータ漬けという感じですよね。
星: そうですね。
川井: じゃあ目悪くなるでしょう。
星: はい。小学校1年の時から目が悪くなって、小学校入る前までは1.5だったのが、小学校6年の時はもう0.1ぐらいになってましたね。
川井: ほぉ(笑)6年間のコンピュータ生活で視力が悪くなっていったと。
星: そうです(笑)
川井: なるほど。小学校の後はどういう感じになっていったんですか?
星: 中学生の時にファミコン禁止を食らって、しばらく勉強してて(笑)
川井: 禁止したのはお父さんですか?それともお母さんですか?
星: 両方ですね(笑)で、高校に入ったときにパソコンを買ってもらったんですよ。それでまたパソコンに戻ることになったんですね。
川井: 何を買ってもらったんですか?
星: 飯山電機(現:iiyama)の……当時はまあまあコストパフォーマンスが良かったマシンですね。今度はそこではプログラミングはやらなくて、RPGツクールっていうツールでゲームを作ってました。
川井: なるほど。子供の頃はゲームとプログラミングは別だったけど、ここで合体したんですね。
星: 小学校の時はスキルがなかったので、RPGを自分で作るっていう発想にはならなかったですね。本格的にやりたいと思ったのは高校の頃からでした。
川井: 高校になってみたら「やってみるか」と。
星: RPGツクールはプログラミングじゃないんですけど、性能が良くて色んなRPGを作れたので、のめりこんでました。でも、今思えばろくなのが出来なかったですね(笑)とても人様に見せられないようなものばかりで(笑)で、RPGツクールの情報を集めたサイトを作りたいと思ってプログラミングを再開しました。小学生の頃と同じく、本を読んでPHPやPerlを勉強してホームページを作ってました。
川井: 簡単でした?
星: 最初は相当苦しみました。Perlでコーディングした時、最後の改行1個がないばっかりに延々エラーになったとか、そういう些細なエラーで3時間ぐらい悩んだりしました。それでも楽しんでたんですけどね。3時間ぐらい格闘したけど、それでもバグが取れると楽しいですね。
川井: 何がきっかけで、苦しんだところから楽しんでいけるようになるんでしょう。最初は大変苦しかったんでしょ?どういったきっかけで開眼したんでしょうか。
星: やっぱり小さい成功を繰り返すことでしょうか。自分が好きになったものを、無理しないでちょっとずつ作っていって増やしていくのがいいかと。
川井: じゃあ、星さんは作りながら覚えていくタイプですね。教科書を一からじゃなくて、自分で作って必要な部分を調べてやっていくという。
星: そうですね。
川井: なるほど、それがいいんですよね。たまに致命的なところは抜けたりするんだけど、それはまたそれで覚えればいいわけですしね。私も中学の頃、大学の数学とかやってたときにそういう現象に陥るんですよね。いきなり中学生で微分積分の問題やったりするでしょ。足りないものが出てくる。で、数Ⅰ戻ったりとか。
星: 文法規則とかリファレンスとかだけだと絶対覚えられないじゃないですか。なので、行き当たりばったりでも書いたほうがいいと思うんですよね。で、先ほどの話に戻るんですが、しばらくしたらまた受験に専念しろと両親に禁止を食らって。未成年は欲望の歯止めが利かないので(笑)

川井: 真面目に勉強して、その後はどういう学部に行かれたんですか?
星: 横浜国大の電子情報工学科に行きました。ハードウェアとソフトウェアの両方をまんべんなく学びました。
川井: 両方ともやるっていうのは結構海外では多いらしいけど、国内ではあんまりいないんですよね。学校はまじめに行ってたんですか?
星: 卒業する程度にはまじめに行ってました。
川井: じゃあ、あんまり授業というよりは、好きなことをやっていたと。
星: パソコンで過ごしました。
川井: パソコン好きなんですね~(笑)
星: 正直、ハードウェアにはそんなに興味もてなくて、ずっとソフトばっかりやってました。
川井: 何ででしょうね。ものづくりはあまり好きじゃないとかですか?
星: ものづくりが嫌いっていうわけじゃないはずなんですけど、僕にはソフトウェアのほうがあってましたね。ソフトウェアって、作ってからのフィードバックが非常に早いじゃないですか。だから魅了されたんだと思います。
川井: なるほど。大学の頃はどんなことをやってたんですか?
星: プログラムでゲームを作りたいというのが小学生の頃から脈々と続いてて、いろんな言語を勉強したんですよ。C++ですとか、Delphiとか、Javaとか……で、どの言語にも利点もあるけど欠点もあって、欠点を見ると他の言語がうらやましくなるんですよね。それでつまみぐいみたいに他の言語も勉強していったという。で、今一番はまってるのはRubyですね。
川井: そういう経緯があって最後Rubyに行き着いたんですね。
星: そうです。
川井: それはやっぱり、他の言語の良いとこ取りをしていると。隣の芝生の青いところを出来るだけ取り込もうとしている言語だからというのがあるんですか?
星: そうですね。一番最初にRubyをやっちゃうと、逆にRubyの良さが理解されないかもしれないですね。
川井: 確かに。で、Rubyを始めたのはいつぐらいですか?
星: 大学2~3年ぐらいの時だと思うんですけど、実は先のRPGツクールというソフトが、私が高校生の時にはまた進化していて、Rubyでロジックが書けるようになってたんです。RPGツクールで自動生成されるロジックが全部Rubyで書かれていて、自分で全部制御できたんですよ。それでRubyを覚えたんです。
川井: それはいつごろの話ですか?
星: 2004年だから、4~5年前のことですね。
川井: 2004年っていうと、Ruby on Railsが出始めた頃ですよね。
星: RPGツクールを作った方が、先見の明があったというか、結構特殊な人だったんだと思います。当時、他のソフトでRubyを組み込んだものって一切なかったですしね。

川井: ところで、KBMJでアルバイトをしてましたよね。
星: バイトは、ネットの友達に「効率のいいバイトしないか?」と言われたのがきっかけで、始めてみました。
川井: ネットの友達は、元々KBMJにいた人ですか?
星: そうです。バイトしていた人で、その人に誘われてKBMJに入りました。
川井: それは、ネットのどういうところで知り合ったんでしょうか?
星: MSNコミュニティっていうネット上の集まりがあって、大学生の集まるコミュニティがあったんです。そこでオフ会なんかをやってて知り合ったんです。
川井: なるほど。それまではアルバイトをした経験はあったんですか?
星: コンビニで働いてました。大学1~2年の時ですね。この歳になってバイトを何もしていないのはどうかと思って(笑)、何でも良いからバイトやりたかったんですよ。これはこれで勉強になったと思います。
川井: どんなところが勉強になりましたか?
星: やっぱり、人と話すことですかね。今でもヘタクソですけども、まだマシになったんじゃないかと思います。
川井: コンビニですと、色んなお客さんがいますしね。お客さんと対等じゃないからややこしいですよね。ニコニコしなきゃいけないし、機嫌の悪い客が来ると怒られるし。
星: そうですね(笑)あと、こっちもミスをしてしまうことがあったりとか。温めちゃいけないものを温めちゃったり。それをどう冷静に対処するかとか、そういうのは結構勉強になりましたね(笑)
川井: なるほど、やばいですもんね(笑)
星: やばいですね。弁当に付いている醤油の袋が破裂するんですよ(笑)
川井: 剥がしてやらなくちゃいけないのをそのまま温めるから、ボーンといくわけだ(笑)
星: そこまで飛び散らなかったですけどね。燃えるぐらいです(笑)
川井: 昔、炭酸飲料を冷凍庫に入れたら爆発したけど、そんな感じですか?(笑)
星: それとはまた違うような気がしないでもないですけど(笑)

川井: バイトしながらでもコンピュータやってたんですよね。大学も含めて、パソコンは具体的にどんなことをやってたんでしょうか?
星: ゲームライブラリを作りたいというのがずっと続いていて・・・。
川井: ゲームライブラリっていうのは具体的にどういうものですか?
星: 例えばプリミティブなC言語とかRubyが与えられても何も出来ないわけですよね。だから、画像を表示するためのクラスや関数が提供されるのがライブラリですね。で、それを作りたいなと思っていて。ゲームを作りたいというのより、ゲームライブラリを作りたいというほうにだんだん移ってきて、幸いなことに似たようなスーファミ大好きな友達がいまして、その友達がライブラリを使ってくれてお互い影響しあいながら色んなものを作っていきました。
川井: 好きなゲームはありましたか?
星: FF(ファイナルファンタジー)ですね。あのシリーズはスーファミの頃(Ⅳ、Ⅴ、Ⅵ)が一番楽しかったですね。あとはゼルダの伝説とかですね。それもやっぱりスーファミのものばかりやってました。
川井: でも、ゲームそのものじゃなくて、ライブラリのほうにいっちゃうんですよね。
星: そうです、メタな方向(ゲーム自体ではなく、ゲームのプログラムや仕組み)に目が行っちゃうんですよ。自分はそういうのが好きなんだなって最近分かるようになりましたね。
川井: ソフト屋さんって感じじゃないのかもしれませんね。ソフトってユーザーに使ってもらって嬉しいっていう人が多いですけど。
星: ライブラリも階層が違うだけで、人に使ってもらって嬉しいのはありますけどね。開発者向けの開発という感じなんですよ。
川井: どちらかというと研究開発のほうですかね。
星: そうですね、開発スタイルとして、理論ガチガチに固めて進めるっていうのはあんまり好きじゃなくて、Rubyのまつもとさんも言ってましたけど、プログラマにとって楽しくあるべきだっていうのがあるじゃないですか。実際にプログラマにライブラリを使ってもらうのは一番重要だと思うんですよ。だから、ライブラリを作る場合も理論ガチガチじゃなくて、使ってもらって「これはいい」とか「これはだめ」とかフィードバックを得ることが一番良いと思います。
川井: 感性重視というわけですね。
星: そうですね。

川井: 大学卒業後は就職ではなく、大学院への道を選ばれたんですよね?
星: そうですね・・・当時まだ就職する気は全然無くて、自分がどういう方面で働くかっていうのは決められなくて、とりあえず「もっと勉強したい」と思って情報系の大学院を探しました。エンジニアになりたいっていうのはもちろんあったんですけど、具体的に何のエンジニアになりたいっていうのは決まってなくて。で、大学院に行ったんです。
川井: 勉強しながら見つけようということですね。
星: そうですね。正直言ってしまうと、周りに流されたっていうのもあるんですけどね(笑)最近、情報系の人は多いですからね。
川井: それで、東大(大学院)を選んだのは?
星: 創造情報っていう専攻のプレゼンテーションをされた平木先生っていう教授がいらっしゃったんですけど、それがメチャクチャうまかったんですよ。オーラが違うっていうか。それで、試験がプログラミングで、これはもしかして僕のやりたいことがやれるんじゃないかと思って、そこに入ることにしました。
川井: 難易度はどうでしたか?
星: そんな難しくないと思います。むしろ学部の受験のほうが大変なんじゃないかなと。ただ、学部の勉強よりも専門寄りなので、やっぱり独学でやり続けてる人じゃないと厳しいんじゃないかなとは思います。
川井: 一辺倒の授業聞いてただけじゃ駄目で結構深くやってないと難しいっていうことですね。
星: そうですね。一般教養だけじゃ駄目だと思います。
川井: なるほど。入ってみてどうでしたか?
星: 入ったらRubyの笹田耕一さんとかいらっしゃって、びっくりしました。後で確認したら書いてあったような気がしたんですけど、いらっしゃることを知らずに入って、それで知り合って、「Rubyでゲームライブラリとか作ってるんですよ」っていう話になって、いろいろアドバイスをいただきました。実はこれから修士研究なんですが、もしかしたらそのライブラリを使って修士研究をするかもしれないです。大学院でやってることですけども、新しい専攻だからだと思うんですが、「理論を勉強する」のも大事ですが、実際にバリバリとプログラミングをするという、そういうことに重きを置いた勉強をしています。
川井: それは学部の方針ですか?
星: 研究室の方針ですね。
川井: 笹田研究室に入っているんですか?
星: 違います。フロアは同じなんですけどね。
川井: 前の期待どおりに、やりたいこととか出来てる感じですか?
星: 期待以上ですね。自分の好きなようにやってる感じです。ここまでやらせてもらっていいのかなって感じです(笑)他の研究室とか聞くと、もっと論文をバリバリ読めとかっていうのがあるんですけどね。
川井: プログラミングに重視できるっていうのはいいですね。
星: そうですね。
川井: ずっと聞いてきてみると、スポーツは全然やってないようですが、実際はいかがですか?
星: やってないですね。苦手なんですよ。
川井: 完全にコンピュータ系なんですね。
星: そうですね。子供の頃は全然が運動出来なくって。でもパソコンは得意なほうだと思ったので、コンプレックスはあんまり感じませんでした。自分はこれがあるからいいやと思ったし。
川井: なるほどね、そう思えたらいいですよね。欲張ってあれもこれも出来ないかと思ってもあまり意味がないですからね。
星: まあ確かにそうですね。人にはそれぞれ出来不出来があるので、諦めが肝心だと思います。
川井: 賢いですね。
星: ありがとうございます。なんか、この歳でこんなこと語るのは偉そうなんですけどね(笑)
川井: いやいや、みんなそれが分からないから、その歳で変にプレッシャー感じたり、変に人に言われたことを真に受けたりして余計な悩みを抱えるんですよ。それが「はいはい、関係ないよー」って割り切れてると、いいと思いますけどね。
星: ありがとうございます。

川井: 会社選びは今一生懸命やっている最中ですか?
星: もうほとんど終わりました。
川井: 当然選んだのも、エンターテイメント系っていうかゲーム系っていうかですか?
星: 大手の外資に行きたかったんですね。そしたらどこも、立て続けにグループワークあたりで落ちてしまって……エンジニアとしての能力はあまり見られないままで終わってしまった気がします。それで、就職どうしようかなと思ってたら、とある大手コンテンツ系の会社さんからお話をいただいて、説明会あるからと誘われて行ったんです。その時に「うちの会社はエンジニアをとても大切にする会社です」という説明を受けて、感銘を受けたんですね。
川井: その担当者さんとはどうやって知り合ったんですか?
星: Ruby on Railsの勉強会の時ですね。たまたま撮影に来られてて、その時に知り合いました。今はそこに行こうかなと思っています。
川井: どんな試験があったんですか?
星: 最初に書くだけのエントリーがあって、その後にプログラム提出がありました。その時にRubyのゲームライブラリを提出したんですよ。その後、本当は面接が2回ある予定だったんですけど、1回免除いただきまして、いきなり最終面接でした。エンジニアの人もオープンな人が多くて、Twitterに社員さんの方がいらっしゃるんですよ。で、話をリアルタイムに聞いて、とてもいい会社だなと思いました。
川井: 楽しみですね。

川井: Ruby会議でプレゼンをするStar Rubyについて聞いてもよろしいですか?
星: 僕はスーファミが好きだったので、スーファミのような2Dグラフィックで豊富な描画エフェクトがあるライブラリが欲しかったんですよ。なおかつ、開発者にとってとても使いやすいものが。最初は独りよがりで作っていて、APIがどんどん変遷していったんですけど、一人で作ってると視野が狭いもので、その人にしか使えないものが出来ちゃうわけです。実際に他の人が必要としていない機能がいっぱいあったりとか、余計なものがあったんですね。で、友達がいてそのライブラリを使ってくれたんですけど、まあ色々文句を言ってくれるわけです。ありがたくそれを聞いて、また文句を言ってくれて、その人の言うとおり修正していきました。そうしたら、自分にとってはベストで、かつおそらく他の人にとっても良いであろうというものが出来ました。
川井: それは、「友達が一緒に作ってくれた」というよりは、「指摘をしてくれた」というだけですか?
星: そうです。コミッターは僕だけです(笑)本当はもっとコミッター欲しいんですけどね。
川井: オープンソースなんですよね?
星: はい、オープンソースです。友達には、もうちょっと宣伝というか、他の何も知らない人を惹きつける何かが必要だと言われました。プログラムも大事なんですけど、プロダクトを作ったら、そのプロダクトを使うためにチュートリアルとかドキュメントがいっぱい必要なんですよ。それが無いと誰も使ってくれないっていう。それの重要さをガンガン指摘されて、今後はそれに力を入れていこうと思ってます。
川井: これから作るんですか?それとも原型はあるんですか?
星: チュートリアルですか?まだ無いですね。
川井: いつぐらいまでに作りたいと思ってますか?
星: まだ時間がある大学院にいるうちにやりたいなと思ってます。
川井: 格好いいロゴとか出来てますか?
星: ロゴじゃないですけど、このフォントでこの大きさで書けばこのイメージになる・・・っていうのはありますが、正式なロゴはないですね。
川井: やっぱり、人を集めるにはそういうのも大事じゃないでしょうかね?
星: そうですね、デザインは重要ですね。プログラムがいくら優れてても、やっぱりそういうので不利な部分になってるのはあると思います。
川井: ネットの世界ってあくまで、中身は見つけてもらってからの世界で、「見つけてもらう」っていうのがいかに大事かっていうことですよね。意外と重要な入り口ですね。いいコンテンツがあっても発見されなければ誰にも読まれないっていうのがありますよね。
星: 確かにそうですね。あとやっぱり、僕はエンジニアの勉強会にいっぱい来てる人の知り合いは多分そんなに多くないほうだと思うんですけど、そういう人たちとの人脈も重要だなと思いますね。
川井: じゃあもうこの歳にしてプログラミング以外のものが難しいんだって気付いて取り組もうとしてるんですね。
星: そうです。
川井: 凄いですね。それを30歳になってもやらないで苦労してる人がいますから。そういう人たちは概して、30歳、35歳まで全くやらずにコーディングしかしないんですよ。そして35歳になって、「35歳だからリーダーやってください、マネージャーなってください」って言われても、「人と話しなんかしたことないです」「目を見て話すことも怖いです」みたいな状態から、いきなりリーダーなれとか予算管理しろって言われて出来ないですよね。それで苦労しちゃう。で、結局リーダーとか出来なくてまた現場に下ろされちゃう。そして、年寄りになって今度は気力、体力も落ちてきて・・・そういう苦労をしている人が多いんですよ。それをこの歳で気付くっていうのは、凄いことだと思いますね。
星: それでもまだ完全に気付いてないかもしれないです。プログラムは楽しくてはまりがちなので、ライブラリを使ってる友達に「もっと外に出ろ」とどんどん引っ張られてる感じです。
川井: あんまり今度プログラム以外のことに力が入っちゃうと、こっちのスキルが思うようにいかなくなったり、難しいですね・・・センスですかね。
星: そうですね、あとバランスだと思いますね。
川井: そのセンスやバランスが長けている人が成功するんでしょうね。でも周りに笹田さんみたいないろんな先輩がいるわけだし、いろんな意味でアドバイスをしてもらえるし、いいんじゃないですかね。
星: ありがとうございます。
川井: 楽しみですね。当面このStar Rubyを磨いていって、理想のゲームライブラリーを作っていくということですね。
星: フィードバックを得たら、その時ごとに考えるっていう感じですかね。
川井: もうちょっと突っ込むと、そのゲームライブラリの良し悪しって、「使いやすいかどうか」以外に、機能の面ではどうですか?
星: 機能でいうと僕の作ってるものは、実は最小公倍数的というか、DirectXみたいに何から何までいじれるライブラリよりは少ないんです。わざと少なくしてます。バラエティの豊富さよりも、僕は快適さのほうが重要だと思ってるんですね。快適さというのは、このメソッドを呼び出した時に、裏でどんな処理が行われて、どんな結果になるか、どんな状態になるかがすぐ分かることが重要だったんですよ。それが分からなくて、このメソッドを呼んで・・・ブラックボックスにメッセージ送ったけど何が起きたか分からないっていうのは、良くない設計だと思うんですね。そういう風にならないように気をつけました。
川井: じゃあ機能的とかよりは、効率的とか即時性とかそっちのほうに重点を置いたということですね。
星: そうです。なるべく内部状態を持たないようにするとかですね。ブラックボックスを無くしてシンプルに・・・ですね。
川井: 他のだとブラックボックスがあるんですね?
星: そこまで深く触ってないですけど、「この関数はどういう状況には呼んではいけない」だとか、そういう暗黙の了解みたいなのがあって。まあブラックボックスではないか。。。知らなきゃいけない知識が結構あったりして、そういうのを無くしたかったんですよ。
川井: 特殊な例外ルールとかローカルルールみたいなのが蔓延ってるってことなんですね。それは確かに使い勝手が悪いですよね。
星: そうですね。DirectXも初期化の順番とかあったりとか、「実はこういう時これが発生するからこうしなきゃいけない」とか、そういうルールがいっぱいあるんですね。DirectXも(以前と比べて)だいぶ簡単になったらしいんですけど、それでもまだ僕は複雑だと思います。そもそもC++自体が複雑ですからね。
川井: なるほど。よくわかりました。

川井: 他に将来やりたいこととかありますか?
星: もっとプログラムやゲーム開発の敷居を下げて、みんながゲームを作る世界にしたいっていうか、そういう隠れた夢がありますね。
川井: それはもっとみんなの身近にしたいっていうことですか?
星: そうです。
川井: それは今の延長っていうことですよね。今も使いやすいものとか、快適なものとか作ってますしね。
星: そうですね。描画が2D用に偏ってはいるんですけど、みんなが使いやすいものにしたいですね。
川井: その思想ってちょっと間違えると、開発者がいらない世の中を作りたいみたいなところもあるんじゃないですか?
星: そうではないですね。みんなが開発者になれる、っていうことを目指しています。
川井: 例えば今、HTMLが書けなくても簡単にWebサイトが作れますとか、テキストを書くだけでいろんなページが出来ちゃいます、みたいになってきてますよね? 昔だったらホームページってそんな簡単に誰も作れなかったですけど。それが、簡単に作れるように変わってきてるっていうのは、星さんの理想に近いのかもしれませんね。
星: どうでしょうね。その人がどういうレベルを要求してるかによると思うんですけど、単に面倒臭いから管理するサイトを作りたいという場合はXOOPSとかを使いますよね。もうちょっと細かくやりたいとかいう場合は、Ruby On Railsとか使いますよね。もちろんそういう段階はあると思うんですよ。その話をゲーム作りに置き換えた場合も、もちろん同じような工程が出てくると思うので、状況に応じて変えていけばいいと思いますね。
川井: 例えば、開発者の人がより便利にっていうよりは、普通の人でも作れちゃうようにしていきたいっていうことなんですよね?
星: そうですね。そういう意味ではRubyも相当プログラムの敷居を下げたと思うんですよね。
川井: プログラムをかじった人なら、誰が見ても意味が分かりますからね。他の言語とか見ると、何書いてあるのかさっぱり分からないことが往々にしてありますけど、Rubyはまだ分かりますよね。
星: Ruby会議の発表でもあったんですけど、東大生にRubyを使って情報科学を教えたっていう発表があったじゃないですか。それでも良く分かんない文法エラーが出たって“end”が足りないから出たっていう報告あったりとか……そういうところは、まだ頭のいい人でもプログラムは難しいもんだっていうのがありますよね。それの敷居をなんとか下げられないかなと思ってます。
川井: Rubyみたいなのを考えると、普通日本語で考えたものが勝手に自動的にプログラミングされるみたいな、そういう時代が来てもおかしくないんじゃないかと思っているんですけど、どうでしょう?
星: うーん、難しいです。日本語に近いプログラミング言語はあるんですけど、でもやっぱりプログラミング的な「お作法」の上で書かなきゃいけないので、自然言語で普通の文章を書いてそのまま・・・っていうのは相当先の話だと思います。
川井: でも最後はそこに行かないと一般人は使えないですね。
星: まあ、そうですね。難しいですね。
川井: 結構あれですね、みんなのためにみんなが使いやすい、作りやすい、快適な環境を・・・っていうコンセプトがあるんですね。
星: そうですね。
川井: でも、なんででしょう。星さんはプログラミング習得に際して、苦労はそんなにしてないですよね。自分が苦労したっていうのはありますか?
星: いやあ、苦労はした・・・かな?うーん、やっぱり不満点はあってそれを改善したいっていうのがあって、僕はこのライブラリに対してこういう不満点があるし、これはきっと他の人も同感だろうっていうのがやっぱりあって、その考えの下でライブラリを作ったんですよ。で、実際に好評価を得られてそのフィードバックが嬉しかったんですね。それがあったので苦労は感じませんでした。プログラムを作ってて一番嬉しいのは、僕は他の人に使ってもらってのフィードバックなんですよ。
川井: なるほど。それが「みんなのため」っていうモチベーションになっているという感じですね。
星: そうです。やっぱり技術をとことん追求する人は、凄くマニアックなことをしてそれが凄いんだっていう、それがフィードバックになってる人もいるんですけど、僕はどちらかっていうとそうじゃなくて、実際に使ってもらった人からフィードバックを得るのがいいなと思ってます。

川井: では最後に、プログラミングを楽しむためにはこうするといいよ、こう考えるといいよ、というメッセージをひとついただけますか。
星: 同じ趣味の友達を見つけて、その人と刺激しあいながらやるのが一番長く続くんじゃないかなと思います。例えばさっきの話みたいに自分の作ったライブラリを見てもらうとか。ペアプログラミングもいいですね。人間っていうのは、やっぱり自分のやったことに対してなんか外からフィードバックを得られないと、まったく面白くないわけです。同じ趣味の友達が二人いて、ペアプログラミングなりお互いのプログラムを見せ合ったりすると、お互い刺激になっていい循環が生まれると思うんですよ。そうするとお互いスキルが向上していくんじゃないかなと思います。
川井: これって、自分とそんなにレベルが違う人だと難しいと思うし、人を間違えても難しいと思うんですが、同じ趣味嗜好で比較的近いレベルの人っていうのは、どういうところに行くと見つかるんでしょうか。
星: やっぱり積極的にオフ会とか勉強会に行くのがいいんじゃないかなと思いますね。僕自身勉強会は実はそんなに行ってなくて、ライブラリを見てくれる友達もたまたま行ったオフ会で知り合った同じ趣味の友達だったんです。学校の生活よりも、インターネットのコミュニティに参加して探したほうが、同じ趣味で同じレベルの人は見つけやすいんじゃないかなと思います。
川井: わかりました。本日はどうもありがとうございました。
星: こちらこそありがとうございました。

<プロフィール>
1985年東京都生まれ
横浜国立大学電子情報工学科卒業、東京大学大学院情報理工学系研究科創造情報学専攻
Ruby用ゲームライブラリ「Star Ruby」開発、公開
http://www.starruby.info/ja/

LINEで送る
Pocket

TO TOP