Golang始めました。


改めてGopher向けにGolang関連の記事を書いていこうかなと。

image

Go言語のいいところ

  • ネイティブコードを出力するので結構早いよ!
  • ネイティブスレッドと協調スレッドのいいとこ取りのgoroutineがあるよ!
  • チャネルで疎結合につなぐ仕掛けを言語仕様に持ってるよ!
  • マルチコアCPUの性能を引き出しやすい!
  • すでに主要プラットフォームはおろかマイナー系、arm系などでも動くようになってる!
  • 質素だけども応用の効く標準ライブラリが付属!
  • すでにワンサカとサードパーティライブラリが作られ始めてるよ!
  • 画像処理ライブラリや証明書関連をgoで実装してるので依存ライブラリとかで悩まなくて済むよ!
  • pure-goアプリのアウトプットはOS基本ライブラリくらいしか依存がないので配布が楽!
  • cやc++の資産を取り込む支援機能あり!
  • テスト、カバレッジツール、ベンチマークなども標準サポート!
  • ビルド、パッケージインストーラ、コードフォーマッタも付属!
  • コメントからのドキュメントテスト、ドキュメント生成もできちゃう!
  • イマドキの開発手法がバッテリーインクルード。gitとgoのインストールだけで始められます!

HUGOMORE42

Go言語でやんだなーと思ったところ

  • 他の言語のライブラリパスよりもGOPATHは役割が複雑で設定しにくい。
  • サード作者がリポジトリ引っ越したらソースの記述を修正する必要が出る。
  • ダイナミックリンクライブラリの出力機能がまだない。

Goで書くと何がイイのか

数行でかけるHTTPファイルサーバを起ててみればわかるけれど、 nginxに匹敵するくらい高い負荷をかけても動きます。 またApacheと違い10Kコネクション問題も突破します。 ネイティブスレッドモデルと軽量スレッドのいいとこ取りのgoroutineの恩恵です。 goroutineの知識がなくても標準ライブラリを利用するだけで、いろいろと恩恵が得られます。 そしてSSLで起てようと思ったらGoの標準ライブラリだけでできます。

そしてGoにはとってもパッケージを公開しやすい再利用しやすいエコシステムを最初から備えおり、 また、CやC++の資産を取り込む機能も備えているので、 猛スピードでいろんなサードパーティパッケージが公開されています。 古参言語のように何かをやるのに選べるほど複数の選択肢が揃っているわけではありませんが、 ニーズの高い分野は十分にカバーされつつあります。

TDDやドキュメント支援、コード整形等開発に必要な小道具も最初からバンドルされていますので、 モダンな開発手法がいきなり始められます!

まとめ

Go言語なら楽しく性能が出るアプリを良いプロセスで作れるよ!

ʕ ◔ϖ◔ʔ <- このキャラ文字カワイイし。