プログラミング言語Go

Plan 9開発者がぞくぞくとGoogleに吸い込まれていき、何が出てきたかというとGoというプログラミング言語だった。TwitterでもGoに関連してPlan 9への言及が増えている。これを機にPlan 9にも興味を持ってもらえれば、これ幸い。

Goに対する私の第一印象は「Limboだなこれ」だった。誰かはLimbo++とかつぶやいてた。CSPスタイルの通信モデルはNewsqueak、Alef、Limboとずっと一貫している。2007年にもなってなぜGoogle Techtalksで20年も前の話をするんだろうと疑問に思ったけど、Goへの伏線はもう生まれていたのかもね。で、Goの構文はC/C++に近いので、Limboより取っつきがよさそう。LimboはDisというプロセスVMバイトコードインタプリタ)上で動作する言語だったけど、Goはネイティブコードにコンパイルされる。性能はよさそう。

マルチコア時代になって、Erlangなどが流行り*1、この手の高速な並行プログラミング言語への需要は高いと思うのだが、さてこれからGoはどうなっていくのだろうか。まずは落ち着いたらちょっと触ってみたい。

やっぱり気になる例のマスコットはgopherという名のリスらしい。Renée Frenchが描いた訳じゃないだろうけど、Glendaにインスパイアされているのは明らか。Google hopes to remake programming with Go」にはRenée Frenchによるって書いてあった*2。っていうかRenée FrenchがRob Pikeの奥さんだったってことを初めて知った。

ちなみにGoはPlan 9ではまだ動かない。。。

余談:CSPと言えばOccam。OccamといえばTransputerで、先日のカーネルVM探検隊の飲み会でもなぜかこの辺の話に巻き込まれた。Transputerは80年代ぐらいに流行った技術だけど、最近もXMOSって会社が似たようなアーキテクチャのプロセッサを作っていて、インタフェース誌の記事にもなっているらしいので、後でチェックしておこう。

余談2:2006年ぐらいに(少なくともRob PikeがGoogleに行った後だと思う)、Googleの巨大ホワイトボードに書かれたマスタープランってのが話題になったけど、"Google OS" <-> "Replace GNU code to BSD" -> "Plan 9" -> "Plan 10" -> "One that goes to 11"ってことが書かれている。この日記でもネタとして取り上げようと思っていたはずだけど、ぱっと見見つからなかったので今書く。

*1:類似言語と比較して、Erlangが流行った最大の理由は開発/実行環境がちゃんとしているかららしい。

*2:FAQによるとWFMUというFM局のTシャツのために書いた絵から派生しているようだ。これかな?