fixedpoint.jp - ケーススタディ: Large-scale or small-scale programming




ケーススタディ: Large-scale or small-scale programming

今回のケーススタディは 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つのシステムでさえなかった。

大規模なプログラミングでは、あなたはインターフェースについて気を使わなければ
ならないし、アーキテクチャにも気を使わなくてはならないし、ドキュメンテーション
にも気を使わなくてはならない。なぜならそのプロジェクトは大きいため、たとえ
他のだれかが必要としなくても、*あなた*がドキュメンテーションを必要とするだろうから。

© 2006-2010 Takeshi Abe