Go
golang
ibmcloud

今さらだけど、Go言語に入門するための情報源

Go言語の勉強を始めたばかりの超初心者なんで、プログラミング始めるに当たり、必要な情報を収集したものです。
Gopher(ホリネズミ)

Go言語とは

Go(golangと呼ばれることも多い)は、2009年にRobert Griesemer、Rob Pike、Ken ThompsonによってGoogleで作成されたプログラミング言語です。 これは、AlgolとCに似ており、ガベージコレクション、制限された構造型、メモリセーフ、およびCSPスタイルの並行プログラミング機能が追加された、コンパイルされた静的型言語です。 (CSPスタイルとは、並行システムにおけるインタラクションのパターンを記述するための正式な言語の仕様に影響されているという事の様です。) Googleが開発したコンパイラやその他の言語ツールは、すべて無料のオープンソースです。

Go言語が成功している理由

Rob Pike氏が、Go言語の成功している理由として,語った要約です。

などのGo言語のエコシステムがよく挙げられるそうです。また,言語の特徴としては,

  • 並行プログラム
  • インターフェース

などが挙げられるそうですが,どれも本当の理由ではないということでした。 Rob Pike氏が考える成功の理由は,Go言語のSimplicity(単純さ)です。

参照元: Go言語の父と呼ばれるRob Pike氏による基調講演~Go Conference 2014 http://gihyo.jp/news/report/01/GoCon2014Autumn/0001

Go言語の適用用途

2016年のアンケート調査によると、Go言語の利用用途としては、Webアプリケーションが最も多く、次がシステム・プログラミングなんですね。

スクリーンショット 2018-01-11 22.24.40.png

参照元: https://blog.golang.org/survey2016-results

インストール方法

ちょっと、使ってみたいという場合は、パッケージマネージャーでインストールできるUbuntu Linuxが便利だと思います。 でもGo言語のバージョンが古いので後述の仮想環境を利用するのが、お勧めです。

仮想環境

Go言語のバージョンを指定してインストールする、Go言語のバージョンを切り替える便利なツールです。

パッケージ&ライブラリ

パッケージの依存関係を解決してパッケージをインストールするツールに関するリンクです。

godep

注意 goenvでgolangをインストールした場合、godepが正しく動作いない様です。 困まる場合は、Getting Start, The Go Programing Language の従って、インストールするとgodepが正常に動作する様になります。

Glide

dep

  • depのインストールと利用法 (現在は実験的な位置付け、しかし実用可能、Go言語 1.8以降) https://github.com/golang/dep

パッケージのリスト

Go言語ホームページ、ドキュメントなど

最初に環境変数 GOPATH と ワークスペースの関係について、理解しておくと、コードを作り始めた後に困らなくても良い。

ドキュメントの在り処

チュートリアルなど入門

Webフレームワーク

RESTフレームワーク

Go言語ソースコード、サンプルコードなど

エディタやIDE

デバッカ

質問、サポート・コミュニティ、Issueトラッキング

GoDoc

クラウドやDocker実行環境

CloudFoundry

Docker

Major Cloud

API Library

参考書