Code[ish] JP logo

タグ

  • Ruby

まつもとゆきひろさんと、なかだのぶよしさんと、Rubyについてのお話

Hosted by 永野 智, with guests Yukihiro Matsumoto, Nobuyoshi Nakada, and Mitsuteru Sawa.

最近ではあまり知られてないですが、実はHerokuの社員であるお二人にご登場いただきました。「Rubyのパパ」と「さすらいのパッチモンスター」に、RubyとHerokuについて語っていただいております。


ショー・ノート

  • みなさんの自己紹介
  • Salesforce/ Herokuとの出会い
  • Rubyの昔と今とこれから
  • Ruby開発者の働き方とキャリア
  • ユースケースについて
  • コミュニティついて、アナウンスメント

トランスクリプト

永野: 私は、SalesforceでHerokuを担当している永野智です。このエピソードは、Deeply Technicalがテーマとなります。今回はゲストとして、「Rubyのパパ」、Matzこと まつもとゆきひろ さん、そして「さすらいのパッチモンスター」なかだのぶよし さん。また、Herokuのサポートエンジニア 澤光映さんをゲストにお迎えしてお送りいたします。皆さんよろしくお願いします。

Matz, Nobu, 澤: よろしくお願いします。

永野: まずは、もう皆さん知ってると思うんですが、自己紹介から始めたいと思いますので、じゃまずMatzさんから自己紹介をお願いいたします。

Matz: はい、 まつもとゆきひろ と申します。Rubyを作った人ですね。「Rubyのパパ」って名乗ってますけれども。日本では、平仮名で まつもとゆきひろ で、海外では M, A, T, Zで Matzっていう風に名乗っています。1993年にRubyを作り始めて、1995年にRubyをリリースして、だんだん時間かけて、世界中でRubyを使っていただけるようだったんですけれども。多分後で話すと思うんですけど、紆余曲折ありまして、2011年にHerokuにJOINしまして、今年に至るまでHerokuにお世話になってました。

永野: ありがとうございます。ではNobuさんもお願いします。

Nobu: なかだのぶよし と申します。プログラマーです。Rubyの開発なんかをやってます。

永野: はい、ありがとうございます。じゃ澤さんお願いします。

澤: はい。澤光映と申します。Herokuでサポートエンジニアをしています。今で大体3年ちょっとぐらいになります。よろしくお願いします。

永野: はい、ありがとうございます。まず馴れ初めと言うか、HerokuとRubyの出会いというか、Matzさん、Nobuさんは、Herokuに入社してから結構経っていますけども、そもそも何故Salesforce / Herokuの社員になったのっていうところを聞きたいと思います。Matzさん、一番初めHerokuの誰とお話したのがきっかけですか。やっぱりマークベニオフとかですか。

Matz: そうですね。Herokuのことは昔から知っていてですね、Herokuが創業したのって2007年だったかと思うんですけど。彼らファウンダー達とロンドンかなんかのカンファレンスで一緒に出たことがあって。Herokuはこんな風にPaaS(Platform as a Service) を始めたんだよみたいな話をしてたんですけど。まあ頑張ってねっていうような話をした覚えはあるんですが。その後、別に何も話をしてた訳ではないですが、2010年の暮れに、SalesforceがHerokuを買収したって話して。Herokuの人たち頑張ったな、買収されたんだなというふうに思ったら。次の年の5月にマークベニオフがトヨタとのジョイントするっていうことで来日したんですよね。その時に確かメールをいただいて、マーク日本に来て、そのRubyを作った人に会いたいから東京来てくれないかって言われて、わかりましたって東京行ったんですけど。彼のSalesforceのイベントに顔を出してですね、最近Herokuを買収しまして、HerokuはRubyでって、Ruby作った人今日呼びましたって言って紹介して貰って。マークベニオフすごい背が高いので、巨人みたいだなと思って。これで終わったんですけど、レセプションでSalesforceは会社としてクラウド応援していて、クラウドテクノロジーそしてRubyを応援してますよ、という話だったので、ありがとうございます応援していただいてうれしいですとかいう風な、まあ社交辞令だと思ったんですけど。その時はそのまま終わって家に帰ってから、次の週あたりにSalesforceからメールが来てですね、じゃぁ、まつもとさん、いつJOINされますかって言われて、「はい?」

