昔は、CPUの能力は貧弱で、使えるメモリーも少なかった。当時は、速度が速く、メモリー を余り使わないプログラムが良いとされた。そのためには、かなりアクロバティックなプ ログラムが書かれたようである。高級言語に機械語を併用したり、メモリーに関しては様々 な節約テクニックを駆使したようである。このようなプログラムのソースは必然的に内容 が分かりにくくなる。
現在では、パソコンですら、ありあまるCPU能力と巨大なメモリー空間が利用できるよう なっている。しかしながら、Graphical User Interface(GUI)が当たり前になり、プログ ラムそのものも巨大なものとなってきている。プログラムの巨大化に合わせて、プログラマー 能力が進歩すれば良いのであるが、それは不可能である。従って、プログラムの方法その ものを変えなくてはならない。
巨大なプログラムには、必然的にバグ(bug)2が 多く、その修正が大問題である。また、一人で開発することは不可能で、大人数で開発す ることになる。昔ながらの効率のみを考えた分かりにくいソースコードでは、修正は困難 をきたすし、大人数の開発は不可能である。現代のように巨大なプログラムを開発すると きには、何よりも
後で述べるが、そのために、関数というものを使いプログラムを機能(部品)毎に分割する。
そうすることにより、ソースコードの再利用が可能となる。部品にすればいろいろなプロ
グラムで利用できるのである。要するに、部品、例えばボルトのように、ソースコードを
使い回しできるのである。再利用しやすいプログラムを書くことも現代のプログラマーに
強く求められている。