囲みコラム

オブジェクト指向と差分プログラミング


上に書いたのは当然と言えば当然のやり方なのですが、これについてもう少し説明します。MacOSやWindowsなどでも、APIで提供されている以外の機能をアプリケーションごとにプログラミングして追加し、それを組み合わせていくというやり方は変わりません。しかし、その追加の手間が違うのです。

MacOSやWindowsなど、従来のOSが提供するAPIはC言語ベース(注5-5)の手続き型であり、関数や手続きの集合体です。これに対し、BeOSが提供するのはC++言語に基づくオブジェクト指向型のAPIですから、それだけ機能の追加が楽なのです。C++などのオブジェクト指向言語では、継承(サブクラス化)と多相型(ポリモルフィズム)による動的束縛という言語固有の仕組を利用することで、Cのような手続き指向言語に比べると、機能追加のためのカスタマイズを楽に行えます。

また、より基本的なところでは、クラスというデータ抽象化の仕組、つまりデータとデータを処理する手続きや関数を一体化して扱う仕組があるために、プログラムの記述、すなわちコーディングが自然とシンプルなものになるというのも、オブジェクト指向言語に基づくAPIの利点です。


Art of BeOS Programming
koga@stprec.co.jp