Nobu, 澤, 永野: (笑)。

Matz: 私は、もう20年以上(注: この当時は10年以上の意味) 松江の会社の社員として働いていたので、その会社やめるつもりはないので。別に転職するつもりないんですけどって話をしたらですね、今の会社は今のままでいいですから、うちにも籍をおいて頂いてって、「はい?」

永野: (笑)なるほど。なんかマークっぽいですね。

Matz: そこまでおっしゃるのでしたらって言って、7月1日にSalesforce社員として、私それ以来、2社の正社員という形で働いてるんですよ。だから松江の会社はずっとそのままなので、松江の会社からも給料いただいて、Heroku社員として給料はSalesforce Japanから出てるので、給料いただいてという形だったんですよずっと。やっぱり正社員2つとかケースが無いんで、色々と困ったりしたこともあるんですけども。何とかこうやってきたんですね。 ただSalesforce自身はRubyの会社ではない、殆どJavaとXMLでできているので、あとHerokuもね、最初スタート時点ではRubyのPlatform as a Serviceでしたけど、buildpackみたいな形で、いろんな言語を使えるようになったこともあって、今ではありとあらゆる言語サポートしてます。Rubyの会社っていう感じではなくなってきておりますけれども。でもまあ過去2011年からずっとRubyの開発者のスポンサーとしてですね、支援してもらって本当にありがたいなと思ってます。

永野: ありがとうございます。そのあとMatzさんの方から、なかださん紹介みたいな感じになったんですか。

Matz: そうですね。その後入りますって話になった時に、マークと直接話をする機会があって。Rubyを支援するために何をしたらいいのって言った時に、ちょうどその時なかださんが、結構不安定なポジションにいてですね。フリーランスエンジニアで一生懸命仕事をしながら、Rubyのこともやるみたいな感じだったので。ご存知の方はご存じだと思いますけども、なかださんの貢献ってのは物凄いボリュームが大きいので、彼の生活が安定していてRubyにフォーカスできるかどうかは、Rubyの継続的な発展に対して欠かせないというふうに思ったので、できれば他にも雇えるとRubyが凄い安定するんだけどって話をして、そのすぐあとに なかださん、で半年ぐらいあとに笹田さんをこうHerokuとして雇用するっていう形になって。 お陰でそこから後はですね、私となかださんと笹田さんについては、ご飯を食べるために働くことについて、心配する必要はなくなったので。それについてはですね、本当にこう安定した状態でですね。笹田さんその後Herokuやめてクックパッドに移られましたけど。Herokuで一緒に働いてる間はですね、フルタイムの開発者としてフォーカスできたのは、ホントに良かったと思いますね。

永野: なかださんはその話聞いた時はどう思われてました。嬉しかった?びっくりした?

Nobu: ええまあそうですね。びっくりしたのはもちろん、声を掛けてもらえるのがソレはありがたい話で。

永野: 実際それまでは、Salesforceご存知だったんですか。

Nobu: Herokuの名前、ちらっと聞いたことがあったかなと思って。変な名前だなと思ってたんですけど。Salesforceの方は実はそれまで聞いたことなかったです。

永野: 自分が社員になるなんて思ってもみなかったって感じですかね。

Nobu: そうですね。特にあの当時、六本木ですか、あの辺のオフィスにある会社に入るとはちょっと想像も付かなかったですね。

永野: そうなんですね。でもSalesforceに入ってからは、先程Matzさんがおっしゃられたとおり、Rubyのコア開発に結構集中してできるようになったっていうところが事実なんですかね。

Nobu: そうですね。その前にも割りと時間をかけていた時期もあるんですが、完全にそれで御墨付きがもらえるようになったのは大きいですね。

永野: Matzさん、他の言語でこういうことやってるコミュニティとか開発部隊とかって聞かれたりしてますか。

