まつもとさんの言語のしくみが面白い

y_koh
4 min readJan 8, 2017

--

本当は全部読んでから書こうと思っていたのですが、僕のスキルセット的に馴染みが薄くてなかなか読み進まず。今40%くらいなところです。でもこの本は抜群に面白いです。

内容としてはまつもとさんが日経Linuxで連載していたStreemという言語を開発する連載をまとめたものです。

あまり知ることのない言語デザインの話

正直、言語処理系の実装の話だけなら途中で飽きてだと思います。まつもとさんもそれではあまり意味がないとのことで、本書では言語のデザインについて多く触れています。これについてはまつもとさんも自画自賛されています。

そのような本が世の中に存在しないのであれば、自分で書くしかありません。幸いにも私は世界的にも数少ない「世界中で広く使われているプログラミング言語」の設計経験があります。さらに趣味をこじらせて、世界中のさまざまな言語のデザインに関する知識があります。さらにさらに、日経Linuxの連載をこなし、複数の書籍の著書としての経験もあります。プログラミング言語のデザインについて語る書籍を執筆するのに、これ以上ふさわしい人材は日本中どこを探してもほかにいないでしょう(自画自賛)

連載なので仕方ないことですが、執筆当初と現在とで色々と変わっているところもあったりします。それについては「タイムマシンコラム」として、もし当時未来がわかっていたらこうしたはずだ、という話があってこれもまた楽しめます。

Rubyの話

序盤ではRubyの話も出てきます。これはもともとこの連載にあたってmrubyを改造する予定だったからみたいですが。

そこでRubyのブロック構文にendを採用した理由や、else ifでもelifでもなくelsifを採用した理由などが語られています。(ちなみに僕は久しぶりにrubyを書くとelse ifと書いて動かないってことがよくあります。。)

この辺を読み進めていくと、全てちゃんと意味があってデザインされているんだなぁということがよくわかります。もちろん好みなところも多いですが、それについてもなぜ好きなのかということが語られているのは好感が持てます。

まつもとさんの頭の中

普通は言語というのは、「こういう風になっているものなのだ」という学び方をして、「なぜそうなっているか」という点については解説されないものです。今回はRubyの開発者として、普段あまり語らない(私は比較的語っている方ではありますが)、理由の部分に踏み込んで語ることができたのは、原稿を書いていてもとても楽しかったのを覚えています

Rubyという世界中で使われている言語を開発したまつもとさんが、言語を設計・実装する上で何を考え・何に悩みつつどう落とし所を見つけて進めていくかを知ることが出来るのはとても貴重だと思います。こういうことがわかる書籍ってあまりないと思うんですよね。

また本書では「デザインは決定である」とも言っています。何を考えていたかという決定に至るまでの「思考プロセス」は言語開発以外にも応用が効くところだと思います。

おわりに

僕は普段はiOSの開発をしてるのですが、たまにこうやってぜんぜん違う技術領域に触れてみるとまた違った楽しさがありますね。最近はずっとiOSに閉じてしまっていたなぁという反省があるので、今年はもう少し興味の幅を広げられたらなと思っているところです。

そんな僕に今年最初の一冊としてはとても良かったです。興味のある方はぜひ読んでみてください。

--

--