2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
リンクをコピー
記事をブックマーク
楓博光(以下、楓):まず、Matzさん(※まつもと氏のニックネーム)から経歴を簡単にお話しいただいてもよろしいでしょうか。
まつもとゆきひろ氏(以下、まつもと):そうですね。32年前の1990年に大学を卒業して、プログラマーとして普通に就職したんですけれども、もともとプログラミング言語が大好きだったので、その傍ら、趣味でプログラミングをしていました。それで、「いつか作るか」と思っていた言語にとうとう取り掛かったのがRubyです。転職をするうちに、だんだんRubyに時間を使う割合が増えてきて、2001年か2002年ぐらいから、ほとんどRubyでフルタイムという感じになっています。
なので最初の10年ぐらいは普通のプログラマーとして働いていたんだけど、それ以降20年ぐらいはオープンソースソフトウェアの開発者としてご飯を食べています。今回は、学生さんが多いので、みなさんがこれから経験されるかもしれない普通の仕事もちょっとわかりますが、私がそれをしていたのももう20年ぐらい前なので、だいぶ今と時代が違うかもしれないということは、事前に注意としてお伝えしておきます。
この技育祭やサポーターズさんの活動の中で、若い人の前でお話しする機会が増えて、その点で自分もあらためてキャリアであるとか、人生設計と言うと大袈裟ですけど、人生の選択について考える機会がたびたびありまして。それはわりと転機になったので。楓さん(楓博光氏)にはちょっと足を向けて寝られない感じがします。自分の活動の幅が広がった気がするので、サポーターズにはすごく感謝しています。
まつもと:今回講演が多いので、どうしようかっていう話をしたら、西村博之さんや落合陽一さんは質疑応答でやるという話だったので、じゃあ私もそれでお願いしますということで。「ひろゆきだけど何か?」というのがあったので、まあちょっと。私と彼、よく間違えられるんですけど。
楓:実際そうなんですね。
まつもと:そうですね。もうだいぶ前になるんですが、直接お会いしたことがあるんです。「私はよくひろゆきって言われるんですよ」と話をしたら、向こうも「Rubyを作ったんですってね」と言われたことがあると言っていました。「そうかー」と言って、一緒に並んで写真を撮ったこともあるんですけど(笑)。
そういう縁もあるので、同じスタイルで対応できるといいなと思って、今回は質疑応答というスタイルを取らせてもらいました。
楓:ありがとうございます。
まつもと:300人ぐらいの方が聞いてくださっているということなので、ぜひなんでも聞いてもらえればと思います。よろしくお願いします。
楓:よろしくお願いいたします。ということで、2日前は西村博之さんに「ひろゆきだけど何か質問ある?」というセッションをしていただいて、本日はまつもとゆきひろさんが「(まつもと)ゆきひろだけど何か質問ある?」ということで、ちょっとこれ、みなさん混乱しないようにね。
まつもと:だいぶ紛らわしい。
楓:あえて紛らわしいタイトルにしております。それでは先ほどお伝えしたとおり、まず事前質問からピックアップしていきたいと思います。Matzさんも、チャットで「これ答えたいな」という質問があったら、随時お答えいただいて大丈夫です。
楓:それではさっそく、事前質問からピックアップをしていきたいと思います。では最初の質問です。「Rubyを作ろうと思ったきっかけと、そこからの苦労などがあればお教えください」ということです。いかがでしょうか。
まつもと:もともと私はプログラミング言語にすごく興味があったんですね。高校2年か3年生ぐらいの時に、世の中にはプログラミング言語がたくさんあって、それらは人間が意図を持って作ったということに気がついた時に、「だったら自分でも作れるんじゃね?」と思いました。当時はスキルも能力もプログラミングの知識もなにもなかったので、作りたいなって思っただけだったんですね。
ただ、そのあともずっとプログラミング言語に興味を持っていたので、大学ではコンピューターサイエンスを専攻して勉強をしました。実際に就職をしてプログラマーとして活動する中でプログラミングスキルも上がったので、そろそろできるんじゃないかなと思って作り始めたのが、最初に作りたいなと思ってからちょうど10年後という感じになります。
楓:何歳ぐらいの時ですか。
まつもと:17歳で作りたいなと思って、27歳で作り始めました。
楓:そうなんですね。
まつもと:次は、苦労ですね。結局、好きでやっている趣味なので、あんまり苦労はないな(笑)。ただ、作るのはすごく時間がかかるので、最初のバージョンを作るまででも2年近く、リリースするまでは3年近くかかりました。そういう意味だと、すごく時間はかかったな、ずっと作業を投入していたなっていう印象があります。
楓:それは働きながら作られていたんですか。
まつもと:そうですね。普通に昼間は働いて夜に作ったり、あるいは当時は景気が悪くて暇だったので(笑)、昼間仕事をしながらですね。
楓:その時は、いわゆるサラリーマンとしてSIerにいらっしゃったんでしたっけ。
まつもと:そうですね。そういう会社にいましたけど、私は社内システムを作っている部署だったので、顧客がいないんですよね。かつ、Rubyをちょうど作り始めた時は、新規開発はお金がかかるからもうやめましょうって言われていました。
人員も縮小してメンテナンスモードに入りましょうという時で、私はメンテナンス要員だったので、正直言うとほぼやることがないんですよね。だいぶ暇だったので、なんかいっちょやるかと作ったらRubyができちゃったっていう感じですね。
楓:質問をいただきました。「開発当時だとCRubyでしたが、今27歳で言語を作るとしてもCを使いますか」。
まつもと:どうだろう。今でもそうなんですが、当時私が一番得意だった言語がCだったので、Cを使ったんです。27歳の私が現時点で得意な言語は何かによって変わってくると思うんですね。
楓:得意なもので作ると。
まつもと:そうですね、プログラミング言語を作るのに向いた言語と向かない言語があるので、プログラミング言語の実装に向いた言語の中で、自分の一番得意なもので作るんじゃないかなと思います。
Cが得意だったらCで作るでしょうし、今だったら例えばGoとかRustとかも選択肢に入ると思います。27歳の私がそれまでのキャリアで積み上げてきたものによって変わってくるんじゃないかなと思います。
楓:なるほど。これも質問をいただいています。「Rubyの名前の意味ってありますか」。
まつもと:Rubyより前にPerlという言語があって、この名前は真珠から取られています。それがあるので、名前をつける時に、宝石の名前がいいんじゃないかなと先輩に相談して、いくつか候補が挙がりました。
宝石の名前ってだいたい長いんですよね。ダイヤモンドとかサファイアとかね。やはりプログラムの名前ですし、コマンドの名前も頻繁に打つから短いほうがいいよねって話になって、Coral、いわゆるサンゴと、Rubyの2つが候補に残ったんですね。
コーラルはLで終わるし、ナントカランゲージとかで語呂合わせの略語みたいなものを作りやすいかなと思っていたんだけど、でもルビーのほうがきれいだし、1文字短いし、ルビーにするかと言ってRubyに決めたのが1993年の2月ですね。
楓:もう何年前ですかね。30年近く前?
まつもと:そうですね。2022年で29年なので、もうすぐ30年ですね。
楓:じゃあ、Coral on Railsになっていたかもしれないわけですね。
まつもと:なっていたかもしれないですね。でも名前はけっこう重要なので、あんまり人を惹きつけないCoralという名前だったら、Rubyはこんなことにはなっていなかったんじゃないかなって思います(笑)。
楓:なるほど。それが功績を残した1つの要因であると。
まつもと:名前の成功でしたね。
楓:リアルタイムで質問をいただきました。「Rubyを作る際、最初の1歩ってどんな感じだったんですか」。いざ作り始めようとした時の、本当の最初の1歩というところですが。
まつもと:名前を決めたっていうところから(笑)。
楓:先に名前だったんですね。
まつもと:はい、名前を先に決めましたね。だから名前を決めた1993年2月24日の時点では、Rubyのコードは1行も書いていなかったはずですね。
楓:へええ。
まつもと:次に何をしたかというと、Yaccというコンパイラを作るツールがあって、それに言語の文法を書くと、文法を解釈するツールのソースコードを吐いてくれるんですよ。今でも使っているんですけど、そのYaccを使って、どういう文法の言語を作ろうかなと考えるところから始めましたね。
やはり私は言語の文法に一番興味があって、「どういう文法がYacc記述だと使いやすいかな」みたいなことを考えるのが好きだったので、文法から入りました。
楓:ほうほう。先ほどもプログラミング言語自体に興味があったというお話でしたが、それはどういうところにおもしろみを感じていたんでしょうか。
まつもと:高校生の時のことだから、もうだいぶ忘れているんだけど、あとから振り返ればそうだったんじゃないかなって思うことの1つは、私はプログラミングがすごい好きだったんですよね。なんだけど、その当時私が使えるプログラミング言語はBasicしかなくて。プログラミング環境としてはあんまり人間に優しくない感じだったんですよ。
楓:そういう時代だったんですね。
まつもと:gotoでプログラムを制御するし、それもjump先はラベルじゃなくて番号とかだし。だいぶつらい感じだったんです。
そういう中で、ある日、ほかのプログラミング言語を勉強したら、だいぶマシな環境……なんていうか、プログラミング体験があるなということを感じて。言語によってプログラミング体験がずいぶん変わってくることに気がついたんですね。
もう1つ、私は心理学みたいなものにも興味があった。人間が、あるものに対してどういうふうに感じるかという人間工学のようなところに興味があったんですね。
そうすると、プログラミングの人間工学というんですかね。プログラミングが好きで、言語も好きで、心理とか人間工学とかに興味があって、そのちょうど交点のあたりに“プログラミング言語を作る”というのがあった。
自分で作らないと、他人が決めたことを学ぶだけなんですけど、自分が作ったら、こんなアイデアを使ったら体験がどんなによくなるか、みたいなことがデザインできるんですよね。だから17歳の私は、ただ単に言語に興味があるだけではなくて、言語を作りたかったんですね。だけど能力が追いつかなかったので、能力が追いつくまでに10年かかったという。
楓:なるほどです。これは人間工学との組み合わせだったわけですね。
まつもと:そうですね。この場合は言語ですけど、人間がツールを使った時に、どういうふうに感じるかというところにも興味があったんですね。
楓:ありがとうございます。
楓:これも今質問がきていますが、「ちなみにRuby開発を始めた頃は、1日何時間ぐらい作業に費やしていましたか」。
まつもと:ぜんぜん覚えていないんですが、けっこう使っていたと思います。さっきも言ったけど、Rubyを作り始めた1993年頃、私はほぼ仕事がなくて窓際族だったんですね(笑)。会社に行って日報を書くのと、たまにメンテナンス依頼の電話がかかってくるので、それに対応する以外の時間はだいたいRubyを作っていたような気がします。
楓:それぐらい熱中して作られていたんですね。
まつもと:そうですね。わりと時間をかけて作っていましたね。そうは言っても、メールを読んだり書いたり、ネットを見たりする時間もけっこうあったので、プログラミングをしていない時間もあったと思うんだけど。会社にいる間はけっこうな時間、Rubyを作っていましたね。だいぶ給料泥棒な感じがしますけど(笑)。
楓:そんな裏側があったんですね。当時の上司たちは何を思っていたんだろう(笑)。
まつもと:そうですね。当時の上司も、なんか見て見ぬふりっていうんですかね。
楓:それに関連して質問があります。「Matzさんはもともとサラリーマンだったと聞きました。どんなサラリーマンだったんでしょうか」。
まつもと:実は今でもサラリーマンなんですけども(笑)。
楓:え? そうなんですか!?
まつもと:はい。島根にあるネットワーク応用通信研究所という会社に籍を置いて、毎月給料を貰っているので、その時から今まで、サラリーマンなのは間違いないです。
楓:そうなんですね。
まつもと:どんなサラリーマンだったか。
楓:なんかそれこそ上司に従順だったりとか、どんな感じの……。
まつもと:わりとこう、なんていうのかな。言いたいことはハッキリ言うので、たぶん上司からするとちょっと扱いにくいタイプの部下だったんじゃないかなという気がしますね。
楓:それは何か信念があったんですか。
まつもと:わがままを言ってもしょうがないんですけど、私の所属しているチームのゴールは良いソフトウェアを作ることだったので、「これこそが良いソフトウェアだ」みたいなことに関しては、わりと新卒の頃からハッキリ物を言っていたような気がします。
「こういうふうにしたほうがもっと良いソフトウェアになると思います」とか、そういうことは若いうちからけっこうハッキリ言っていた気がしますね。
楓:しかも気づいたらプログラミング言語を作っていたと(笑)。
まつもと:そうですね、はい(笑)。
(次回へつづく)
2024.12.20
日本の約10倍がん患者が殺到し、病院はキャパオーバー ジャパンハートが描く医療の未来と、カンボジアに新病院を作る理由
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.17
面接で「後輩を指導できなさそう」と思われる人の伝え方 歳を重ねるほど重視される経験の「ノウハウ化」
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05