Matz: 例えばPerlの開発をしたLarry Wallって人は、長らくO’Reillyが採用してましたね。O’Reillyから転職してどこに行った。忘れちゃったけど、どっかの会社にやっぱり行ってますね。あとはPHP作った人は、Yahoo!にいたんだけど、それからEtsyっていう手芸なんかのECサイトしているところに採用されてますね。それからPython作ったGuido van Rossumは、Googleからセキュリティ会社で、最近までDropboxで働いてましたね。もう定年だから辞めるとか言ってやめちゃいましたけど。

永野: オープンソース開発の技術を支えるために、会社がスポンサーとなって社員にしたりだとか、もしくはそういった評議会みたいなところにお金をスポンサーとして提供してるところが結構あるんですね。

Matz: そうですね、珍しくはないですね。Linux作ってるLinusは、Linux Foundationが給料出してるはずなので。

永野: なるほど、ありがとうございます。次にRubyについて、もちろん今回はRubyのパパとコア開発の一人が入っていただいているので、Rubyのお話をしていただきたいと思うんですけども。 実際にRubyが始まった当初っていうのは、まだRailsもなかったわけですし、Webやクラウドは、話題としては上がってなかったのかなってに思うんですが。 今、昔と比べて、Webアプリが中心になっていったりだとか、エンタープライズ向けにRuby on Railsが入っていくことについて、実際にどう思われてるのかっていうことを聞きたいですけど。

Matz: そうですね。1993年にRubyを作り始めた時ってのは、そのRubyの目標にしてたのはPerlっていうプログラミング言語で、いわゆるスクリプト言語だったんですよね。UNIX上のテキスト処理みたいなものがメインターゲットみたいな感じで、その言語を作ってたんですよ。1993年なので、世の中にWorld Wide Webというものは存在していたけれども、全然一般的ではないし、ましてや自分のこれから作る言語のターゲットがそれになるっていうのを全然考えてなかったですね。 1995年に世に出た頃には、Webがだいぶ一般化してきたので、当時は動的なWebページをつくるのはCGIって感じだったんですけど。Perlを使ってCGIを書くみたいなのがトレンドだったので、そういうアプリケーション書くのにPerlよりもRubyの方がちょっと便利かもしれないなって、Rubyを使う人がぽつぽつと出始めたっていうのが1995年から2000年ぐらいに掛けてですね。 私自身はオールドタイプなので、あまり自分のWebプログラム書くみたいな感じでは、Webサービス書いたりという感じはなかったですけども、そういうのができるのに便利なものについては提供していこうみたいな感じで、ずっとRuby開発してましたね。

永野: その時には、チームで開発されてエンタープライズ向けにWebのフロントとかバックエンドの処理をしてみたいなところは意識もされてなかった感じですか。

Matz: そうですね。初期のWorld Wide Webのアーキテクチャっていうのは、やっぱりスクリプト言語を使って構成されてる部分は結構多くてですね。そういう意味で言うと、Rubyが狙ってたようなスクリプト言語とそのWebの親和性が高かったのはあると思うんですよ。実際Perlだったり、当時もうPythonありましたけれども、PerlだったりPythonだったりRubyだったり、あるいはRubyと同じ頃に出てきたPHPみたいなものがWebサービスを作るのにこう使われていた。ソレがだんだん人気が出てきたっていうことがあると思います。

永野: なるほど。澤さんがRubyと関わった時には、もうRails、Webフレームワークっていうところからっていう感じなんですか。

澤: そうですね。ようやくRailsが日本でも人気になってきた辺りぐらい。仕事でちょうど新しいサービスを開発するっていう段階で、誰かがRails良いよっていうふうになって。じゃあやってみようかっていう感じ触ったのが、Rubyもそうなんですけど、やっていくきっかけでしたね。

永野: そもそもRubyと触れ合ったきっかけっていうのは、もう仕事がメインっていう感じだったのですね。

澤: そうですね。

永野: 今Rubyの開発者、いわゆるエンタープライズ向けのアプリケーション開発してる人、どのくらいの割合っていうの統計取れてたりするんですか。

