まえがき

最初に考えたこの本のタイトルは『Boring退屈な Go』でした。実のところGoのコードは退屈なのです。

退屈なトピックについて本を書くというのはちょっと奇妙なことでしょうから、説明が必要になります。Go言語の機能は、モダンなプログラミング言語に比べると「だいぶ少ない」と言えるでしょう。Goで書かれたプログラムは、ある意味「単刀直入」で、ときによっては繰り返しが多くなる傾向にあります。継承インヘリタンスはありませんし、アスペクト指向プログラミングも、関数の多重定義オーバーロードもありません。ましてや演算子オペレータ多重定義オーバーロードなんてもってのほかです†1

[†1] 訳注:ジェネリクスはようやく2022年3月に導入されました。

パターンマッチングもありませんし、名前付き引数もありません、例外処理もないのです。一方、多くのプログラマーにとっては恐怖の的かもしれませんが、ポインタは含まれています。並行実行のモデルも他の言語とは違っています。1970年代のアイデアに基づいているのです(ちなみにガベージコレクションに使われているアイデアも同じく1970年代のものです)。簡単に言ってしまえばGo言語は「先祖返り」したような言語です。そして、これがこの言語の良さでもあるのです。

退屈だからといって価値がないわけではありません。Go言語をうまく使いこなすためには、さまざまな機能をどのように組み合わせればうまくいくのかを理解しておく必要があります。GoのコードをJavaやPythonと同じように書くこともできますが、その結果は満足できるものとはならないでしょう。「何でこんなことになるんだ」と首を傾げてしまうかもしれません。そこでこの本の登場です。Go言語の機能をひと通り紹介しながら、「イディオム的なコード」をどのように書けばよいのかを説明していきます。 ...

Get 初めてのGo言語 ―他言語プログラマーのためのイディオマティックGo実践ガイド now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.