2015年7月20日月曜日

書籍「基礎からわかるGo言語」と改訂2版

2013年の夏、移動するフェリーの中で「ひまつぶしに」と始めた本書「基礎からわかる Go言語」の写経が私のGo人生(?)の始まりだったのかもしれません。写経や復習で結構使い込んでいたので「もう1冊、買わなければ」と思い始めていた2015年の夏、Go 1.4に対応した「改訂2版 基礎からわかる Go言語」が発売されたので早速購入しました。

何が変わったのかと興味津々、私調べで1ページずつ目視でざっくりと新旧を比較して、見つけた変更箇所は約30カ所。サンプルコードも文字コード変更による日本語の差分と2つの新規追加分ぐらいで、内容的には大きくは変わっていませんでした。

すなわち、Goの言語仕様は大きく変わっていない、つまり、安定しているということです。これは新たに言語を習得したり導入したりする部分で重要なことだと思います。Go 1.x系はコードレベルでの上位互換性が保証されていることも強みです。

小さくは変わっているので、主な変更点をご紹介。

Goのバージョン

 Go 1.0.3からGo1.4.2に変わっています。
 go runコマンドの実行時エラーにてexit statusが出力されています。
 サンプルのソースコードもGo 1.4で実行し直して動作確認されているようです。

Windows対応の強化

 コマンドプロンプト上での作業時における大半の注意書きがなくなっています。

コラムの追加

 新しいコラムがいくつか追加されており、既存のコラムの修正も少しあります。

追加された文法に対応

 メソッドの章ではGo 1.1からの「Method values」が追加されています。
 スライスの章ではGo 1.2からの「Three-index slices」が追加されています。
 繰り返し処理の章ではGo 1.4からの戻り値なしの「For-range loops」に変更されています。

その他、

 公式のダウンロード類のURLがgolang.orgに変更
 main関数を含む複数ファイルの実行不可
 go docコマンドの廃止(現在はgodocだがGo 1.5から復活)
 ログファイルの追記モード、など

細かなところまでキッチリと更新されています。

本書のウリは「公式サイトに書かれていること」を解説やコードを交えて日本語で書かれている点です。また、正誤表やミスがない点も挙げられます。たまにベテランgopher(?)の方が「◯◯を初めて知った」と発言されているシーンをお見受けしますが、「それ、本書に書かれてますよ。」というものだったりします。

残念な点を挙げるとしたら、来月リリース予定のGo 1.5対応でなかった点ですね。今後は「Goでモバイルアプリを作ろう」みたいな書籍も出てくるかも!?

これからGoを始めるgopherにはオススメですし、知識の再確認用にベテランgopherにもオススメの一冊です!q@w@p

私版:正誤表

 31ページのCOLUMNにて、Mac版のgitインストーラーのダウンロード先がcode.google.comになっていますが、現在はsourceforge.net(http://sourceforge.net/projects/git-osx-installer)です。

[2015.07.20] go docについて訂正

 go docコマンドですが、改訂2版には「Go 1.2で廃止」と記載されておりGo 1.4.2でも使えませんがGo 1.5からは復活するようです。

$ go version
go version go1.5beta2 darwin/amd64
$ go
Go is a tool for managing Go source code.

Usage:

go command [arguments]

The commands are:

build       compile packages and dependencies
clean       remove object files
doc         show documentation for package or symbol
env         print Go environment information
        (以下、省略)