Matz: こればっかりは、別に登録して使うものではないので、分からないですけれども。世界中にいることだけは、間違いなくてですね。実際Rubyに関するカンファレンスは、本当に世界中で開催されてますので。Ruby Conferencesっていうサイトがあるんですけど、そこを見るとですね、何月何日どこどこでみたいのがずっと並んでるんですけど、本当に毎週とか、あるいは週に何回も、世界中で開催されてるんですね。私自身は、そんなに頻繁にあちこち行けないですけど、そういうのも年に4・5回はどこかのカンファレンスに出てますので。日本の外に行って。4・5回じゃきかないか。そういう感じのカンファレンス。本当にもう世界中で開かれている。結局ユーザーがいるからカンファレンスが開かれる訳ですから、そのところにはそれなりにユーザーがいるっていうことなんだと思うんですよね。

永野: 実際に、Rubyを開発されたお立場から、今の状況というか、結構実装方法もいっぱい出て来ていると思いますし、JRubyだとかも含め、派生していってるじゃないですか。自分が作ったものから、どういうふうに思われてますか。非常に良いことだなと思ってると思いますが。

Matz: 勿論Rubyが皆さんにとって、便利であってほしいと思って作ったので、そういう風に使っていただけるのは、本当にありがたいことだなと思います。どんな技術でもそうなんですけど、やっぱりGartnerのHype Cycleみたいな感じで、最初話題になった時は物凄い話題になって、過剰な期待を受けるんだけど、だんだん過剰な期待は、やっぱり過剰だったなっていって、ちょっとがっかりする人たちが出てきて、だんだん安定するみたいな。どんな技術もそういうカーブを描くんですけれども。Rubyってのは2004年に、Ruby on Railsが登場して、そっから先、物凄い勢いで評判が高まったので。そうですよね、2010年か11年ぐらいに、過剰な期待みたいな、物凄い話題になって、何でもRubyみたいになった時期があったんですけども、今はソレを一段乗り越えて、GartnerのHype Cycleで言うと、幻滅期とか、安定期とか言われてるところにいるような気がしますね。昔すごい話題になったのに、今はそうでもないということからですね、よくからかい気味に、Rubyは死んだみたいな言われ方をするんですけれども、実際は過大な期待、幻想を乗り越えて、実態通りに評価されるようになってきたっていうレベルなんじゃないかなって私は思ってます。

永野: MatzさんのTwitterみてると、年に2・3回ぐらい、Ruby is Dead に対してのコメントが寄せられているので、定期的に出てくるのかなみたいな気はしますよね。

Matz: そうなんですよね。やっぱり人気がなくなってきたやつをからかうのってのは楽しいと思う人が多くてですね。そのせいかわかんないですけど、やっぱりそのRuby is Dead みたいなBlogを書く人ってのは、結構いるんですよね。私はもうRuby使ってなくて、今はPythonだとか、TypeScriptだとか、何かそんな方がいらっしゃるてですねで。TypeScriptに比べて、今私の使ってるこの言語に比べて、Rubyはこんなに、とかいう風なこと書く方は、年に数人いらっしゃるので。そういうのを出るたびに紹介して、また死んだって言ってるよって言うのは定期便になってますね。

永野: そうですよね。季節ものっぽく。Salesforceの場合も買収話も結構季節もので、1月2月ぐらいに出てくるんですけど。ソレと同じようなことなのかなとか思いながら。見てますけどね。 実際にHerokuのAdam Wigginsだとか、Owenだとかが、RubyのCoderで、作ったプラットホームっていうことで、いわゆるInternet上でアプリケーションを作って、モビリティーを高くしたりだとか、疎結合で作ったりだとかっていう部分って、意識してRubyの開発とかされてたんですか。それとも、開発が使いやすい言語にしていったが故にHerokuみたいなPaaSと相性が良くなったっていうような感じだと思いますか。

Matz: Rubyっていうのは、生産性が高いって言うか、プロトタイプのレベルでは非常に効果的だと思うんですね。そういう意味で言うと2007年とか2008年という時点で、海のものとも山のものと分からないPlatform as a ServiceっていうHerokuを作っていくのに対して、Rubyは非常に良かったっていうのと、それからRubyのサービス、Ruby on Railsが伸びてきたので、Ruby on Railsをホスティングするサービスが求められていたっていうのもあって、そういう意味で言うとRubyで作られていてRubyをホスティングするサービスとしてのHerokuっていうのは価値があったっていうことだと思うんですね。その上でどんどん機能改善していって、例えばスタックがどんどん新しくなっていくとか、機能がどんどん良くなっていくみたいなことをこう続けていって、今に至っているというふうには認識してますけど。

