Ruby30周年イベント(中編)~言語を「作りたい」と思ってから10年以上経って、スキルと環境が追いついてRubyを作ることができるようになった
まつもとゆきひろ氏によって開発が始まったRuby言語の30周年を祝うイベント「プログラミング言語Ruby30周年記念イベント」が2月25日にオンラインで開催されました。
イベントでは関係者やRuby愛好家らによる過去30年の振り返りやRubyにまつわるライトニングトークなどが行われ、最後にまつもとゆきひろ氏による基調講演「D is for Dream, V for Vaporware」が行われました。
基調講演では、Rubyを開発する前にまつもと氏が手がけた、Rubyの原点となるソフトウェア「CXライブラリ」や、今回初めて名前が明かされた「Tish」という作りかけのプログラミング言語や、これまであまり語られることのなかった、さらにその前の学生時代に妄想していたプログラミング言語「Alpha」や、そもそもプログラミング言語の開発のきっかけとなった小説についても紹介されました。
そしてこれから作りたいものとして、まつもと氏は「Static Compiler for Ruby」を挙げ、そのための道具立てが揃ってきたこと、そしてRubyのような暗黙的型言語の可能性と、そしてまだ作られていないRubyのサブセット言語を「スピネル」と命名するなど、これからのRubyの夢を語りました。
この記事ではその基調講演の内容を紹介します。記事は前編、中編、後編の3つに分かれています。いまお読みの記事は中編です。
高校時代に妄想したプログラミング言語「Alpha」
さらにさかのぼりますね。
1982年頃、私は米子という町で高校生だったのですけれども、そのときに作った言語の名前が「Alpha」ですね。
これも本邦初公開の名前です。
これは「ぼくのかんがえたさいきょうのげんご」っていう感じなんですけれども、当時、私の使っていたコンピュータはPC-8801無印というやつで、同時にシャープのPC-1210というポケットコンピューターも使っていて、どちらも電源を入れるとBASICが動くんですね。言語を作るとか、そういう感じではないんです。
当時、とんがったプログラマーたちはですねアセンブラを駆使してPC88やPC80の上で言語を作るみたいな人もいましたけれども、私はそんなとんがったプログラマーではないので。
当時のプログラミング環境や当時の私のスキルでは、プログラミング言語を作りたいと思っても作ることが全然できなかったんですね。
本屋に行って今のプロム言語を作る方法はないかって調べてみても、コンパイラっていう本があって、開けてみても訳が分からないんですね。
中田(育男)先生という、後に私の大学の先生になった人が書いた本を読んだんですけれども、大学の教科書ですから分からないんですよね。
もう一つ、やさしいコンパイラの作り方という本もあって、ちょっと薄いしこれなら分かるかなと思ったら、「やさしい」はコンパイラの方にかかってるんですよね。
つまり仕様が小さいコンパイラであって、作り方は決してやさしくないという。挫折するしかなかったんですけれども。
仕方がないので、いつかちゃんとしたコンピュータを手に入れて、ちゃんとしたスキルが身に付いて、ちゃんとプログラミングできるようになったら、こんなプログラミング言語を作りたいという妄想をするわけです。
私も小学校時代から妄想タイプだったので、いつか自分の言語ができたらな、へへへ、とか言いながらノートを書いて、自分の妄想したプログラミング言語でプログラムを書いて。
忘れてしまいましたけれども、このAlphaというプログラミング言語の仕様はもう何も覚えてないんです。作ったということしか覚えてなくて、ノートの紛失によって失われてしまいました。
「バベル17」で人工の言語にはまる
さらにさかのぼって1980年頃になりますけれども「バベル17」(バベルセブンティーン)という小説がありまして、これはサミュエル・R・ディレーニイという人が書いた本なんですけども。
ネタバレになるのであんまり喋れませんが、バベル17というのは一種の暗号なんですね。暗号は実は人工的な言語であったというようなことで、サピア・ウォーフ仮説(注:思考は使っている言語によって影響を受けるという仮説)を反映したような小説ですね。ぜひ読んでいただきたいと思います。
このとき以来、人工の言語というのにはまったんですね。当時まだ中学生か高校生ぐらいですけれども、例えばエスペラントであるとか、それからそのすぐ後にプログラミング言語にはまったんですね。
そういうことで、言語を作ることそのものが私にとってある種の夢だったんですね。自分で決めたかったんですよ。私にとってプログラミング言語とは作りたいもの、でした。
その頃、私の周りにプログラミングをする人はいないわけです。情報といえば、例えば「月刊アスキー」や「I/O」「マイコン」「RAM」とか、マイコン雑誌ぐらいしか情報がなくて。
その雑誌に、新しいプログラミング言語が、みたいな記事が載るわけです。そうすると、プログラミングに興味がある人のうちのそうだな10人に1人、あるいは3人に1人ぐらいはプログラミング言語を作りたいと思う人がいるのかなと私は思ってたのですが、大学に行ってプログラミングに詳しい人が周りに増えると、プログラミング言語を作りたいと思う人は本当に少数派だと気がついたんです。
Rubyは私の夢の実現である
そうやって「作りたい」と思ってから大体10年以上たってから、1993年ぐらにいは作りたいと思っていたので、そこから10年以上経って、スキルと環境が追いついてRubyを実際に作ることができるようになる。
そうするとRubyは、今から数えて40年以上前からの私の持っていた夢が実現したものであるということですね。
だから「One Man's Dream」はディズニーのあれですけど、私が、1人の男が作りたいと思ったものが現実化して、いろんな段階を踏んで世界に広まって、そして世界を変えたということですね。
昨日あたりから「#ruby30th」というハッシュタグを見ると、本当にたくさんの人たちがRubyを使って生活が変わったとかね、Rubyのおかげでその就職ができて、結婚できて、なんかすごい怪しい通販の広告みたいな感じがしましたけれども、それも含めて本当にたくさんの人たちに人生に影響を与えたと思います。
犬の名前をRubyにした人もいましたし。自分の子供の名前をRubyにした人もいましたね。
(この講演の)タイトルの「D is for Dream」というのは、Rubyは私の夢の実現であるということをご紹介しようと思って、話をしてきました。
ここからは、未来の話をしたいと思います。
≫続きます ~ Ruby30周年イベント(後編):まつもと氏「Static Compiler for Ruby」を作りたい。道具立ては揃ってきた
あわせて読みたい
Ruby30周年イベント(後編):まつもと氏「Static Compiler for Ruby」を作りたい。道具立ては揃ってきた
≪前の記事
Ruby30周年イベント(前編):Rubyを作る前のまつもと氏が作りかけた、Rubyの原点となるプログラミング言語「Tish」