佐々木屋

技術的なことから趣味まで色々書きます

手続き型とオブジェクト指向型の関係

VB6やVBAは手続き型と呼ばれていますが、別にオブジェクト指向で書けない訳ではないです。ただ「向いていない」のです。関係性としては、サッカーのフィールダーとキーパーみたいな感じですね。同じサッカー選手でボールを扱うのは一緒ですが、キーパーがドリブルしてシュートするのは出来なくはないけど向いていない、ということです(うーん、あまり良い例えではないかな・・・)。

よく、「VBC#より劣る」や「VBは害悪」という話を耳にしますが、これは恐らくVBプログラマへの敷居が低くレベルがピンキリなのと、「VBプログラマオブジェクト指向プログラミング理解出来ないでしょ」という固定概念から生まれたもののような気がします。まぁ言語性質上ごもっとも、という話ですが。

ただ一つ注意しなければならないのは、「手続き型≠オブジェクト指向型」ではなく、「手続き型⇒オブジェクト指向型」ということです。
オブジェクト指向型はあくまで手続き型の派生(拡張)であって全く別物というわけではありません。さらに、オブジェクト指向であっても、細かな制御は手続き型で書き下ろす必要があります。

ある意味オブジェクト指向型は手続き型からの「武装強化」なので、オブジェクト指向型言語であれば、武装強化した新しい武器を使わない手はない、という話でした。