永野: なるほど、ありがとうございます。なかださんは、去年のGithubのコミットとかで2000越えちゃってるような、非常にコミットされてるなっていう印象があったんですけど、やっぱりこう利用用途が複雑になっていくというか、いろんな人たちが開発を、いろんな実装方法でやっているから、コアの方もパッチを当てなきゃいけないみたいな現状があったりするんでしょうか。どんなトレンドがあるんですかね。

Nobu: 去年は特にいろいろと新しいシンタックスが入ったりしたので、その辺の実験的なものがわりとありましたね。

永野: Rubyのコア側でいろいろな機能を乗せていったから、それに伴ってコードも書き換えたりだとかが多くなっちゃったっていう感じですか。

Nobu: まソレも半分。あとは例年のバグフィックスとか。

永野: 今後、ここら辺はもう一番重点的に改善したいなっていうところって、Matzさんとか、なかださんとかでどういう風に思われてますか。

Matz: 改善点とかについて提案したりとか、ゴーサインを出すのは私なんです。 Rubyって、大体毎年の12月にリリースしてるんですよ。こないだの12月、2019年の12月に出たのが、Ruby 2.7っていうVersionだったんです。 今年2020年の12月に出すのを、2.8ではなくて3.0にしようって話をしてる訳ですね。そうすると、3.0に向けた新しい機能みたいなものを、実験的に提供するみたいなことを、去年は一年やってたんですよ。これに伴って新しい機能が入ると、そこにバグがあったりとか、あるいは他のところをこう壊しちゃったりとか、そういうこともあるので、ソレを直したりとかって、なかださんには、本当に沢山コード書いて貰ったんですけれども。 最近僕、CRubyに関しては、プログラマーとしてあんまり働いてる、あんまりというか全然働いてなくて、こういうふうにしましたねって決めると、その決めた後挙動を、なかださんがこう詰めて開発してくれるという、なかださんだけじゃないけど、皆さんがですね、詰めてやってくれるというスタイルになってて。 そうするとですね、忍たま乱太郎の学園長の思いつき、みたいになりやすいんですよね。こうしたらどうだろうか、みたいなこと言い出すと、また勝手なこと言ってるよとかいいながら、本当に言ってるかどうか知らないけど、そんな感じでなかださんがコード書いてくれて、やっぱり詰めたら、その動きは無理だわって言われたりとかですね。そういうようなことが起きてるんですね。 それに伴って、ずっと開発をしている。今年もやっぱり3.0に向けて、実験的に機能を詰めたりとか、バグを取ったりとか、そういうようなことをしていく予定になってます。3.0が出た後どうするかっていうことについて、私の中では構想があるんだけど、まだ発表してないので、ソレは今年終わるまで待ってもらおうかなというふうに思っていますね、はい。

永野: あの僕自体は、もう本当にコーディングをしたことがなければRuby自体を実装したこともなくて、これは多分Matzさんが今までHerokuを全く使ったことがないのと一緒だと思うんですけど。でも何かあれですよね、あのー去年なんかアカウント作ったとかって、Matz日記に書いてありましたけど。

Matz: えーっとですね、まぁその話は、ちょっと後でしましょうか。 Ruby 3の話を先にしておくと、Rubyってユーザーが沢山いるじゃないですか。実際に、Rubyで動いてるコードって、世の中にたくさんある訳ですよ。そうするとソレをですね、じゃあ新しいバージョンにしました、良くなりましたからって、今までのRubyで動いたプログラムが動かなくなりますっていう風になるとですね、みんながギャーッていうので、ソレはちょっとできないですよね。 そうすると、今まで動いてたものをできる限りそのまま動かしつつ、新しい機能を入れるみたいな、バランスを取らなくちゃいけなくてですね、それはすごい難しいです。なので、他の人が期待するみたいに、Ruby3.0は、2.7から3.0になりますので、何か凄いバージョンが変わって色んな新しい機能が増えて、今までのプログラムが動かなくなってっていうふうなことが起きないようにしようかなって思ってるんですね。バージョン番号はジャンプするけれども、変化としては淡々とした変化を目指しています。

