『Cプログラミング診断室』を読んだ

改訂新版 Cプログラミング診断室

改訂新版 Cプログラミング診断室

たまたま BOOK OFF にあったので買って読んでみました。かなり古い本で、一度品切れになってから著者がネット上で全文を公開して、じつはこのブログの過去記事でそのサイトが紹介してあります。
obelisk.hatenablog.com
ただ、自分はネットでは長文が読めない体質(?)なので、紙媒体で読んでみてよかったです。


内容は過去記事にも書きましたが、C言語で書かれたいわゆる「クソコード」(笑)を眺めて、怒りにうち震えつつリファクタリングするという、身も蓋もない本です。この改訂新版が出てからでも既に 15年が経っていますから、C言語はさすがに長く使われていますね。中身は非常におもしろかったし、ためにもなりました。本書ではいろいろなことが指摘されていますが、特によく出てくる怒り(笑)としては、「変数や関数の名前はとても大切」「長い関数を書くな」「コピペをするな、重複したコードを書くな」「ハードコーディングをするな」「何でも自分で書かないで、よいライブラリを使え」というところでしょうか。これらは C に限らないですね。

また、著者は「閉じこもっていないで、よき仲間・助言者を持て」としきりに強調します。本だけではダメだ、独学では初心者プログラマから脱却することはむずかしいと。これなどは自分としては、ため息が出ますね。僕はプログラミングは完全に独学なので、おそらくはひどいコードを書いているのだろうなと。でも、田舎に住んでいるとなかなかむずかしいです。思うに、田舎に住んでいて誰も相談するひとはいないけれど、素人プログラミングしてみたいという自分みたいな人は一定数いるのではないでしょうか。そういう人たちが頼りにできる場所はいまでも少ないですね。このブログは密かに、レヴェルは低いけれどプログラミングしてみたいという(自分のような)人に少しでも参考にならないかと思ってやっているところもあります。

で、そういう人のためにも本書は役立ちますよ。具体的に「クソコード」(本当にひどいものです)を掲載して、なるたけ添削して下すっているのですから。

ただ、つらつら思ったのですが、C言語はこれからも使われ続けるでしょうが、C言語つらいなあとも感じました。本書でもすべて C で書く必要はないとして、(古い本なので)これからは Perl がいいのではないかとあります。いまなら Ruby とか Python とかになるでしょうか。とにかく C は、きちんと書けるようになるまですごく時間がかかる。それなので、Go言語などは C の代替として考えられたのでしょうね。僕のような初心者プログラマは、C よりも Go の方がずっとラクです。低レヴェル(ハードウェアに近いレイヤという意味です)プログラミングは Go に置き換わればいいと思うのだが、そうはならないだろうな。いや、脱線しましたが、とにかく本書はおもしろかったです。ある程度 C のコードが読めるようになったら、是非おすすめです。


ちなみに、どうでもいいですが、このブログの最初の方のコードは自分でも碌なものではないと思うものが多いです。そういうのに検索で人がきたりするので、ときどき書き直したりしています。でも、独学素人プログラマは、プログラミング用のブログをもつのは絶対いいことだと思っています。そこで恥をさらせばいいのです。


プログラミング言語C 第2版 ANSI規格準拠

プログラミング言語C 第2版 ANSI規格準拠