2009年11月12日

売れてないゲーム機じゃない方のGoが気になる

割と気になるニュース。実際に使われるようになるのは1年とか2年先の話だろうけど。

Googleの新しいプログラミング言語Go
http://jp.techcrunch.com/archives/20091110google-go-language/

Google社が新プログラミング言語「Go」を公開
http://techon.nikkeibp.co.jp/article/NEWS/20091111/177527/

C++に近い実行速度を実現できて、Pythonのように動的な型でメモリ管理もお任せな言語らしい。


以下、golang.orgというサイトをざらっと流し読みした感想とか。割と適当です。間違ったこと書いてたらすいません。

最近多い中間コードを出すタイプじゃないちゃんとしたコンパイラ言語みたいで、コンパイルスピードはかなり速いらしい。

コンパイラは複数用意されていて、GCCベースのを使うと時間かかるけど、6gとか8gと呼ばれるコンパイラを使うと音速でコンパイル出来るとか。


サンプルコードを見ていると、確かにC++に似てるような気もしつつ、それでいてPythonに似てるような気も。もちろんインデントでスコープ表現してたりはしませんが。

なのでC++ユーザにとっては学習コストはけっこう低めになるんじゃないかと思います。


あと、サンプルコードの中にポインタらしきものも見える。

s = "good bye";
var p *string = &s;
*p = "ciao";

Go has pointers but not pointer arithmetic. You cannot use a pointer variable to walk through the bytes of a string.

なんだそうです。


C++との違いを書いたページに、こんな一文があった。

Go does not support function overloading and does not support user defined operators.

どっちも欲しい機能だけど、使い方によっては可読性下げるからなぁ。


あとは現状の言語の多くはマルチコアCPU向けになってないから、現在の主流環境に合わせた概念が入ってますよとか。

並列処理は若干Erlangっぽいらしい。Erlangの勉強を途中で放り出したままの自分にはよく分かりませぬが。


ポリモーフィズムの表現はスクリプト言語チックに同じfuncがいれば動くみたいなことができるらしい。

スクリプト言語の良さを取りつつ、必要な箇所はコンパイラでエラーを吐くようにもする、その辺のバランスの取り方には苦労してそう。このポジショニングが吉とでるか凶と出るか。

実際に1ヶ月くらい自分で使ってみないと良さは分からないだろうなぁ。


その他、詳しい話はだいたいここに載ってます
http://golang.org/


とりあえずは、何年後かにもし流行り始めることがあったら「そういえばこんな言語あったな」と言って手を出せば良いかなぁと。

でも、名前がイマイチだな。Goだけだと検索し辛い。C言語もD言語もR言語も検索し辛くて困るのだけど、それと同じことになりそう。まぁ、DとかRを検索するシチュエーションなんて、そうそうないですが。。。



さっそく試している人がたくさんいるようで

Google の新プログラミング言語 Go をMac OSX にインストール
http://d.hatena.ne.jp/masibonge/20091111/1257919052

個人的Go雑感&メモ
http://inforno.net/articles/2009/11/11/go-language

Googleからリリースされた新しい言語「Go」をビルドする
http://hikipuro.blog105.fc2.com/blog-entry-464.html

なんか Go で書くのが流行ってるみたいなので
http://d.hatena.ne.jp/moriyoshi/20091111/1257929640


えーと、発表されたのって11日ですよね。速いなぁ。このスピードにはとても付いていけない……