1 of 15

よいGoわるいGoふつうのGo

Daigo Ikeda

Septempber 28, 2013

2 of 15

自己紹介

Daigo Ikeda

@hogedigo

生息地:静岡

年齢:19進数でハタチ

専門:Java。最近はGAE/jaがメイン

合同会社ナイツオ

http://www.knightso.co.jp/

3 of 15

アジェンダ

  • Goのいいとこ
  • わるいとこ

4 of 15

Goのいいとこ

個人的にGoの気に入ったところをひたすら挙げて行きます(^^)

5 of 15

マスコットがカワイイ

Go Gopher

6 of 15

速い

  • コンパイルが速い

  • 実行速度が速い
    • ネイティブコードで実行
    • 並列処理に強い(マルチコアで激速になる可能性)
    • GAEのspin-upが速い!

7 of 15

コンパイラが親切

  • 分かりやすいコンパイルエラー

  • たまに鬱陶しい構文チェック
    • 波括弧の位置
    • 使用されていないimport

参考:

http://play.golang.org/p/mKHUi6WYdD

8 of 15

静的な型

  • CやJavaと同様の静的型チェック
  • 型の階層構造や実装の継承がない
  • interfaceを用いたポリモーフィズム
  • ダックタイピング

参考:

http://play.golang.org/p/ufEYhyFkvn

9 of 15

シンプルで洗練された言語仕様

10 of 15

流行の言語仕様

  • First-Class Functions
    • 高階関数
    • 関数型
    • クロージャ
    • メソッドオブジェクト

http://play.golang.org/p/BnwS-ptzHp

  • 型推論
  • 並列処理

11 of 15

並列処理

  • goって書くだけ!�
  • (おまけ)goroutineとchannelで他言語のいろいろな言語機能を実現できる

https://sites.google.com/site/gopatterns/concurrency

http://jxck.node-ninja.com/slides/gocon-2013spring.html#slide-22

http://jxck.node-ninja.com/slides/gocon-2013spring.html#slide-23

12 of 15

その他

  • コードフォーマット半強制(gofmt)
  • GC
  • 標準ライブラリが意外と豊富

http://golang.org/src/pkg/

13 of 15

まとめ

Goのメリットはバランス

  • 近年のいろいろな言語の良いところを採用

  • 後発言語ならではの新しいアイディア

  • 弱点が少ない・・・気がする

14 of 15

Goのわるいよくわからんとこ

  • エラー処理(panic)�戻り値チェック面倒
  • 検索に引っかかり辛い�→golang、go言語
  • 変数名が短い(文化)
  • genericsやっぱり欲しい・・かな
  • まだマイナー

15 of 15

Thank you!

Let us Go!