仕様書にバケツソートって書かれたらクイックソートは書けないよ

アルゴリズムとしては成立したフローになるぐらいは細かく仕様を煮詰めてないと
書き捨てのプログラムとそうでないプログラム - AFTER SEVEN

まぁ、仕様書があるにこしたことはないと思うけど。どこまで書くかのバランスですよね。
僕が気にするのは 仕様書にバケツソートって書かれたらクイックソートは書けないよ って事です。
常に仕様書を書く側の能力の方が高ければ問題ないですが、仕様書を書く人の能力が余り高くない場合
仕様書に意味的にバケツソートみたいな事が書いてあるとすると、業界的にはクイックソートなんだけどなーと思っても
バケツソートを書かざるをを得ない場合があるんですよ。


で、このバケツソートなのか、クイックソートなのかというアルゴリズムの実装の問題って
言語によって微細に違ってくるんですよね。
言語使用って違うし、C++ならポインタ使って書けるけど、Javaにはポインタないからそこまでは無理みたいな。


こういう事をしたいときに、C++ならこういうアルゴリズムを使うけど、Javaだったらこういうアルゴリズムを使う
っていうのは、同じにも出来るけど、実際ベターなプラクティスは言語事に違うよね。
C++ならBNFのパーサーをLexとBixonで書くだろうけど Perlなら正規表現みたいな。


気にしているのは、そういう所かなぁ。
あともう1つは、プログラムって楽しい物だけど、ガチガチに決められた仕様書通りに作る作業は文字通り作業で
楽しい物=クリエイティブな作業とはちょっと遠いよね。文字通り仕事。
それはちょっとやだなぁ。という個人的な思いもありますが。
そっちの方が良いというプログラマがいるのも事実です。


まさに、バランスイズアートだと思います。ケースバイケース。
でも、時間があるなら仕様書はなるべく綺麗に書いた方がよいです。
ウォーターフォールで先に作るか、プロトタイプで後に作るかやりかたはいろいろあると思いますが。


ただ、やはり 基本仕様書はあった方がよいです。ただし、どこまで深く書き込むかがケースバイケースだと思います。