CLOSE

Twitterの日本人エンジニアに聞く、世界に通用するハッカーになるには(全5記事)

「責任も伴うが、自由度もすごく高い」–ひげぽんこと蓑輪氏が語る、はてな時代のこと

Twitter社において日本人エンジニアとして活躍するひげぽんこと蓑輪太郎氏が、アイティメディア編集部(当時)の西村賢氏と対談。かつて はてな に在籍した理由や、その社風がエンジニア界にもたらすメリットなどについて語りました。

大企業から離れることに不安は無かった

西村:それで2002年にそういう趣味でOSの開発を始められて、2005年にはてなに転職されてますよね。この時はやっぱり、そろそろだっていう感じだったんですか。

蓑輪:そうですね。確か3年目4年目くらい。最初の会社の3年目4年目くらいで、よく言うじゃないですか。最初の3年ぐらいは辞めずにちゃんと1つ目の会社にいろ。それを結構間に受けていて、じゃあそろそろかなっていう。それで、はてなに入りました。

西村:やっぱWeb系がよかったんですか。

蓑輪:それよりもその当時、僕ははてなダイアリーとかはてなアンテナを使っていて、それを作っている会社が募集しているらしいというのを聞いて、見学に行ったのがキッカケです。

西村:リアルユーザで、ユーザとしても愛着みたいなものは持っていた。エンジニアにとってはやっぱり、今もそうですけど、はてなは日本のエンジニアにとっても大きな存在ですよね。

蓑輪:そうですね。

西村:でも何か、先程もちらっと収録前にお伺いしたんですけど、ソニー系のシステム開発子会社からはてなに行くって、親御さん嘆いたりしないんですかね。って言ったらはてなに失礼ですけど。

よく私、この業界取材しているとそういう方多いんですね。おじいちゃんも知っている立派な名前の会社から、ポっと出のTwitterとか……ポッと出って言ったら本当に失礼ですけど、でもなんかそう見えるわけじゃないですか。

蓑輪:いや、特にそれはなかったと思います。

西村:本人にもなかった。

蓑輪:そうですね、はい。好きなことやればいいんじゃない? みたいな感じ。

はてなの社内環境から学んだこと

西村:2005年はてなに入られて、大きく関わってらしたプロダクトがふたつあると思うんですが、1つがRSSリーダーのはてなRSS、もう1つが動画サービスのRimo。この辺、どういうプロダクトだったのかというところと、どう関わったのかというところをちょっと。

蓑輪:はてなRSSは本当に単純なRSSリーダーで、はてなのサービスとうまく連携する、例えばはてなRSSで読んでいる記事をすぐはてなブックマークできるとか、そういう機能があるようなRSSリーダーで、それはサービスディレクターとして関わっていました。最初は開発、その後ディレクターで、プロダクトをどう伸ばしていくかとか、デザインとかコーディングも全部やっていました。

Rimoの方はそれもディレクターというかクリエイターみたいな感じで。開発合宿で僕ともう1人の同僚とで考えて作ったサービスが社内でウケたので、それをローンチ、一緒に開発を継続していった。

それは、動画をものすごく簡単に見られるっていうサービスで、その当時YouTubeとかニコニコ動画を……今もありますけども、見ていて思ったのが結局、パソコンの前に居ないといろいろ困るよねって。

ニコニコ動画だったらコメントしなきゃいけないし、YouTubeだったら5分間の動画を見た後に次は何を見ようかクリックしなければならない、もしくは検索しなきゃいけない、って言うのがあったんですけど。

でもテレビとかって、ただゴロゴロ見ているだけじゃないですか。1回つけてリモコンでこうポチポチやってるだけなんですけど、それぐらい簡単に見られる動画サービスがあったらいいんじゃないかって言うコンセプトで作ったのがRimoですね。

西村:パッシブと言ったらアレですけど、あまり考えなくてもずっと見続けられる。どんどん向こうから出してくれる。Rimoはリモートのリモなんですか。

蓑輪:そうですね。

西村:まぁ結構それは最初のコンセプトから始まって実装まで全部やったっていう。はてなもやっぱそういう自由度というか裁量責任というか、大きいんですか。

蓑輪:そうですね。責任も伴いますが、自由度もすごく高いですね。手をあげてこれをやりたいって言って、それこそ社長の近藤を説得できれば、もう何でもできるって環境です。

西村:すごい些細な話のようなんですが、その時の開発はPerlだったりするんですか。

蓑輪:はてなRSSはPerlで、RimoはRailsでした。

西村:そうなんですか。

蓑輪:かなり特別な感じで。僕らが希望してRailsにしてます。

西村:その辺は何か。蓑輪さん自身、こだわりというか好き嫌いというか、何かあるんですか。

蓑輪:そうですね。Perlがあまり好きではなかったので、その頃流行り始めていた最新のRailsで作ってみたかったっていうのが大きいです。

西村:でもこの頃の開発現場の話をすると、Schemeとかを勉強されていた。

蓑輪:まだその頃はしていなかったかもしれない。

西村:結構OSもやられている一方で、言語処理系とかいわゆるコンピューターサイエンス的なところで、言語処理系をかなりやってらっしゃるって聞いたんですけども。そのへんって先程おっしゃった、エンジニアとしての長い目で見たときのスキルみたいなもの、言語やっとかなきゃなあ、みたいな感じのことを?

蓑輪:そうですね。それはすごくあって、それこそRubyのまつもとさんが「言語処理系やればいいんじゃない」って言うようなことを書いている記事を読んだこともありましたし、尊敬するハッカーの人たちが言語処理系に詳しい人たちが多かったので。

