書籍購入:『プログラミング言語Goフレーズブック』

Amazonのレビューで妙に低評価なので(といってもレビュー自体が1件だけなのだけど)、ちょっと見てみようと思い購入。

プログラミング言語Goフレーズブック

プログラミング言語Goフレーズブック

  • 作者: David Chisnall,デイビッド・チズナール,柴田芳樹
  • 出版社/メーカー: ピアソン桐原
  • 発売日: 2012/10/04
  • メディア: 単行本(ソフトカバー)
  • 購入: 1人 クリック: 5回
  • この商品を含むブログを見る
で、軽くナナメ読みした感想。

  • 明らかに中・上級者向け。Go言語をそれなりに使い込んだけど、いまいち我流でGo言語っぽくなくて悩んでいる人向けか?
  • 各章がサンプルコードで始まるので、それに対する解説の文章が書かれていると思いきや、「読者がサンプルコードの内容・意図を理解できている」という前提でいきなり話を掘り下げていったりするので、Goの言語機能などをある程度理解していないとキツイ。
  • もっともGo言語の初級者でも、それなりにシステムプログラミングの経験があり、異なるパラダイムの複数の言語に触れたことがあるのなら、Go言語のチュートリアルやリファレンス片手に読み進めることは可能だと思う。
  • 翻訳自体はちょっと固め且つ微妙に直訳っぽい傾向の胎動がみられなくもないが、まあ普通でしょう。

件のレビューにて「機械翻訳した結果の文章中の各単語をそれっぽいモノに置き換えただけ」という例えがあるが、これはミスリード。翻訳そのものは普通の範疇だと思う。

どちらかといえばレビュアーが「私は最近Goに触れ始めた者」というところが、レビューが低評価になった要因ではないか? この本の想定読者にマッチしない人が購入したが為の悲劇である気がしてならない。

Go言語は、平行プログラミングにおいては今までのメインストリームの言語とは異なりCSP的な「ゴルーチン+チャネル」のスタイルを持ち込んでいる。その他の言語機能についても、長い時間をかけてじっくり研究した成果をつぎ込んでいるようだ(時間だけでいえば、AlefやLimboのことを考えれば1980年代半ばぐらいからになる)。その間に登場した様々な言語についても、ある程度研究しているだろう。

そういう経歴をもつ言語の中・上級者本なので、既にある程度Go言語に通じている人か、そこまで至らなくとも言語ハッカー的に色々な言語に手を出した経験があるシステムプログラマ(with Go言語のリファレンス)でないと、本書中の議論の前提条件を理解できずにつまづいてしまうだろう。

実際のところ、私が幾つかの章を適当にピックアップして読んだところ、次の3種類に分類できた。

  • 知っている言語機能の話で、読んでいて理解できる章。
  • 知らない言語機能の話だが、今までのプログラミング経験や他の言語の機能からの類推などから理解できる章。
  • 知らない言語機能の話で、今までの経験や知見では不足して補えず、内容を理解できない章。

私はGo言語を少ししか使ったことがなく、言語やライブラリの機能について知らない点が多々ある人だ。ただ、この何年かC言語C++システムプログラミング的なことをしてきたし、複数の言語を軽く触ったことがある。Go言語の機能としては把握していないが、今までの経験や知識から理解できる、という部分があった。

本書はガチの「Go言語中・上級者本」なので、初級者は触れるべからず。