「優れた思考の道筋」を体系化したもの
「なんだ、プログラミングってその程度のことか」と思われるかもしれません。そう、「その程度のこと」だったからこそ、プログラミングというものが持つ、本当の力が見過ごされてきたのです。
「分割統治法」は非常にシンプルで、要領のよい人ならすぐに思いつくものですが、使うと使わないとではかかる手間が全く異なる、とても優れた思考。そしてプログラミングとは「機転」とも呼ばれる、それらの優れた思考の道筋を体系化し、洗練したものだともいえます。
実際、こうした「四つ葉のクローバー探し」や「エリアセールス」「宅配ピザ」における分割統治法は、プログラミングとは意識されていません。しかしプログラマーの視点を通せば、こうした戦略そのものが、プログラミング技術の亜種としても捉えられる、ということなのです。
「小さな町の食堂」にもプログラミング技術は見られる
「分割統治法」のほかにもう一つ、このようにプログラミングテクニックとして認識されていない例をご紹介しましょう。
小さな町の食堂を思い浮かべてみてください。オヤジさんが厨房の中で調理を担当し、オカミさんが注文と接客を担当する。よくある風景ですよね。
食堂ではオカミさんがお客さんから注文をとって、オヤジさんが調理し、料理を提供するわけですが、調理の間、オカミさんはじっと待っているわけではありません。次にお客さんが来れば、また注文をとり、てきぱきと料理を運び、食べ終わった食器は洗い場へ戻します。
オカミさんが動き回っている間、オヤジさんの手も止まりません。前の料理が運ばれたそばから次の料理を作り始めています。
この見事な「役割分担」があるおかげで、オカミさんは接客に集中し、そしてオヤジさんは調理に集中できるのです。
一方でこの役割分担ができていないところ、たとえばオヤジさん一人でまわしている食堂に入った際、たくさんの先客と同席したためにイライラしながら待たされる……なんてこともすぐに想像できるのではないでしょうか。