No Silver Bullet

残業ついでに二冊ほど本を買ってきた。(本当の目的は簿記用の電卓だったんだけども)

人月の神話―狼人間を撃つ銀の弾はない (Professional computing series (別巻3))

人月の神話―狼人間を撃つ銀の弾はない (Professional computing series (別巻3))

プログラマーのジレンマ 夢と現実の狭間

プログラマーのジレンマ 夢と現実の狭間

とりあえず人月の神話から読み始めているけど、やっぱり取っ付きづらい感触はある。いや、最近とっつきやすい本ばかり読んでたせいかもしれんけど。言っている内容はあまりにも正論すぎるというか、この本が書かれていた頃と今を比べて「今も昔も大して変わっていないな」みたいなことを感じるための本のような気もする。時代が変わっても変わらない本質があることを忘れないための一冊。そして未だその本質的課題をクリアできていないことを確認するための一冊。また五年、十年経ってから読むと感慨深いんだろうなと思う、というかまだ読み終わってないんですけどね。
以下長いので読まなくていいです。
まだ管理するような立場じゃないから人月の話とかはそれほど実感ないんだけど、コンセプトの完全性の話は常々感じていることと重ね合わせて非常に実感が湧いた。何人かで実装すると実装がよれるというか、実装がまちまちになっちゃうわけで。もちろんそれ自身は複数人で開発する以上仕方ないんだけども。繰り返し現れるような部分、自分の場合はWebアプリケーション専門みたいなもんなので主にビューとコントローラー周りなんだけど、その辺は実装が統一されていないとメンテナンスしづらいんだわ。だからその辺は適切なフレームワークを使うことで実装のよれを少なくするべきだと思う。
で、フレームワークを一から作るのはプロダクティブ・プログラマでも書かれている通りおすすめできない選択肢だから、実績のあるフレームワークから無難なのを選定するのがベター。そういう意味でC#は実績あるフレームワークはあんまり聞かない(自分が不勉強なだけかもしれんけど)ので、Webアプリケーションを作る場合C#は(というかASP.NETは)選択肢としてはあまりおすすめじゃないと思っている。文法的にはすごく好きなんだけどね。
あとWeb Formsは駄目駄目とか言われるように、Web Forms然り、VisualStudio然り、あまりWebアプリケーションに向いていない、というよりはVisualBasic(言語としてのじゃなくて)ユーザーを囲い込むための仕組みがWebらしさを消してる気がする。そんなわけでWebらしいアプリケーションを作るならASP.NET、というよりもWeb Formsでの開発ってのはあまりおすすめの選択肢じゃないと思っている。最初の一歩にはいいけど、二歩目三歩目には適さない。
ASP.NET MVCでその辺がどう変わるか見物なんだけど、そう簡単には変わらないんだろうな。もはや脈々と続く文化とか思想のレベルなので、多分ASP.NET MVC自身がWeb Formsくささを消しきれないんじゃないかと思う。もちろん完全には無理だろうけど、その辺がある程度いい感じの方向性になっていたら、多分ASP.NET MVCを賞賛せざるを得ないと思う。単純なフレームワークとしてではなく、文化/思想を変えたという意味で。
まぁ、明日もまたWeb Formsをいじる仕事がはじまるお、なんですけども。