プログラミング言語C++
プログラミング言語C++という本を紹介します。
ストラウストラップが書いた名著(迷著、冥著)です。
C++を愛するプログラマとしては絶対に避けては通れない本で、C++のバイブル(聖書)と呼ばれています。辞書として使っている人もいます。
C++の文句を言っている人たちは、C++が好きでたまらない人が多いので、私も「プログラミング言語C++」を敬意をもってディスりながら、C++を称えたいと思います。
C++の他の本の紹介は以下でお願いします。
>>> 【C++魔術師への道】どうやってC++を習得するか?
C++の他の知識については以下でお願いします。
ストラウストラップ
ストラウストラップは1950年デンマーク生まれで2022年時点で存命です。
ベル研究所に勤めて1983年にC言語のオブジェクト指向的拡張であったC++を開発しました。
以後、C++を素晴らしいプログラミング言語があり続けるために努力しているということです。
著者自身のプログラミング言語C++第4版のページには、amazonのレビューでディスられたことに対する反論みたいなのも書いてあって微笑ましいです。
敬意をもってディスる
C++プログラマは自分のことを「変態プログラマ」などと呼んで、C++をディスりつつ「俺ってすごいでしょ」みたいなトークをするウザイやつが多いです。
その例にもれない「C++の魔術師」である私は、伝統に則り「プログラミング言語C++第4版」をディスりながら称えたいと思います。
C++の進化ってすごい Cはほぼ進化しないけど
カーニハン&リッチー著「プログラミング言語C」は第2版が最終みたいなものです(実際は、その後も少し進化していますが)。また、無理すれば初心者にも読めます。
しかし、C++はいろいろ進化しています。
C言語にオブジェクト指向を付け加えただけの初期のC++はとてもかわいいものです。
オブジェクト指向の部分だけでなく(ここもかなり複雑になっていますが)、
範囲指定のfor文とかポインタの無効値の定義nullptrなどの細かいところに手がとどくような改訂や、ジェネリックプログラミングの進化など、凄まじいものがあります。
初期のC++と比べると別の言語と言ってもよいくらいに進化しています。
初心者向けではない
最強に分厚い本ですが、冒頭で「初心者は他の本読んでね」と言われます。
他の言語に精通していてC++の初心者という方なら読めると思いますが、プログラミング初心者は絶対に読めません。これは確信をもって言えます。
初心者は初心者用の本から入ってください。
ページ数がすごい進化している
ページ数は以下のように増えてます。ページ数は日本語版で参考値です。
- 1985年(初版) 382ページ
- 1991年(第2版) 889ページ
- 1999年(第3版) 1031ページ
- 2013年(第4版) 1319ページ
初版の382ページがプログラミング言語C第2版の343ページより多いです。
版を重ねるごとにページ数が爆発しています。
コンピュータ関連の本は厚い本が多いですが、ストラウストラップのこの本は凶器にもなりえます。
会社に置きっぱなしにしておくと誰かが調べものをしにくるのでウザかったです。
辞書と言うより読み物
辞書代わりに使う人が多いんですが、辞書として使うと使いにくいです。
どこに何が書いてあるかは慣れないと難しいです。何かを調べようと思い立ってから辿り着くまでに数分かかります。
というのも、辞書的に書いてないからです。読み物のように書いてあるので辞書として使うのには向きません。
1300ページ超の読み物をしっかりと読んでいくのがC++の伝承者に与えられた使命です。C++を使えるようになりたい人は一日一時間は読んで心を落ち着かせるべきです。
様々なパラダイム
C++はいろいろなパラダイムを取り込んでいることで有名です。下記の様に何でもできます。
- 手続き型プログラミング
- データ抽象化
- オブジェクト指向プログラミング
- ジェネリックプログラミング
さらにC++は、Rustのように言語仕様を洗練させて小さくしようと言う気が全くありません。C++の言語仕様は巨大です。
私は何十KステップもC++のプログラミングをやってきましたが、C++の技を全て使えるか、と問われると「全然そんなことないです」と言います。(魔術師と名乗ってすみません)
世界中にいるC++プログラマは、自分の得意なところを磨きつつ、使ったことのない技はいつか使えるようにと、「プログラミング言語C++」を読んでいるのです。
C++で転職
「プログラミング言語C++」を通読できるほどの実力をお持ちでしたら、どこに行っても通用すると思います。とりあえず、以下でスキルチェックしてみませんか?
まとめ
ストラウストラップの名著【プログラミング言語C++】を紹介しました。
C++の他の本の紹介は以下でお願いします。
>>> 【C++魔術師への道】どうやってC++を習得するか?
C++の他の知識については以下でお願いします。
コメント