Goってどんなプログラミング言語?
Go言語は2009年登場の、現在よく使われているものの中では比較的新しいプログラミング言語です。開発元はGoogleで、発表当時はその点で注目度の高い言語でした。しかし、現在多くのプログラマーに使われている理由には、言語自体の魅力があります。
Goは何が得意?
Goの特徴としてよく挙げられるのが、「マルチプラットフォーム」「高速な並行処理」「シンプルな文法」の3つです。
Goはコンパイル型言語で、ビルドの際に「シングルバイナリ」の実行ファイルを生成します。シングルバイナリとは簡単に言えば、それだけで実行が可能な形式のことです。さらに、Goには「クロスコンパイル」の機能が充実しており、Windows、macOS、Linuxどこでも動くプログラムを簡単に作ることができます。マルチプラットフォームと言われる所以はここにあります。
WebアプリやWebサーバの開発では、多数のリクエストを処理するためのパフォーマンスについて考える必要があります。Goには「goroutine」という、OS/マシンの能力を引き出してうまく並行処理を行う機能があります。一般的に、並行処理の実装は複雑になりがちで、気をつけなければいけないことが多いのですが、Goではこれが簡単に行えます。
3つめの「シンプル文法」、これは「書きやすい」「覚えることが少ない」といったメリットにつながるものですが、実はGoに初めて触れた人には驚かれる、または避けられる理由にもなっています。
Goは「愚直で頑固」?
Goのシンプルさは「愚直で頑固」とも言われます。慣用句のように書かなければいけない記述が多い一方、ある機能を実現するためのコードの書き方の選択肢は少ないので、誰が書いても同じようなコードになることが多いのです。このことは、「短ければ短いほど美しいコード!」……とまでは言わなくても、コードの記述量は少ないほうが良いだろう、いろいろな書き方があるほうが良いだろうというプログラマーからは忌避される理由になっています。ただ逆に、書く人によって差が出にくい言語というのは、チームでの開発やコードの引き継ぎの際には重宝されます。Goは、より開発現場のことを考えた言語であると言えるかもしれません。
Goをうまく書くためには?
本書はそんなGo言語について、入門を終え、レベルアップしたいと感じている読者を対象にした解説書です。関数、パッケージ、並行処理、テストなど、目次に並んでいるのはベーシックな見出しですが、それぞれのトピックでは実際の開発での利用を想定したテクニックがまとめられています。著者は、mattn/go-sqlite3をはじめ、世界中で使われているGoのパッケージの開発者で、Go本体へのコントリビュートも多く数える「Goのプロフェッショナル」です。
「誰が書いても同じようなコードになることが多い」とは言っても、よりパフォーマンスの高い、より可読性の高いプログラムを書くためのテクニックはさまざまあります。また、Goは周辺ツールが充実していますが、その豊富なツールについての知識が物を言う場面もあります。Goのプロのコードの書き方、プロが使っているツールについて知ることで、普段のGoのコーデイングが一段階、レベルアップすることでしょう。