Rubyist Hotlinksにインスパイアされて始まったイベント『Rubyistめぐり』。第1回は高橋征義さんをゲストに迎えて、お話を聞きました。
パーソナルコンピュータとの出会い
藤村:こんばんは、藤村と申します。STORES のCTOをやっています。Rubyist Hotlinksをプログラミングを始めた頃にめっちゃ読んでて。
高橋:あれいいですよね。
藤村:いい。プログラマがどういう人たちなのか、なんとなくわかるみたいな、めっちゃ好きなコンテンツだったんですよ。で、ある日、これをもっとやった方がいいと思ったので、弊社でもやってみようとなったのがこのRubyistめぐりですね。ということで第一回は高橋会長に来ていただきました。なぜかというと、この STORES を手伝ってくださっているからというところでございます。
高橋:その話はあんまり外でしてないので、あらかじめお話しておきますと STORES さんの方で2年くらい前からちょっとお仕事を手伝わせていただいておりまして。そのご縁があったんだけど、お仕事の内容とはあまり関係がなく、Rubyの話をしてくれということなのでやってまいりました。よろしくお願いいたします。
(拍手)
高橋:STORES さんの会社に来るのは今日が初めてなんですよ。
藤村:ですよね。
高橋:今はずっとフルリモートみたいな感じでお手伝いしてたので。最初に声がかかったのは、Coubicさんだった頃で、heyさんの頃には一回も来ず。
藤村:hey時代がスキップされてたわけですね。
高橋:どういうふうに話していきますかね?
藤村:質問リストを持っていて、そこから順番に話し始めるとあとはいろんな話が出てくるのだろうと思っております。
高橋:私はRuby年表をGitHubのページに作っていまして。これは25周年ぐらいの時に作ったやつなんですけど、最近30周年なので更新して、それのプリントアウトを持ってきたのと、あと自分の個人年表みたいなものも持ってきました。
藤村:まず、物心がついてコンピュータと出会うまでの間、高橋さんは何をしてましたか?
高橋:コンピュータは小学校の頃に父が『マイコン入門』っていうNHKの番組がありまして、そのテキストを買ってきたところから始まった感じですね。
藤村:家にパーソナルコンピュータはあったんですか?
高橋:家にはなかったです。コンピュータがない時代がしばらく続くんですよ。高校ぐらいまでは自分でパソコンを持ってなくて。だから、人の家に行って借りたりとか、昔は電気屋にパソコンが置いてあって、勝手に叩かせてBASICとかをいじらせてもらうみたいなことがありまして。触ったことがあったぐらいな感じですね。
藤村:なるほど。高校ぐらいまでもそういう感じで?
高橋:まともにプログラミングとかしてなくて、なんとなくこういうふうに書けば動くものなんだなという理解があったくらいです。
藤村:その頃ってプログラミング言語はBASICですか?
高橋:基本はBASICでしたよね。
藤村:苦笑みたいなのが、僕の不見識をぜひ笑い物にしていただければと思います。
高橋:BASICかマシン語、アセンブリー言語しかないんじゃないですかね…そうでもないのかな。*1
藤村:最近関係ないんですけど、80年代の天才プログラマーのインタビュー集(『実録!天才プログラマー』)を読んでいたら、ビル・ゲイツがBASICの作者として載ってて。そうだよね、その頃ってそういう扱いなんだよねって思ったんですよね。
高橋:いやー、でもビル・ゲイツがBASICの作者と言われると…。*2
藤村:なるほど。それは、それでたくさん聞いてみたいですけど。
高橋:私もあまりよく知らないので。
大学生の頃に興味があったものは?
藤村:それで、大学はコンピュータ関係に?
高橋:大学は北海道大学にいまして、理I系、理II系、理II系という系に入る感じになっていて、入学時点では学部すら決まってないんですね。私は理Iに入りました。理Iから理IIIそれぞれ2人ずつ文学部に行ける枠があって、それを狙って文転するかって。文学部の行動科学科、いわゆる認知心理学をやってる学科があって。『LISPで学ぶ認知心理学』を書いた安西祐一郎さんが、昔そこで先生をやっていたらしいという話を聞いて、行動科学に入ればいいかなと思ったんですよ。それが決まるのが2年生の前期が終わったタイミングで、そこで大失敗をして。大失敗というか成績はよかったんですよ!よかったんだけれど、その年に限って成績のいい2人が先にその枠を取ってしまったので、しょうがないからと工学部の情報工学科に入りました。
藤村:偶然といえば偶然みたいな。
高橋:そうなんですよ。それがなかったら今頃文系になっていましたね。
藤村:それで大学でプログラミングとコンピュータを真面目にやり始めて、なるほどとなった?
高橋:それ以前にも初めて自分用のコンピュータができたのは高校の頃で、FM-NEW7ですかね。富士通の68系のやつで、まあまあみたいな感じです。
藤村:その頃のパーソナルコンピュータって何ができるんですか?
高橋:基本的にゲームしかできないんじゃないかな…。入門書とかでもだいたいみんなゲームを作りましょうみたいな話になってて。仕事でなんとかみたいな話が出たのは、80年代後半ぐらいからPC-9801が広まってきて、それは仕事で使えるのでは*3みたいな感じになっていたと思います。
藤村:なるほどな。それで大学で勉強をし始めて、面白かったですか?
高橋:面白かったですね。
藤村:大学生の頃って、それ以外にはどんなことに興味があったんですか?
高橋:大学の頃はサークルに入ってました。推理小説研究会というのと、SF研究会、サークルじゃないんですけど新入生歓迎実行委員会。だいたいそれぞれに週一とかで行っていると、勉強とそれで一週間が過ぎてましたね。あとは天文同好会もですね、その4つです。
藤村:僕がどんどん聞きたいことを聞く感じになっているんですけど、本って真面目に読み始めたのはいつ頃からでしたか?
高橋:推理研とSF研に入ってからです。
藤村:そうなんですね。
高橋:その頃の推理研は毎週例会があって課題本が出てたんですよ。ミステリーが1冊、SFが1冊。なんで推理研でSFが出てくるのかはわからないんですけど、毎週1冊ずつ出るのでさすがにみんな全員は読めないんですよね。それでも何人か読んでくる人がいるので、読んできた人がああでもないこうでもないと喋って、他の人もそれを受けていろいろ喋るという会があったんですね。それだけ自分が読むのは一部だけでも1年間で100冊の話が出るわけで、それを6年間もやっていれば、いろいろわかってくるという感じでしたね。
藤村:なるほどなぁ。
高橋:他にはSF研ではサークルの会誌があって、それに掲載する本のレビューを書かされるんですよね。で、書くためには読むじゃないですか。読んで書いてみたいなことをやってるとだいぶわかってくる感じがしました。
藤村:特徴的だなと思ったのが、自分と本というよりも、第三者がいる本の読み方のスタートなのかなって。
高橋:そうですね。
藤村:僕とかは一人でひたすら読むタイプだったので。
高橋:本を読むのと、本を紹介するのは全然違う技能になっておりまして、紹介することを頑張っていた*4大学の4年間+修士の2年間が今になって生きていますね。
藤村:本を紹介するトレーニングを若い頃に積んでる人はそんなにいないっていう感じですよね。大学生の頃に戻るとコンピュータの学部、計算機の学部に入ることになり、修士もコンピュータですよね?
高橋:はい。そのまま大学院に移ったみたいな感じです。
藤村:当時って何が流行ってたんですか?
高橋:ICOT*5の第5世代コンピューティングっていうプロジェクトがありまして。今でこそまた流行ってる人工知能ですよね。日本も一発当てるぞってすごいお金を突っ込んでいろいろやってた感じですね。
藤村:高橋さんもそこら辺をやってたんですか?
高橋:でも80年代と90年代にまたがって、約10年間ICOTはやってたんで、大体終わってた頃ですね。
藤村:高橋さんは大学院の勉強って何かテーマがあったんですか?
高橋:大学院は言語情報工学講座っていうところにいて、「言語」なんですけど、2つあって自然言語とコンピューター言語のどっちかに分かれていて。私は自然言語処理の方でした。コンピュータ言語の方は、隣で分散オブジェクト環境を作ってたりという雰囲気でしたね。
修了後、インターネットの会社に就職
藤村:そして学問を修め、社会に出ていくために就活みたいなものをしたんですか?
高橋:1995年、私が修士1年の頃に高校時代の友達が会社を作るといって、じゃあなんか手伝うよと話をしてて。修士2年の頃もその会社が残っていたので、卒業したらその会社に入りました。なのでまともに就職活動はしていないです。
藤村:そこはソフトウェアの会社だったってことなんですか?
高橋:インターネットの会社だったんですよ。
藤村:インターネットがここで登場するわけですね。
高橋:1995年、96年にインターネットの会社って基本的に日本にはぜんぜん存在しないんですね。まだインターネットがそもそも金になるかどうかわからんみたいな頃で、今みたいにスタートアップでブイブイ言わせるみたいな流れもVCとかも全然なくて。そういうのがなかった頃になんかよくわからないけど、電機メーカーやソフトハウスではなく変な会社に行くやつがいると思われてましたね。
藤村:その頃のインターネットにYahooはありました?
高橋:Yahooはありました。
藤村:ディレクトリ型の検索をしていく感じでしたよね。
高橋:インターネットサーフィンとかっていう。「Yahooにはサーファーっていう人がいるらしいよ!」「へぇー」みたいな感じだったんですけど。我々はそういうのは気にしないでみんなで日記を書いていた。隣の講座で日記リンクスに登録されているやつがいるぞみたいな話をしてた。
藤村:その会社は何かインターネットで作るみたいな感じだったんですか?
高橋:Webをやりましょう、世の中に最近できたWebっていうのをやると一発当たるのでは?みたいな。Webというかホームページですね。
藤村:なるほど。じゃあそこがWebとの出会いだったんですね。
高橋:Webとの出会いは大学の頃、1994年にリムネットやベッコアメなどのインターネットプロバイダーというのが日本に誕生しました。私が修士の頃ですかね。その頃に自分でもホームページを作ってみるかと、大学の講座のサーバというかワークステーションが余っていたので、そこにちょっとホームページっぽいものを勝手に置いてたのが1994年から95年にかけてという感じですね。
藤村:その頃から今と比べると、このWebという業界に蓄積された技術の量を考えるとすごいものがありますよね。
高橋:本当に全然別の世界で。そういう意味ではWebのほぼほぼ黎明期からずっとやっていたのは自分にとってはすごいプラスになっているというか、良い経験になっている気がしますね。
藤村:その頃ってHTMLページをアップロードしてサーバで撒くよりも、もっと一歩進んだバックエンドシステムみたいなのがあったんですか?
高橋:あー、その辺りってどこまで知ってますか?
藤村:僕はマジでわからないです。
高橋:そうなんですね。初めて触ってみたのはいつ頃ですか?
藤村:2005年とか?
高橋:なるほど!もうWeb2.0の時代ですね。
藤村:バックエンドで何か動いてるみたいな、それぐらいの時代ですね。
高橋:それまでのWebの話っていうのがあって…
藤村:それが聞きたかったんですよ。
高橋:2000年代初期までのインターネットは基本的にCGIっていうのがあるんですよ。CGIはみなさんご存知ですか?
(一同笑)
高橋:最近だと知らない人もいっぱいいますよね。CGIはリクエストを標準入力として受け付けて、標準出力から入ったやつをHTMLとして吐き出すっていう超単純なプロセスをリクエストがあるたびに立ち上げる仕組みで。これを当時はPerlを使って書くか、あるいはシェルスクリプトとかCとかで書く。自分でやりたいことをイチから書くみたいな感じでやっていて、ほとんど素人っぽかったですよね。素人がよくわからないなりに、プログラムっぽいものを作っていたので、できるプログラムも素人が書いたスパゲッティみたいなやつばかりでした。でもまあみんなこれを使っていました。
2000年代を過ぎたぐらいからは、業務系のプログラマがWebに入ってきて、この人たちはだいたいJavaに流れていきました。Javaでサーブレットプログラミングですね。この人たちは業務系なので、それまでの業務系プログラミングの流れを踏まえていて、逆にインターネットっぽくない感じでやっていたらしいです。私は業務系プログラマーではなかったのでよく知らないんですけど、そんな感じの話を聞いています。
それとは別に、Unixハッカーというのが世の中にいて、この人たちは2000年になる前からずっとインターネットにいたんですけど、あんまりこういうのは作って広めたりはしてなかった印象です。どちらかというと、こういうのに使われるWebサーバを作ったり、システム管理やDNS周りのネットワークのプログラミングをやっていて、だから基本的にはインフラエンジニアみたいな感じになっていった感じですかね。
藤村:なるほど。いわゆるWeb系みたいなのってCGIの潮流なんですかね?
高橋:私の印象ではCGI系と業務系の両方が合わさった感じで、Web系っていうのができるんですよ。私はCGIの方から来たので業務系の作法がよくわからなくて大変でした。業務系と出会うのは2005年、2006年以降ですね。
藤村:僕この2005年、2006年が仕事でプログラミングを始めた頃で、Javaっていう最新の技術があって、オブジェクト指向っていうすごいテクニックが使われてるらしいっていうのを聞いて、めちゃくちゃ難しそうって思ってましたね。
高橋:Javaはむしろ1990年代のほうが盛り上がりがすごくて。すごい新しい言語が出たぞ!という。今でいうRustみたいな感じですよ。
藤村:なるほどね。
高橋:イケてる人たちがオブジェクト指向っていうすごそうなやつをやってるらしいですよ、みたいな感じで話されていて。一方でそんなの使ってるのはマニアだけで仕事では使えないよね〜みたいに言われてた感じが90年代ですね。
藤村:ほう。
高橋:その頃はJavaアプレットをブラウザで動かしたりしてて。
藤村:それは見たことありますね。
okuramasafumi:この時期のOSって何ですか?
高橋:Linuxです。あとSolarisとかも動いてました。
高橋:ですね。みたいな感じのものがあるのと、それとは別にWindows NTも動いていて、IISのサーバで動かして、その間で動いたのはDCOMとかもありましたよね。COMをインターネット越しに何とかしようと頑張っていて、それがActiveXになっていったのかな。他にもアプリ系のエンジニアもいたんですが、こちらの人たちはあまりネットでの接点はなかったんですよ。
藤村:Delphiみたいなやつですか?
高橋:そうですね。基本的にはスタンドアロンアプリケーションで、インターネットの通信もしますよ、みたいなものがありました。今でも基本的にアプリってそういうものかもしれないですが、あんまり縁がなかったのでよく知らないっていう。いっぱいいましたし、仕事されている方もいっぱいいてビジネスにはなってたらしいんですけど。
藤村:そんな2000年ぐらいまでの間に、高橋さんはこのCGIの世界で仕事をしてきて、どんなものを作っていたんですか?
高橋:基本的にWebサーバでちょっと動くやつです。
藤村:データベースってあったんですか?
高橋:この頃だとMSのSQL ServerかSybaseか、あとはOracleか。Oracleは90年代後半から出てきたんですよね、確か。
角谷:Oracleは7、8の頃ですね。
高橋:ですね。なんですけどCGIの人たちはみんなファイルで頑張っていたので、ファイルのロックが壊れて大変なことに…みたいなことをまだやってた感じですね。
藤村:この頃ってRuby自体は生まれてますね。CGIで仕事をしていた高橋さんがいつRubyに出会ったのかとか、Rubyの前にどんなものを触ってたのかを僕は聞いてみたかった。
高橋:Rubyの前だと、仕事で使ったのはPerlとかVBとかでしょうか。VBScriptでIISでいじったりとかはしていましたね。
藤村:選択肢として、他に何があったんですかね?
高橋:Cを使ってる人たちもいたんだけど、私はあんまり。Apacheのモジュールをちょっといじったりぐらいはするんだけど、独立アプリケーションを作れるほどの技術はなかったですね。
藤村:みなさんApacheは知ってますか?
(一同うなづく)
藤村:Apacheは有名だった。
Rubyとの出会い
高橋:Rubyの方はどうかというと、Rubyができたのが1993年になるんですけど、世の中に公開されたのが1995年なんですよ。その頃でもまだ知らなくて、私が初めて知ったのは1997年頃ですね。
藤村:どこで発見したんですか?
高橋:会社かネットでたまたま見かけたか、あとインターネットウォッチのサイトにRubyの記事が出てて、それを見た記憶があります。1997年の記事ですね。
藤村:まだ全然仕事で使うとかいうレベルじゃない感じだったんですか?
高橋:そもそもRubyって使って大丈夫なの?みたいな感じの頃ですよね。その頃はPerlが圧倒的に強くて、Perlみたいな感じで使えるオブジェクト指向言語があるよってRubyが紹介されてました。基本的にはPerlと比べられる言語としてRubyはよくできてるんだけど、まあでも、所詮素人が作ったおもちゃみたいな言語なわけですよ。素人というか、企業なり個人なりが売り物として作られた言語処理系でなく、個人が仕事と関係なく作ったという意味で、どこまで使い物になりますか?て、普通になるじゃないですか。だけど、みんなおもちゃとして面白いから遊びましょうと使ってた感じだと思いますよ。
藤村:ファーストインプレッションはどんな感じだった?
高橋:正直、その頃まではあんまりプログラミングがよくできなくて、プログラムの書き方自体は知ってるんだけど、良いプログラミング、良いコードがどういうものかっていうのがよくわからなかったんですね。なのでRubyがいいか悪いかっていう判断をするには、言語がいいか悪いかわからないといけないじゃないですか。そこまでは当時の私はわかってなかったんですよ。なので、ああこういうのがあるんだ、へぇみたいな感じでしたね。
藤村:なんかすぐに使い始めたり、触り始めたりとかも?
高橋:全然そんなことはなかったですね。しばらくはずっとメーリングリストの過去記事のアーカイブを読んでましたね。
藤村:その頃って、そもそもインターネット上にある情報の量が今より圧倒的に少ない。
高橋:そうですね、少ないっちゃ少ないけど、その分濃いっちゃ濃い。あとリアルタイム性は非常に低いですね。ゆっくりなんだけれど、集まるところには日本語でも濃い情報が集まってる。
藤村:本格的にRubyを触り始めたのはいつ頃からですか?
高橋:業務でRubyを本格的に始めたのはRails以降です。Railsも最初に出てきた頃は、なんだかんだでも日本じゃ仕事にならないよねー、みたいな扱いだったので。
Railsの衝撃
藤村:Railsが登場したのって何年でしたっけ?
高橋:表に出てきたのは2004年くらいですね*6。
藤村:一番最初に日本でRailsに触ったのって誰なんですか?
高橋:誰なんですかね、私も割と早い方ではあったはず。
藤村:ここにいる人の中にいそうな気がして。
角谷:DHHを最初に見たのがogijunじゃない?
高橋:荻野さんと私。
ogijun:あと、笹田さんと。
角谷:2004年のRubyConfで日本人が初めてDHHを見た。
ogijun:その前*7にまつもとさんがヨーロッパで会って、僕らは10月くらいに。
高橋:なんかオブジェクト指向っぽいイベントがあって、みたいな。
角谷:僕はgem install activerecord*8、をしたのはそのRubyConfの後でしたね。高橋さんが非常に興奮してた。ActiveRecordの書き方、こんなのでいいの?
ogijun:これだけ?みたいな。
角谷:高橋さんが書いて、どういうこと?みたいな。それでインストールしたのを覚えている。
藤村:初めてのRailsの印象、驚きを聞いてみたいんですけど。
高橋:CGIを触っていて、当時でもPerlでWebを作ったりで触っていたので、それとは全然次元が違うわけですよ。次元が違うというか、正気(マジ)なのかネタなのかもよくわからない。これで使えると思っているの?本当に?みたいな。これはヤバい、ヤバさしかないみたいな感じ。昔のRailsと今のRails、なんだかんだでそんなに変わってないんですよ。基本的にやりたいことは同じで、それが仕組みとしてちゃんと整備されてきて、エコシステムがめちゃくちゃ大きくなったっていうところは違いますけど、根本の部分はそんなに違ってなくて。だから2020年なら当たり前の技術が2005年に突然現れたっていう状況なので、どう評価していいかわからない、正直よくわかんないんですよね。
藤村:よくわかんないです。
高橋:みたいな感じのわからなさはあって、でもogijunはその頃からWebObjectsを触っていたので、ある程度言いたいことがあったわけですよね。WebObjects*9の人はいろいろ思うところがあったらしいという話は後で聞きました。
ogijun:Webフレームワークというものを以前から触っていて、それに比べたらだいぶおもちゃだねっていうか。そういう感じはありましたね。
高橋:とかみたいに言えるようになったのは、やりたいことがある程度わかった感じなんですよね、多分。
藤村:2000年代半ば頃のWeb開発って産業自体はありましたよね。mixiとかも出たりってことですよ?
高橋:産業としてはどうなんですかね…。
藤村:PHPはもうあったみたいな感じ?
角谷:PHPで、MySQLが出てきて、これは!みたいな感じになったんですよね。TCP/IPでいろんなアプリケーションを作り直そうみたいなムーブメントがあったんですよ。それまでって会社の中のインターネット・プロトコルもTCP/IPじゃなかった。IPXとかNetBEUIとかを使ってたんですけど、全部TCP/IPになったので、じゃあこれで勤怠管理とか全部作り直しましょうみたいな。IBMとかがWebSphereをつくってたみたいな感じの時代でした。
高橋:時代背景としては2001年にアジャイルマニフェストができて、2002年にPofEAA( エンタープライズアプリケーションアーキテクチャパターン)が出て、2003年にTDD本が出たっていう。
藤村:タイムラインとしては、そんなぐらいなんですね。
高橋:Railsが2004年とか2005年。
藤村:DHHってそこら辺もめちゃくちゃ詳しいというか、踏まえた上で作っているわけじゃないですか。今のRailsを見ているオブジェクト指向が好きない人は、そういうところってあんまり知られてないのかなって気もしますよね。当時はオブジェクト指向設計の系譜の中からRailsって出てきてるなっていう感覚だったんですか?
高橋:どう見てもPoEAAをパクったんじゃないの? みたいな感じが…。
ogijun:最新の流行を追ったって感じでしたよ。その当時一番新しかったPoEEAをそのまま実装しちゃったって感じ。
高橋:新しかったっていうか、PoEAAは基本的にパターンカタログなので、すでにそういうパターンはあったわけじゃないですか。新しいパターンを開発したというよりも、使われている既知のものをパターンとして整理したっていうことなので、それに乗っとって作ったみたいな。
角谷:2004年ぐらいの頃にそういうORMの実装の名前をActiveRecordってつけてるのが、「おっ、このお兄さんよく勉強してるな」って。
ogijun:勉強したから使いたかった。そういう雰囲気だった。ActiveRecordはRailsの中では結構後にできるから。
角谷:フレームワークにテスティングフレームワークが一緒についてるっていうのが、あの頃は僕らには衝撃的。フレームワークにテストするアプリとかビルトインされていて、よく勉強してる!みたいな。
藤村:2000年代半ばってユニットテストってみんな書いてたんですか?
高橋:技術としてはもう発表されていたので、書いてる人はちょっと書いてました。
角谷:2003年の夏頃から、しばらくt_wadaと一緒に働いていたんですけど、彼がバスに乗ってKent BeckのTDD本を写経した後のプロジェクトで、実際の現場でペアプロでTDDする、みたいなのはあれが初めてだったんじゃないかな。なので、2005年頃の日本だと、TDDの本は出ている、読んでた人はもちろんいるけど、「これいっぺんにやってみたいなぁ」みたいな人が多数だった頃だと思います。
ogijun:それをアプリケーションのデフォルトのディレクトリにtestってすでに作られてしまうのは結構感銘だと思う。あの時は気づかなかったけど。
okuramasafumi:『達人プログラマー』の第一版ってそれこそ2000年ぐらいですね。そこにも自動テストの話が書いてあった。
藤村:なんか2000年代前半ってそういう熱量があった時期なんですかね。何かがいろいろ動いてた時期っていうか。
ogijun:みんなやらなきゃって思ってたんだけど、どうやってやるかはみんな各自工夫してやってたんだけど、それをDHHはappとtestを並列のディレクトリに作ってしまっている。
高橋:なんで2000年に熱い話になったかというと、理由の一つとしては90年代まではオブジェクト指向開発方法論の時代だったんですよ。オブジェクト指向はこれからくるはず、でもどうやって使っていけばいいの?という疑問に対して「それだとこの開発プロセスを導入して、こうやって作ればいいのでは」みたいな提案がいろいろ出てきて、それをみんなで聞いたり試したりしていた、それが熱かった時期ですよね。なんですけど、それはあくまで設計を中心とした開発プロセスであって。コード書く話じゃないわけで、それの反動で2000年にコード書きたい勢がこういうコードを中心としてあれこれ試行錯誤をしてたっていう流れだと私は今では理解しています。が、その頃はよくわかんなかったので、へぇーみたいな感じだったんですけど。
Rubyコミュニティの面白さ
藤村:高橋さんの話に戻ると、Railsが出た頃ってRubyとの関わりってどんな感じだった?
高橋:2002年に『たのしいRuby』が出たんですよ。なので普通にRubyを使ってます、Rubyいいですよねと言う係の人にはなってたという感じですね。
藤村:1997年から2002年の数年で、どうしてそこまでRubyに入れ込むようになったんですか?
高橋:1999年にまつもとさんと石塚さんの『オブジェクト指向スクリプト言語Ruby』が出て、そのサイン本をゲットしました。Rubyをやるぞみたいな雰囲気があって、2000年に『Rubyで始めるインターネットプログラミング』っていう連載が始まったんですよ。で、それの著者を募集していて、書きたいですと名乗り出たのが2000年頃の話ですね。
藤村:その頃のインターネットプログラミングってどんなことしてたんですか?
高橋:FTPとかtelnetとかがありましたね。そしてHTTPをしゃべってみますか、ついでにHTTPのサーバも作ってみますかみたいな感じでWEBrickの元のレスを作ってたっていう。
藤村:仕事でも使ったりもしてた?
高橋:ちょっとクライアントとしてぐらいは使ってたかもしれないんですけど、お客さんに納めるシステムでは全然使ってないですね。2000年代は、仕事では私はずっとPHPをやっていました。
藤村:僕らはその頃のRubyを体験することができないんですよ。その時代において存在したRubyはどうだったんですか?
高橋:Railsがそもそも出た時にはRubyGemsがなかったんですよ。gem installとかbundle intallはもちろんできなかった。setup.rbっていう謎のファイルが付いててそれをruby setup.rbしてインストールするか、install.rbっていうファイルが付いてて ruby install.rb を実行するか、あるいは何も付いてなくてファイルごとをライブラリのパスにコピって実行するかみたいな感じですね。
藤村:どういうところがRubyは当時楽しいというか、すごいって思った?
高橋:言語自体はそんなに違いがあったのかはよくわからん感じだったんですけど、Rubyがすごかったのは、日本でプログラミング言語設計の話をするコミュニティがあったところなんですよ。言語にはどういう機能があるべきで、それをどう実装するべきなのか、そもそもどういう仕様にするべきなのかっていうのを話すっていう場所をそれまで全然みたことなくて。特に日本語ではないですよね。でも、Rubyの人たちは一生懸命そんな話をしてるんですね。へぇーみたいな感じで。それはめちゃめちゃ面白かったです。
藤村:なるほどな、目の前で手作りされている様子がわかるみたいな。
高橋:普通、言語って自分で作るもんじゃないじゃないですか。*10
藤村:と思いますけどね。
高橋:せいぜい既存の言語やその改造版を頑張って実装しますみたいな話で、仕様からは作らないじゃないですか。新しい言語仕様を作ってみました、この言語どうですかみたいな話をする場ってないんですよ。
藤村:まあそうですよね。
高橋:しかもコミュニティになってて、みんなで一つの言語であでもないこうでもない議論をするとかっていうのが。
藤村:なるほどなぁ。今でもその面白さはRubyのRedmineを見てると、こういうことかなみたいなのはあるけど。
高橋:盛り上がって話題になってるissueとかを見ると、なるほどみたいな感じ。
RubyConfの参加者が3倍に
藤村:なるほどなぁ。それで2000年代はPHPを主に仕事で使いつつ、Rubyを触ったり関わったりしている中でRailsが出てきて、いつ頃から高橋さんって仕事でRubyをやるようになるんですか?
高橋:仕事でRubyは何度か触ったことはあったんですけど結局2010年に会社を辞めるまでほとんど仕事では使ってなかったですね。
藤村:僕は2008年、2009年ぐらいにRubyを知って触り始めたんですけど。別にRubyで仕事してないけど、Rubyが好きって人は山のようにいましたよね。
高橋:2004年とか2005年とかにRailsが来た時にRubyを触っててWebに詳しいっていうかWebを普通に仕事でやってますみたいな人は、全然いなかったというかいても少数派だったんですよ。どっちかっていうと、Unixハッカー系の人の方が多い印象でしたね、言語を作っている人たちも。あと普通にアプリを盛り盛り作っている人とかもいましたけど、業務系の人たちもそろそろWebもやってみますかみたいな感じになりつつあったぐらいの頃で。
藤村:その頃で別に今でこそ勤怠管理とかSmartHRとか人事システムがRailsでできているWebのシステムでできているとかあったけど、当時って別にそんなの想像もつかないような世界ですよね。
高橋:だからそういうシステムを作っている人たちは別にWebをやってなかったんではないのかな?そういう現場にいたことがないからよくわかんないんですけど。
藤村:そうそんな気がしますよね。2007年2008年ってどんなことされてました?
高橋:仕事の内容としては、当時の会社はいわゆるセールスプロモーション系のサイトを作るお仕事みたいなのが多かったんですよ。その手の仕事だと、例えばナショナルクライアントの場合には何かの商品を宣伝するサイトを作る場合、基本的には広告代理店に発注するわけですね。広告代理店に来てそこから開発会社にいくみたいな感じの流れになっていて、なのでうちのお客さんは広告代理店が多かったですね。
藤村:制作って感じですかね、今でいうところの。
高橋:本当にアプリ開発、サービス開発というより「Web制作」みたいな感じで、サイトを作るにしても例えば1ヶ月以内でまずティザーサイトから作ってほしいみたいな話で、サイトを運用している期間も下手すると本番運用は1ヶ月とか何週間みたいな場合もあって。セールスプロモーションって露出する期間が決まってるんじゃないですか。その期間が終わっちゃったら場合によってはサイトごと閉じるんですよ。なのでそのアプリはいりませんみたいな感じで、本当にある意味使い捨てのアプリケーションをえいやっと作って、えいやっと捨てるみたいな感じのことをあちこちでやってるお仕事がそこそこ多かったです。
藤村:CSSがあったかなかったぐらいですかね?
高橋:CSSは普通にありましたね。テーブルレイアウトの方がいいですね、みたいな話とかはあったかも。
藤村:Rubyへの関わりのところでいうと、本が出て、RubyConfに行くみたいなのが次の期間で。
高橋:RubyConfに行ったのが2001年なので本が出る前ですか。
藤村:その時のRubyConfって誰が喋ってたりして、どんな人がいたんですか?
高橋:元々OOPSLAっていうオブジェクト指向のカンファレンスがあったんですね。海外の初期のRubyを好きな人っていうのはOOPSLAが好きな人たちと結構かぶってて、要はオブジェクト指向に興味があって面白いオブジェクト指向言語が出たんだけど、触ってみると面白いよねみたいな話をしてたっぽい。RubyConfもOOPSLAの日程に合わせて、OOPSLA前の1日とか2日とかにやってたらしいです。
角谷:マーティン・ファウラーとかいましたよ。
藤村:日本でRubyのイベントって、いつが最初なんですか?
高橋:最初ってのは難しいんですけど、1998年にThe Perl Conference Japan っていうのがあって、そこでまつもとさんがRubyの話をしたっていうのがありましたね。Perlっぽい言語を日本でも作ってるぞみたいな感じだったんですかね。
藤村:なるほどな。
高橋:Ruby単体イベントとしてはRuby Workshopっていうのを1999年9月にやってて、それは日本Unixユーザー会 、JUSさんがRubyの1日セミナーみたいな感じでしょうか。それが最初期の頃ですね。
藤村:RubyKaigiって一番最初はいつでしたっけ?
高橋:2006年です。
藤村:その頃ってもうRailsが流行ってた頃ですよね。
高橋:Railsっていうのがあると話題にはなってるんだけど、まだ仕事では使ってない感じですね。面白そうと思った人たちがちょっと触ってみてるぐらい。ちなみに日本Rubyの会を作ったのが2004年。それはすごくいいタイミングで、Railsが来る前にRubyの会があったので、Railsに対してどうしましょうかみたいな話をするところが日本Rubyの会で仕切れたみたいな感じのところがあって。
藤村:そこから2010年代ぐらい10年ぐらいまでの間にガガガっとRubyが世の中に普及していくっていう感じだったんですね。その頃の印象深い出来事みたいなのありますか?
高橋:2006年のRubyConfはめちゃくちゃ人が増えたとか。
藤村:何人くらい来てたんですか?
高橋:それまでだと100人程度だったのが。3倍くらいで300人以上になったのかな。逆に言うと、Railsが入るまではRubyConfって100人もいなかったんですよ。こじんまりとした、勉強会くらいの大きさですよね。期間は2日、3日とか長かったんですけど。
藤村:そこから突然若干飛んで、WebバックエンドシステムをRailsで作るのが当たり前になった。2010年代はどんなことをされていたんですか?
高橋:2010年代は会社を辞めて、達人出版会を作ったんですね。その次の年にRubyKaigiを一旦終了させて、Rubyの会を社団法人にした。
藤村:そこからは達人出版会の仕事をしつつ、いわゆるRailsの普通の仕事をしていた?
高橋:自分の会社のサイトをRailsで作っているので、普通にRailsは触りますよみたいな感じではあった。でも、その頃は自分のサイトを作る上ではRailsに触るけど、他のところのやつを触ったりとかしてたわけではないので、一般的なRailsの使い方はあんまりよくわかってなかったところがありました。
藤村:みなさんから何か質問はありますか?
しおい:日本Rubyの会は、どういう経緯でできたんでしょうか?
高橋:2003年にRuby Onsen Meetingっていうのを…あ、その前にOSC大阪だったかKOFだったかちょっと忘れましたけれど、関西のオープンソース系のイベントで、Rubyの人たちでも集まりましょうみたいな感じのことをやっていたんですよ。私はそこに東京からのこのこと行って、関西のRubyを使っている人たちとワイワイやってたりしてたんですけど、その時にまつもとさんが島根の松江にいると、そこには玉造温泉という超有名な温泉街があるわけです。一回玉造温泉とか行ってみたいですよねみたいな話をしてたわけですね。じゃあ試しに一回行きましょうみたいな感じで、Ruby Onsen Meetingっていうのを2003年にやりました。これが大変だったんですよ。大変だったというか…温泉旅館を予約するわけで、そうするとお金を扱わないといけないわけですね。それをよくわかんない個人の高橋さんとかっていう人の口座にみなさん振り込んでください、みたいになって、これはいろいろ微妙じゃないですか。逆にじゃあ高橋が全部立て替えて支払っておきます、みたいにするのもさすがに辛いわけで。…みたいな感じの感想があって、これは今後何かするにもちゃんとした組織があって、その組織がやってますよみたいな感じの体裁にしたほうがいいのではないかなと、そういう話をOnsen Meetingのその場所でやってて。組織作るのに名前が要りますね、名前何にしますかねみたいな話をした時に、日本Rubyの会という名前が降ってきて、じゃあそれで行きましょうみたいな感じで、そのOnsen Meetingの時に名前を決めたっていう経緯があります*11。
藤村:ここまでで第一部歴史編完という感じで、一般的なことを聞き始めようかなと思います。
後編に続きます。
STORES では一緒にはたらくエンジニアを募集しています。採用サイトもぜひご覧ください!
*1:それなりのお金を出せば言語処理系も買えた、というイメージでした。LSI-C試食版が出回ったり、GCCが大量のフロッピーディスクで配布されたりするのはもうちょっと後な気がします。(高橋)
*2:ビル・ゲイツはアルテアBASICという処理系を実装した人の一人で、言語としてのBASICは別にあったものでした(高橋)
*3:後から考えてみたら、このあたりの時期だとワープロ専用機代わりに使われる需要が大きかったかもです。(高橋)
*4:大学生協の書籍担当の方にお願いして「火浦功フェア」を企画して、火浦功の本を並べてもらったりしたこともありました。そこそこ売れたみたいです。20年以上経ってもやってることは変わってない…(高橋)
*6:https://blade.ruby-lang.org/ruby-talk/107370 だと思います。(高橋)
*7:2003年6月にJAOO Conferenceにまつもとさんが参加した時のこと。(高橋)
*8:後の方で私が発言してますが、当時はGemが使われてなかったのでこれは記憶違いでただのインストールだったはず。(高橋)
*9:RubyでもCGIKitというライブラリがあり、これはWebObjectsの影響もあるという話も聞いたことがありますが、それとも全然違いました。(高橋)
*10:普通じゃないひとがいっぱいるのは今では知ってます。はい。(高橋)
*11:ちなみに関東の人のつながりではRHG読書会というのがあり、これも影響が大きかったはずなのですが、そちらについては別の機会で。(高橋)