永野: イノベーションのジレンマっていう感じですかね。

Matz: そうなんですよね。なんか劇的な変化をすると、みんな飛びつく可能性はあるんだけど、実際今、動いているものがある責任のある人達はですね、その破壊的なイノベーションを起こすことができなくてですね。継続的なイノベーションにしないといけないっていう話に近いですね。クリステンセン教授みたいな話になりますよね。そういえば、亡くなられましたね。

永野: そうですね。まさに日経新聞のコラムに書いてあるようなことになってきたので、ちょっと次のところに移ろうかなと思うんですけど。

Matz: Herokuの話ですね。

永野: いや、Herokuの話はもう置いといて、あのRuby開発者の働き方とキャリアっていうところにちょっと移ろうかなと思うんです。 実際にRubyの開発者とか、Salesforceの開発者っていうところで、お話をさっきいただいてたんですけど、普段の働き方っていうところはあんまり聞いたことないなとも思ってます。開発者いっぱいいるよっていうところがあるんですけど、コア開発の人たちってどういうような普段の働き方ってのはあんまりよく分からないと思うので、そこについてちょっと教えて下さい。Matzさんは結構飛び回ってる感じの日が多いですかね。

Matz: わりと移動はしてますね。私に関して言うと、Herokuと、松江にあるネットワーク応用通信研究所という会社が、私を雇ってくれていて、そういう意味で言うと、両方とも業務命令って、これこれの仕事を社員としてしてくださいみたいのがない。Rubyの開発に関することをしてくださいっていうことになっています。業務命令はない訳ですよねで。その状態で、基本的には、私自宅でソフトウェア開発することが多いので、自宅でソフトを開発するっていうのがベースになります。 たくさんの企業の技術顧問みたいなことしてるので、ソレは例えばSkypeとかZoomとかで、テレビ会議で繋いで、やり取りをすることで仕事をしています。 でもですね、やっぱりイベントとかはですね、ネットすまないので、仕方がないのですね、東京が多いですけども、東京行ってイベントでてとか言う感じのことがありますね。あと海外のイベントも、例えば2020年2月だとフランスで、カンファレンスが開かれてですね、収録時から見ると二週間後ですね。2月の18、19日にパリでRubyカンファレンスがあるので、ちょっとフランスまで行ってきます。

永野: 年間どのくらい海外って行かれてますか。

Matz: 多い年だと、7・8回。少ない年だと5・6回。

永野: 殆どがRuby関係でっていうこと。

Matz: 何らかのRuby関係ですね。カンファレンスが多いけど、なんかこう視察に行くので、ちょっとアテンドしてくれみたいなのもありますね。

永野: ちなみに今この録音も、リモートで入っていただいてるんですけど、ご自宅のご自分の部屋ですか。

Matz: そうですね、はい。

永野: じゃあデスクがあってみたいなそんな感じなんですかね。

Matz: はい、そうです。

永野: なかださんは、一日のうちどのくらいコーディングってされてるんですか。

Nobu: そうですね時間で言うと、どのくらいなんだろ、10時間とか、いかないかな。

永野: コーディングっていうのが、一日のうちのほとんどを占めてるような。

Nobu: まあ、子供の面倒見たり、ツイッターをしたりとか、チャットしたりの合間に、いろいろとコーディングしてるような感じですかね。

永野: なるほど。Matzさんと同じようにご自分の部屋があってっていう感じですか。

Nobu: 一応小さい部屋がありますけど、リビングの方が暖かいんで、そっちでやってたりすると、時々家族がいると追い出されたりするんですけど。

Matz: なかださんとテレビ会議で繋いでお打ち合わせすることがあるんですけど、可愛らしいお子さんの環境音が入って、楽しいですけどね。

