絵を描いたりネットいろいろ
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
it プログラミング言語 go
今日はプログラミング言語Goについて

ようつべのGoについての公演動画
プログラミング言語 Go:Google DevFest 2010 Japan
http://www.youtube.com/watch?v=QKA_EIXVc9s

Google Developer Day 2010 Japan : プログラミング言語 Go
http://www.youtube.com/watch?v=8Em8Z9FOk4w

本家
http://golang.org/
http://golang.org/doc/effective_go.html

日本語翻訳とか色々
http://go.shibu.jp/
http://golang.jp/


とりあえず、この記事を書くためにこのあたりを見て、そっこーで知識つけてきた


package main

import "fmt"

func fib() func() int {
b := 2
return func() int {
b = b*b
return b
}
}

func main() {

f := fib()
println(f(), f(), f(), f(),)

for i := 1; i < 10; i++ {
for k := 1; k < 10; k++ {
if k*i < 10 { fmt.Print(" ") }
fmt.Print( k*i , " ")
}
fmt.Println( )
}
x := []int{1,2,3}
y := []int{4,5,6}

x = append(x[:3] , y...)

fmt.Println(x)

type A struct {
x int
}

b := new(A)
b.x = 91
println(b)

hello()

}
var a string
func f() {

print(a)
}

func hello() {
a = "hello, world";
go f();;;
print("test");
}



>
4 16 256 65536
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
[1 2 3 4 5 6]
0xf840000208
test



そういうわけで今、ぼくはこのくらいGo言語をかけます


GoはRubyとは違って高速ネイティブを吐くコンパイラ言語としての立ち位置を目指しているはずで
C,C++の位置にこの言語がこれる事が好ましい
いい加減、C++はもうイヤだって人多いと思うから

まず、Goによくみられる
x := 4
みたいな記述は、変数宣言と、代入を表している
それの省略記法ですね
省略しないでかくと
var x = 4
に、なる
こんなことしなくても
x = 4
で変数宣言&代入でいいじゃん!
って誰でも思うけど、そこは・・・やっぱりコンパイラ言語なので、最適化とかしたいから、
スクリプト言語程には柔軟に作る事が出来ない
柔軟にしちゃえよって思うけどね
普通にかいた場所では最適化しまくって高速な機械語はいて
スクリプト言語染みた記述をした場所では、ちょっと最適化なしで機械語はけば良いだけなんだけど
思うような言語を誰も作ってくれない

上の動画二つを早送りでも適当にみてチュートリアルのサイト読めば、Go言語はおおよそ理解できると思う

あとこの言語は、並列処理についてもよく考えていく言語なのかな
ゴルーチンとかいう怪しいものがある

文の末尾の;がなくなっただけでも、C++よりも、D言語よりも、マシでしょうね
ただ、末尾の;なくすくらいなら括弧も外して
print x で出来るようにしたらいいのにって、思っちゃうけど

難しいか

でも多分、このままこの言語の開発が順調に行けば
多少はC,C++の代わりに使われていくようになる可能性はある
たった2,3年でここまで来たのは他のプログラム言語の開発速度から見たらとても凄い事です
さすがにGoogleがやってるだけはある

でも、使われない可能性もあって
理由としては、パソコンのスペックが年々どんどん上がって
並列処理への関心も高まっていること

もし、家庭pcでもコア数が10個とか20個になって
並列処理の技術も完成しちゃったら、
多分、高速な機械語を吐くプログラミング言語なんて多分いらなくなって
言語とか何でもよくなる
勿論ハードウェア周辺では、高速な言語で書くことになると思うけど

高速な言語を使わなければならない箇所っていうのは、pcスペックの上昇とともに
どんどん小さくなっていく
けど、どちらにしろ未だにC言語で書かなくちゃいけないとか
ありえなすぎると思うので
Go、この言語が形になれば、
ポツポツとCの代わりに採用していく企業が出てくるんじゃないかなって思っています
あと5年は、かかると思うけどね

実はちょっと今日Goの仕様を調べてがっかりしてるんだ
文章のテンションみてわかるかな
ちょっと見た感じでは、もしかしたらスクリプト言語並の開発効率を
Go言語でも出せるかなーって期待していたんだけど、全然そんなことなかった
C++よりはマシっていうくらいですね、今のところ
やっぱり自分はスクリプト言語つかってで楽に生きてたほうがよさそうだ

ちなみに今のところGoを実行する方法は4つくらい

1、GCCGO
 Linuxだったら入れやすい?windows版はあるか知らない

2、6g 8g とかいう謎コンパイラ
 http://code.google.com/p/go-windows/downloads/list

3、ideone
 Webから使える

4、http://golang.org/
 Webから使える
    0..

kakikomi