「アルゴリズム+データ構造=プログラム」?

http://fukumori.org/diary/20051113.html
この記事では「アルゴリズム+データ構造=プログラム」ではなく,「アルゴリズム+データ構造+インタフェース=プログラム」ではないか?という事が書かれている.これには非常に共感をおぼえる.

僕は,「プログラムを書く」と言うことは,「一つの世界を作る」と言うことである,と考えている.つまり,この場合のアルゴリズムとはその世界の法則であり,データ構造とはその世界の構成物質である,と考えている.しかし,世界を作っただけではその世界の状態を知ったり,干渉したりする事は出来ないため,役には立たない(いくら計算をやらせても,その結果を出力しないことには何の意味もない).だから,プログラムを利用するためには,そのプログラムの世界と別の世界(現実世界に限らず,他のプログラムも含む)を覗き,操作するためのインターフェースが必要となる.その意味で,インターフェースは(役にたつ)プログラムに必須な要素であると僕も思う(ただインクリメントし続けるプログラムなどにはいらないだろうけど,そのプログラムは役には立たない).