今回のケーススタディは SWI-Prolog のメーリングリストでの Richard O'Keefe 氏のメッセージからです。「小規模なプログラミングと大規模なプログラミングの定義を与えるとすればどうなるか」と問われての返答です。
It's qualitative. Small-scale programming is where you only have coding to worry about. I had a PhD student a few years ago working on data mining. I don't think anything that student wrote was more than a couple of hundred lines of Python. The algorithmic ideas were new and turned out to be worth while, the experiments that showed this were well considered and well conducted. It was a good PhD. But although a lot of code got written, it wasn't one single system. Large-scale programming is where you HAVE to worry about interfaces, you HAVE to worry about architecture, and you HAVE to worry about documentation, because the project is big enough that YOU will need the documentation even if nobody else does.
拙訳:
(その違いは)質的なものだ。 小規模なプログラミングはコーディングだけを意識すればよいというところにある。 数年前私のところにデータマイニングについて研究している博士課程の学生がいた。 私は彼が書いたものが Python で200行を越えるものとは考えていない。 そのアルゴリズムのアイディアは新しかったし、価値のあるものだと判明したし、 これを示した実験も熟考されており行き届いたものだった。それは良い博士論文だった。 しかしたくさんコードが書かれようとも、それは1つのシステムでさえなかった。 大規模なプログラミングでは、あなたはインターフェースについて気を使わなければ ならないし、アーキテクチャにも気を使わなくてはならないし、ドキュメンテーション にも気を使わなくてはならない。なぜならそのプロジェクトは大きいため、たとえ 他のだれかが必要としなくても、*あなた*がドキュメンテーションを必要とするだろうから。