"第1回 Google Go登場の背景" を読んで思ったこと
このエントリを読んで気になった事。
Goが、Cのポインタ演算機能を外したこと(*2)は違和感なく受け入れられる人であっても、JavaやC++などのオブジェクト指向言語に欠かせない要素と考えられている「クラスの継承」が言語機能から外されたことには驚いたことだろう(ほかにも、Goでは例外処理機能や型を実行時に引数とするジェネリックなどがサポートされていない)。
Google Go登場の背景 (2/2)- @IT
オブジェクト指向言語に欠かせないのはポリモルフィズムですし、クラスの継承が言語機能から外されることに驚かない人も多いのではないでしょうか。GoFのデザインパターンでも "継承を使うな委譲をを使え" と強調してたり、ECMAScriptのようなクラスが無い言語もそれなりに普及してますし、オブジェクト指向言語 = 継承という式は成り立たなくても不思議ではないでしょう。
また、 "型を実行時に引数とするジェネリックなどがサポートされていない" は "型をコンパイル時に引数とする" の間違えでしょうか?型を実行時に引数とするってポリモルフィズムとかリフレクションとかそっち側の話のような気がします。(ポリモルフィズムは型を引数にするのとは違う気がするけど。引数に渡してるのはオブジェクトであって型じゃないし)
まず、Goは現在に至るまでCが用いられている分野で、Cに代わって用いられるポテンシャルを有している(今後のマルチコアCPU時代にあっては、Goで記述することによる若干のオーバーヘッドは、容易に並列処理が記述できるなどのメリットが補って余りあるであろう)。
Google Go登場の背景 (2/2)- @IT
cが用いられている分野ってのが何を想定しているかによりますが、組込み(っていうのも幅が広いけど)やらOSまわりやらに取って変われるのかは、ガベージコレクタを持っている時点でかなり現実味がないように感じられます(その辺を上手く扱えるような言語仕様があるのかな?)。lispとかprologとかでOSのカーネル書く人とかもいますので、もちろんいずれはgoで書かれるものもあるかもしれませんが、少なくとも現時点でcを選択している人や分野にとってはあまり興味を引かないのではないかと。