『ストラウストラップのプログラミング入門』

ふつりな(『ふつうのLinuxプログラミング』)を図書館に返して以来、やる気が減退していたので、あきらめて週末に買いに行きました。

その際、予定になかったこの本も、つい一緒に買ってしまいました。

ストラウストラップのプログラミング入門

ストラウストラップのプログラミング入門

# 家中の本を電子化しようとしている時に買うべき本でないのは確か。

立ち読みして、素晴らしい本だと感じたので、(技術書に関しては珍しく)人の意見を聞かずに買いました。

自分はストラウストラップ先生のことをよく知りません。なのに、C++を至高の言語として押しつける人だと、勝手に想像していました。

しかし、この本の前書きや1章を読んで、違うと分かりました。著者は、C++をあくまでもツールとして捉えています。そして、プログラミングもまた、コンピュータサイエンスソフトウェア工学の下位区分であると主張します。

最も広義に捉えたとしても、プログラミングをさらに大きな何かの一部として受け止めることが望ましい。

C++や他のプログラムの位置づけが誇大に受け取られないように注意しつつも、世界中の様々な分野で遍く使われていることには言及するという、非常に注意深い書き方がなされています。

また、次の言葉が印象的でした。

最終的には、別のプログラミング言語を学ぶべきである。プログラマとして活動することは考えていないとしても、ソフトウェア分野においては、複数の言語を知らずしてプロになるのは不可能であると考えている。

複数言語を知らなければプログラマではない、という有名な言葉があります。自分はこの言葉を聞くたびに、プログラマという仕事は大変だなぁ、複数の言語を使いこなすなんて、とのん気に思っていました。しかし、その要請は他人事ではないらしいこと――真偽はともかく、少なくともある言語の第一人者がそう認識していること――が分かりました。

本文はマイペースな語り口で進みます。この調子で書いたら、そりゃ1000ページいくわって感じです。今日は、2章のドリルまで。

新しく覚えたことは、このあたりです。

  • main関数で、関数の本体にreturn文がなければ、「return 0;」があるかのような動きをすること
  • 「<<」を「<」にしてもコンパイルはできるが、「演算子にプログラム上の作用がありません」というwarningが出ること

練習問題は、また今度。