大規模なプロジェクトでは今でも使われる理由。まず、開発チームの時間あたり生産性を考えると、次のような感じになる。
- 複数人でソフトウェアを作ろうとすると、人数が増えれば増えるほど一人あたりの生産量は低下する。
- で、低下するけど 0 になるわけではなくて、n > 0 である値 n に漸近する。
- すると、共同作業をする人数がある程度を越えると、共同作業における一人あたり生産量の低下が無視できるレベルになり、投入した人数と、グループの時間あたり生産量が、ほぼ比例しだす。
で、上記の命題 (?) が真であるとすると、超大規模開発では大量に *1 作業人員が確保できる言語を使うのがヨイと。でそれは COBOL であると。なぜなら COBOL は昔から使われており(時間のメリット)、商業高校でも教えており(幅のメリット)、数の表現に BCD を使っているはず(Gotchas がないメリット)。
よって大規模プロジェクトでは COBOL を使うのがヨイと。特にビジネスロジックの実装に使うのがヨイと。ということなんだけど、どこか気持ち悪い感じが残るのは何故でしょう。
- 変更に対して柔軟に対応できるのか?(あるいは、変更が十分に小さい案件に対してのみ使用する、または変更を契約で押さえ込む)
- COBOL は「設計が良ければ全てよし、設計がヘボだと地獄」らしいけど本当?
そもそも私が COBOL というものをよく知らないのが気持ち悪さの原料の主成分、と言われればそうなのかもしれないけど。
*1:安価であればなおよいが、給料についてはよく知らないので考慮しない