Monday 9 July 2007

銀の弾丸



ソフトウェアの作成手法を魔法のように解決する銀の弾丸はないってな話。

でも、プログラム自体は、すごく簡単。「書いてある通りに動く」それだけ。プログラミング言語がわからないのって、僕には、まったくの謎です。1,2,3 .... とかがわかってないとしか思えない。

問題は、いったいぜんたい、それで「うまく動かないのか」ってことだ。原因も簡単。「書いてあることが間違っているから」なんだよね。

だから、「間違ったことを書かなければ、ちゃんと動く」っていうのは正論なんだけど、残念ながら、そうはいきません。その正しさを調べること自体の計算量が結構大きい。それに、「正しい」って、「何に対して正しい」わけ?

そこで「仕様」とか持って来るのは、頭が良い奴なんだけど、プログラムを発注する方、作成する方も、あんまり頭が良くないってのを忘れてないか?

そこで「テスト」って持って来るのは、現実的な奴なんだが、テストが通ったからと言って正しいとは言えないってのを忘れてないか?

まぁ、「正しく動く」ってのを忘れれば、世の中、かなり簡単になるんだけどね。そうはいかないってのを教えるのが大学の役割だと思ってます。コードレビューは必須だと思う。せいぜい、頑張って採点してくれ。(って、採点するのは自分か...)

でも、それで「結局は個人の資質」で諦めちゃうと研究にはならないからなぁ。せいぜい、魔法っぽいものでも見せ玉にしないと。

No comments: