Webアプリケーションやデスクトップアプリケーション開発に採用されているプログラミング言語の多くでオブジェクト指向が取り込まれている。オブジェクト指向には機能をクラスとしてまとめ部品化が容易であるということや、デザインパターンが適用しやすいといった利点があるわけだが、もうひとつ興味深いプログラミング方法にコンセプト指向プログラミングがある。2007年11月、Alexandr Savinov氏は「Informal Introduction into the Concept-Oriented Programming」の名のもとコンセプト指向プログラミングの紹介論文を公開した。デベロッパにとって興味深いものだ。

コンセプト指向プログラミングの例 - Informal Introduction into the Concept-Oriented Programmingより抜粋

オブジェクト指向はオブジェクトという単位とその関係に焦点を絞ってモデル化されたプログラミング言語だが、Alexandr Savinov氏はオブジェクトのみならず参照そのものも重要な要素であることを指摘。オブジェクトと参照とを同列のファクターであるとみなし、プログラミングに利用することを説明している。同ホワイトペーパに掲載されているソースコードには、オブジェクトと参照をひとつの単位として新しく「コンセプト」と呼ばれる構造単位が用意されている点が目を引く。

オブジェクト指向に対して横断的に関心事を織り込む「アスペクト指向」もデバッグや一時的な機能の織り込み、測定コードの挿入などに活用されているが、参照を明示的に記述しているコンセプト指向プログラミングではオブジェクトとアクセスという横断する単位をコンセプトとしてすでにモジュール化している。アスペクト指向の機能をあとから追加する必要なく最初から取り込まれているわけだ。

新しいプログラミング言語やプログラミング概念を知ることは時としてデベロッパの力量向上に関与する。参照を明確に定義しオブジェクトとともにひとつの構造とみなすコンセプト指向プログラミングはその点でなかなか興味深いものだ。興味のあるデベロッパは同ホワイトペーパを一読されたい。