江添亮のC++入門が出版された
江添亮のC++入門が出版された。もうすでに一部書店では店頭に並べているところもあるようだ。
9/18新刊『江添亮のC++入門』KADOKAWA(978-4-04-893071-0)江添亮 著◆「C++」棚にて展開中!次の規格として標準化が進められているC++20を意識しながら、現行の規格に準拠したC++プログラムの書き方を徹底的に解説。C++による本格的なプログラム開発に必須の知識を網羅した本格的な入門書。 pic.twitter.com/fZEu6Sm1xa
— 書泉ブックタワーコンピュータ書売り場 (@shosen_bt_pc) September 18, 2019
この本はタイトル通り入門書だ。C++のソースコードのコンパイル方法から初めて、GNU Makeによるビルドシステムを少し触り、基本的な文法を解説し、一部のライブラリの仕組みまで解説する。
この本の執筆にあたっては、知識のブートストラップを意識した。私は一から物を教えるという性質の本で、まだその本では説明をしていない知識を何の説明もなしにいきなり出す本を読んだことがある。巷では絶賛されている本ではあるが、著者自らもうその本で教育をしないと宣言した本だ。そのため、すでに説明した知識のみを使って次の知識を説明するようにした。
ただ、これは思いの外大変だった。入門書を書いている間、なぜ変えたいの知れないよくわからないもどかしさに包まれながら解説を書いていた。そしてとうとうポインターを解説した後、あらゆることの説明がとても簡単になっていることに気がついた。なぜならポインターの知識を前提にしてよいからだ。つまり、ポインターが知識の依存関係の割と根本的なところに存在するらしい。なぜポインターの解説がこんなに遅れたかというと、現代のC++は生のポインターを直接使わずして実用的なコードが書けるからだ。
今回の本の表紙には私の写真が印刷されている。これは今まで2冊の本を出した際に、なぜ著者の写真がないのだ、ぜひ載せるべきだと言われていたので、3冊めとなる今回は、では載せてみようということで実現した。いまのところ、Twitter上での言及が今までの2冊に比べて多いようで、宣伝効果はあるようだl.写真の撮影は古くからの友人でプロのカメラマンの三浦大に依頼した。
私の本のライセンスはGPLv3だが、写真はライセンスされない。写真の著作権は撮影者のもので、撮影者がGPLv3に同意しなかったためだ。撮影者は芸術家気質なので自分の作品を改変されたくないという気持ちは理解できる。
EzoeRyou/cpp-intro: Beginner's guide for C++
この入門書を読み終えたならば、少し古いが「C++11/14コア言語」や、未だに大多数の現場では使われていない最新の「江添亮の詳説C++17」も読むとよい。紙書籍、電子書籍で出版されている他、GitHubで公開されている。
EzoeRyou/cpp-book: C++11 textbook
EzoeRyou/cpp17book: textbook for C++17
数年後も同じ仕事を続けているのであれば、おそらく「江添亮のC++20」のようなタイトルの本が出るだろう。
近いうちに前の本でもやったように、本の出版記念の勉強会でも開きたいところだ。