永野: いいですね。イギリスの経済の番組でありましたよね。子供が入ってきちゃったというような。日々の仕事っていうのは、自宅でやられてるのがメインですっていうことですね。

Nobu: ええ、ほとんど家から出ないですね。もう半径数キロ以内しか出歩かないし。全然出ない日もあるぐらいで。

永野: それでも、全世界の人たちが使っている所を色々パッチ当てていただいてるっていうところで。しかも職場環境が固定されずに自分の好きなところで仕事ができるっていうのが、新しい仕事のやり方なのかなと思います。はい、凄い良い環境でできてるのかなという形ですね。

Matz: 家から出なくても、世界に影響を与えているという。

Nobu: ああ、ちょうど帰ってきちゃった。

永野: 大丈夫です。ありがとうございます。最後に2つ質問させて頂きます。まず、先程Rubyのエンタープライズの利用みたいなところを、お話いただいたんですけれども、実際にビジネスアプリ開発において、Rubyに向いているのはこういう系だよとか、向いてないのとか、もしくはこういう使い方って想像してなかったけど結構一般的になったなみたいな事例があれば教えていただきたいです。

Matz: そうですね、こういうの想定したかったけど一般的になったのは、まさにWebで、最初はそのテキスト処理の細々した感じを狙ってるのに、実際は今は圧倒的にWebで使われてるっていう意味だと、作り始めた20数年前からみると、だいぶ意外っていう感じですよねで。 使われ方としてRubyが向いてるっていうのは、やっぱりアーリーステージが一番向いてると思うんですよ。Rubyだと、道具立て、少なくともWeb開発においては道具立て、ライブラリ、私たちはGemって言いますけど、Geと呼ばれるライブラリが揃っているので、動かせるところまで行くまでの時間が短いですよね。そうすると、何かアイデアを思いついて、ソレを取り敢えずサービスを提供するまでの時間が短いので、例えばライバルに抜かれたりとかですね、あるいは実際にユーザーに使ってみて貰ったら、やっぱりちょっと違うと思ったので、改善が必要みたいなところでも、凄くやりやすいと思います。 そこが一番のRubyのホットスポットだと思うので、実際に例えばスタートアップ企業って言われている企業なんか、日本でもアメリカでも結構ですけれども、そういう企業でRubyは、そういうステージだと圧倒的にたくさん使われてますね。 そうすると、ビジネスは成功していくと、場合によってはトラフィックが大きくなり過ぎて、あるいはサービスの規模が大きくなり過ぎて、Rubyだと難しいっていうことが起きることもあってですね。そういう場合は、ビジネス的に成功してる訳なので、何をすべきかも分かっているので、他の言語に乗り換えても、別にソレはそれでいいじゃないかなと。 実際に例えば、ツイッターであるとか、そういう企業さんは、最初Rubyでサービスを始めていて、サービスが成功したら、言語によって、ツイッターの場合はScalaですか、移行したみたいなこともあったって聞いています。 そうは言っても、大きいサービスになったからRubyが使えないかっていうと、必ずしもそうではなくて、例えばクックパッドさんであるとか、AirBNBであるとかは、初期もRubyだし、今でもRubyを使って開発している。Shopifyもそうかな。

永野: そうですね。Herokuも色々なところにRubyもしくはRailsで作ってるっていうところがあったりしているので。たしかCLIとかは、Node.jsになったりとか、GOになったりだとか、色々やってると思うんですけど。

Matz: Herokuコマンドの実装はね、色々変遷がありましたけど過去に。

永野: そういった形で言語移るっていうところも、結構最近では一般的に。ニーズに応じてやってるっていうようなイメージなんですかね。

Matz: そうですね、Rubyが便利なところ、アーリーステージだったりとかでは、どうぞ積極的に使っていただいたらいいと思いますし、工夫次第によっては、もっと本格運用になってもRuby使い続けることってのは十分あるじゃないじゃないかなと思います。

永野: はいありがとうございます。じゃあ最後に、今年もまたRuby Kaigiがあると思うんですけど、長野でしたかね。松田さんたちがコーディネートされてると思うんですが、そこでも何か新しいことをお話しされたりっていうようなことがあるでしょうか。

