自分の最近の仕事はC++でアプリを書く、というものなので、Brooksの主張にかなり近い事をやっていますね。 C++はいろいろな事情でライブラリが使えない事が多いので、スクラッチから作るのが正当化される事もままある。 それがまさに時代遅れでもあるのだけれど。
そのまま複雑さの話を続けてもいいのだけれど、 自分がDan Luuのブログで面白いと思ったのは、複雑さよりも古典を批判する、という部分。なのでその話をしてみる。
持ち上げられ過ぎる古典
人月の神話は非常に良い本で、そこから引き出すべき教訓も多いと思う。 だが、さすがにコンピューティング事情は随分と変わっているので、現代には当てはまらない事も多い。 そしてそれは当たり前と思う。今となっては誤りになってしまった記述があったところで、Brooksの知性を疑わせるものでは無い。
問題なのは、その当たり前の事をわざわざ言わないといけない状況だ。 それは過去の本の引用で物を語る人が多く、それが間違っている事が多く、それを否定するのにいちいち通常よりもsolidな理論武装を要求されるせいだと思う。 持ち上げる方は空っぽでも問題無いのに。
そういう事にうんざりしているのは私だけじゃなくて、きっとDan Luuもそうだったのだろう。だから今更No Silver Bulletの批判をブログにしたのだろう。 それを読んで我々が痛快に思うのも、まさに日々そういう鬱陶しさを味わっているからでは無かろうか。
以前、達人プログラマーの新装版が出た時に、自分は同じような事を感じた事がある。(当時のブログ)
代わりとなる新しい定番本が出ない!
何故古い本がこうも持ち上げられ続けてしまうのか? 一つの理由として、新しい定番本が生まれていないせい、というのがあると思っている。
まず、プログラムという仕事の多様性が増したので、一般論は言いにくくなった。クラウドとC++アプリとAndroidアプリとwebフロントエンドはだいぶ違う。 業界ごとの特定のプロジェクトや企業の様子を語る書籍は今でもあるが、一般的な事を主張するのは昔より難しくなっている気がする。 現実は多様でケースバイケースです、では盛り上がらない。
それに付随して、そもそも最近技術書があまり読まれなくなった、という事情もあるかもしれない。 例えば先日の今年読んだものを見ても、 皆があまり本を読んでいない、と言っている。単にCovid-19のせいかもしれないけど。 読まれてないから書かれてない、という事もあるのでは。 技術書が読まれていないせいかは分からないけれど、自分の周りの有能なプログラマは、本を書いていない。コードを書いている方が明らかに報われる気がするから、さもありなん。
別の視点として、Brooksほど凄い奴はなかなか居ない、とう事もあるかもしれない。
やばいプロジェクトに巻き込まれた経験は、ここで文章を書いている人なら大なり小なりあるだろう。 かくいう自分も、やばいプロジェクトに巻き込まれた経験ならなかなかのレベルと言える。自慢にならない。
だが、やばいプロジェクトに巻き込まれた後に、それをちゃんと分析して、その場に居なかった人にも分かるように説明する、というのは、なかなか出来る事では無い。自分には無理そうだ。
会社がちゃんとそれを支援するのも、なかなか難しい。ちゃんとやったIBMは偉い。 プロジェクトが失敗したらその位当然やるだろう、と思うかもしれないが、残念ながらやらない会社の方がずっと多い。喉元過ぎれば熱さを忘れがち。
かっこよく怒りたいものだ
何故あたらしい定番本が生まれないのかはおいといて、それを所与とするなら。
古い本が持ち上げられ続けてしまうのは、誰かがたまにしっかりと反論していけば、それで防げるかもしれない。今回のDan Luuみたいに。 でも自分が何か思っても、なかなかああかっこよくビシッと反論するのは難しいんだよなぁ。
くだんのブログがかっこいいのは、出てくるのがPrestoでrustでggplotでビッグデータだからという事もあると思う(それだけでは無いだろうが)。 同じようにかっこよくやるには、かっこいい仕事をしている必要があるのかも。
などととりとめも無く書いて来ましたが、古典とか神話化してるが古くなった事とか、最近は結構ある気はするんですよね。どう思います?>jmuk