グーグル、C/C++に代わる新言語「Go」をOSSで公開

Google が新しい言語を発表。Noop涙目。

Goはグーグルの社員7人が「20%の自由時間」を利用して開発した。設計・実装を行っているのが分散OSPlan 9」の創案者であるロブ・パイク氏や、Unix、Cの生みの親、ケン・トンプソン氏、Google ChromeのV8エンジンを開発したロバート・グリースナー氏など錚々(そうそう)たるメンバーで、こうした点でも注目を集めそうだ。

グーグル、C/C++に代わる新言語「Go」をOSSで公開 − @IT

言語仕様も興味深いけど、開発者の顔ぶれがすごい。彼らは今Googleにいたのか。大学の教授にでもなっているんだと思ってた。

 Goは軽量な型システムを備えた静的型付け言語という。型の暗黙変換はない。近年、静的型付け言語で記述が冗長になりがちなことなどから、動的型付け言語の人気が高まっているが、それは多くの静的型付けの実装が悪かったからだ、とパイク氏は指摘する。

まったくだ。「静的言語である」ことと「簡潔で使いやすい」ことは両立することに気づいてないやつが多すぎる。静的であることを、使いにくさの言い訳にするな。

 Goには“インターフェイス”と名付けられた仕組みがあり、パイク氏自身は「おそらくGoの中で、もっとも斬新なアイデア」だとしている。Goのインターフェイスは、C++でいえば、純粋仮想関数に似ているという。データメンバがなく、すべての関数が仮想関数であるようなクラスだ。Goでは、あるインターフェイスが定義するメソッドをすべて実装した型は、そのインターフェイスを実装しているものと見なされる。こうして個々のメソッドという実装をクラスという概念でまとめるよりも、より柔軟な型とメソッドの対応付けが可能になるのだという。

これはJavaのinterfaceのように実装の共有はしないのか、それともRubyのmoduleのように実装の共有も可能なのか。『もっとも斬新なアイデア』というからには、後者じゃないと困る。

 Goで注目すべきなのは、並列処理を念頭に設計されていることだ。Goではmutexやロックといった機構のほかに、抽象度の高い“ゴールーチン”(Goroutines)や“チャンネル”(Channels)といった仕組みを備えている。

それもいいんだけど、数量型とかDecimalのサポートとかはないんだろうなあ。なんかニュースを見る限りは、お金を扱うようなアプリケーション向けの機能は特になさそう。「0.05」を10進数で扱ってくれる言語ってやっぱりCOBOLぐらいなんだろうか。


・・・


FAQをちら見した。


例外がない言語かよ。まじっすか。萎えるなあ。