Matz: 今年はRuby 3が出る年なので、ここ何年かRuby 3こんなのみたいな話をし続けたので、総仕上げみたいになるっていうので、そういう意味では新しくないですけど。そうですね、私となかださんがスピーカーRuby Kaigiの直前の、4月末(3月末)でですね、Heroku卒業ということになりましたので。それで今までどうもありがとう、新しいスポンサーがいるといいねみたいな話をするかもしれません。

永野: それはもうあの実際にはオフレコの、まぁいいや、Code[ish]で話しちゃった。ありがとうございます。

Nobu: いっちゃっていいんですか。

Matz: 前話した時には、何か契約書を結んだらもういいよって言われてたんだけど。

永野: まあ大丈夫です。あのーはい、僕の方で編集ができるんで。

Matz: 問題ある場合は切ってください。

永野: はい大丈夫です。なかださんもRuby Kaigiには参加されますよね。

Nobu: えっと一応ホテルは取ってます。もう既に。

Matz: 一応とはなんだ(笑)。

Nobu: 足を取ってない、まだ。

Matz: 僕も足取ってない。

永野: 松本だと何が良いんだろ。新幹線かな。

澤: 新幹線。

Matz: 僕は東京からあずさって思ってるけど。

Nobu: 松本空港。

Matz: 松本空港に行く飛行機が、神戸空港しかない。

永野: 神戸に行くのが大変みたいな、そうでもないか。

Matz: いや、大変なんですよ。

永野: 大変ですよね。

Matz: でですね、神戸空港から松本空港行く飛行機が一日一便しか飛んでなくて、午前中なんですよ。で、僕の最寄りの出雲空港から神戸空港に実は飛行機飛んでるんですけど、こっちは午後しかないですよ。

永野: 一泊して。

Matz: そう、神戸で一泊、やってらんないので。

永野: どこまで行くんですか(笑)。

Matz: まあそれよりは、圧倒的に便の多い東京に出て、電車で松本に行くほうがいいかなって今話をしてるんですけど。

永野: 澤さんもRuby Kaigi 出られますか。

澤: はい。去年もでて、一応今年の松本にも行こうかなと思って。チケットはもう持っているので。でも、足もそうですね、泊まるところもないので、ちゃんと探そうとと今思いました。

永野: なるほど。ちょっとHeroku / Salesforceとして、ずっとスポンサーしてないから、いい加減なんかしてよって言いたいんですけどね。取り敢えず騒ぐようにしてみます。スポンサーになりたいなぁ。僕の一存で全然決まらないんで、しょうがないですけど。

澤: そしたら自分がね、ブースに立ってなんかしてるかもしれないですね。

永野: 澤さんブースでね、Herokuの宣伝でもしてもらって。 はいすいません、ありがとうございました。あの非常に色々貴重なお話聞けたと思います。最後にRubyとHerokuの関係に関しては、もうこれからもずっとRuby開発者の人たちがね、使いやすいプラットフォームとしてHeorkuもあり続けようと思いますし、Herokuの言語対応しているテレンスとかも、まだRubyとHerokuにずっと関わって続けてくれている。これに関しても、引き続きやらせて頂ければなと思ってますので、まだ良い関係をRubyとRubyコミュニティーとRuby開発者の皆さんと続けていたいと思いますから、これからもよろしくお願いいたします。 ありがとうございました。これでお話を終わらせて頂ければと思います。今日はどうもありがとうございました。

Matz, Nobu, 澤: ありがとうございました。

Code[ish] JP とは

ゲストを迎えてコーディング・技術・ツール・開発者の日常を探る Heroku の Podcast です。

ホスト

Avatar

永野 智

RVP, Heroku Japan & Korea, Heroku

株式会社セールスフォース・ドットコムでHeroku営業本部を統括しています

ゲスト

Avatar

Yukihiro Matsumoto

Chief Architect, Ruby, Heroku

Chief designer of Ruby

Avatar

Nobuyoshi Nakada

Ruby Engineer, Heroku

CRuby Committer

Avatar

Mitsuteru Sawa

Support Engineer, Heroku

Mitsu is a support engineer at Heroku

Code[ish] JP の他のエピソード