あとは先程ちょっと話にでたんですけど、僕は物理出身でコンピューターサイエンスを大学で学んでいなくて、そこがコンプレックス、というか弱点だったんですね。今も弱点なんですけど。

なので、そういったことを体系的に作りながら学べる題材として、言語処理系はすごいよかったかなと。先程例に出されていた、ハッシュテーブルを一度自分で実装してみるのと、本で読んでハッシュテーブルのオーダーはオーワンですって理解するのは、全然違う話なので。

ゼロから始めるか、既存のシステムに乗っかるか

西村:でもそこなんか、ちょっと話が微妙にずれますけど、選択肢として例えばRubyの開発に加わってみる、既存のものに乗ってみるのもあると思うんですけど。例えばSchemeだったら日本の開発者のGaucheっていう処理系を作ったすごいハッカーがいて、そこにあるわけじゃないですか。そこに加わるのと自分で始めるのと、そのバランスはどのように。

蓑輪:それも単純に好みの問題だと思うんですけど、僕は1から作るのが本当に好きで。なんでかっていうと、1から作ればおいしいところがいっぱい残ってるからなんです。

今からRubyの開発に参加するのも全然ありだと思うし、勉強にもなると思うんですけど、おいしいところはそんなに残ってないかなと。一番楽しい部分はまつもとさんがやられちゃった後だと思うので。

西村:そこは私、そのRubyの開発をやってらっしゃる方の話を聞いたことあるんですけど、Rubyが完成してると思っているのは全くの誤解で、やるべきことは山のようにあって、お金さえあればいくらでも、お金というか時間があればもっと開発できる。まあ両面ありますよね、ゼロから作る楽しさと。

結構、Schemeとかをゴリゴリやり始めたのは何年ぐらいなんですか?

蓑輪:Schemeやり始めたのは……

西村:Mona OSの後ですよね。

蓑輪:そうですね。未踏に採択された、2006年頃。

西村:未踏に採択されたっていうのは、未踏ソフトウェア創造事業に採択されたってことですね。プロジェクトの概要っていうのはMona OSではなく?

蓑輪:Mona OSにSchemeのシェルを作るっていうテーマ。

西村:その時にはまだ言語処理系はなかった。

蓑輪:なかったです。

西村:じゃあ、もともとシェルを作る目的があって、だったらSchemeでやりたいって言う。Moshって名前で。

蓑輪:それはまた後継のもので、その時はまだ名前のないただ普通のシェルで作ってました。

西村:ちなみにそれ完成?

蓑輪:一応完成したんですけどなんかいろいろ反省点があって、例えば選択したデザインがあまりよくなかったのでそんな早く動かなかったり。

もっとテクニカルにいうと、インタープリターを木をたどるようなインタープリターにしてしまって、VMにしなかったんですね。なのでやっぱり実行が遅くてそこがすごく気になったりとか。あとはシェルとしてのAPIデザインを初めてやったので、その辺がまずい設計がいろいろあったって反省があってその後、Moshって言う新しい物を作った。

西村:そのMoshは言語処理系であり、シェルにもなる。

蓑輪:なります。

Rubyを使ったシェルはなぜ登場しないのか

西村:ちょろっとしか使った事なくてわかってなかったんですけど、またディープな話なっちゃいますけど、興味がある方いらっしゃると思うのでちょっとその辺ももう少しお伺いしたいんですけども。Schemeを使ったシェルとか、Rubyを使ったシェルとか、必ず皆考えることで。シェル嫌ですよね、なんかいろいろ。なんで無いんですかね、未だに。

蓑輪:それは難しい。

西村:やられてたからこそ難しさがお分かりになってると思うんですけど。

蓑輪:根本的な問題は、すべてのOSにプリインストールされていないのが問題だと思っていて。本当のベーシックなシェルとかbashとかって、どのLinuxディストリビューションにもOS10にしても、下手したらWindowsにも後からいれれば簡単に入るような感じ。

なので、皆それを当てにしてシェルスクリプトが書けるんですけど、今から新しいRubyで動くシェルを作っても、それが例えばDebianに最初から入ってるかUbuntuに最初から入ってるかっていうと入ってなくて、じゃあそれ使えないよねって話になっちゃうのが一番の問題なのかな。

西村:でも何か最近だと、開発者の方でコマンドラインやってらっしゃる方はZシェルとか使ってらっしゃって、結局入れてるじゃないですか。シェルスクリプトと、開発者とかユーザとかが使うインタラクティブなシェルとは、ちょっとニュアンスが違うのかなって気がして。

インタラクティブな方だとパイプをつなげたり、またはxargsなんかオプションだとかややこしいですよね。もっとスッキリかけたら良いのになとか思ったりしますけど、その辺でも可能性無いですか。

蓑輪:もちろんあると思います。ただそのパイプとかの話はOSとしての思想の話なので、つまりLinuxとかUNIXの思想としての話なので、使わざるを得ないというか。インターフェースを変えても結局パイプっていうものはなくせないと思うので、その辺は若干は残ると思います。

続きを読むには会員登録
(無料)が必要です。

会員登録していただくと、すべての記事が制限なく閲覧でき、
著者フォローや記事の保存機能など、便利な機能がご利用いただけます。

無料会員登録

会員の方はこちら

関連タグ:

この記事のスピーカー

同じログの記事

コミュニティ情報

Brand Topics

Brand Topics

  • 大変な現場作業も「動画を撮るだけ」で一瞬で完了 労働者不足のインフラ管理を変える、急成長スタートアップの挑戦 

人気の記事

新着イベント

ログミーBusinessに
記事掲載しませんか?

イベント・インタビュー・対談 etc.

“編集しない編集”で、
スピーカーの「意図をそのまま」お届け!