活動報告

新着記事

カテゴリー

キーワード検索

2025.04/07 オブジェクト指向とC++

初めてC++に触れたのは、MIWA C++の評価版で、高純度SiCの半導体治工具事業を住友金属工業とのJVとして立ち上げ始めた時である。


その後ゴム会社の研究所でFDを壊されたりする嫌がらせを受け転職するのだが、写真会社へ転職してからボーランドC++を購入している。


とにかく大変な時だったのでよく記憶している。smalltalkが登場して20年近くになり、オブジェクト指向はプログラマーの標準技術になっていた。


当方は日曜プログラマーであり、あくまで趣味としてプログラミングで遊んでいただけだが、当時のパラダイムシフトの激しさには、びっくりしている。


遊びでプログラミングをしていたので、それを楽しさとしてとらえることができたのだが、プロのプログラマーは大変だったろうと思う。当方でさえ1980年代にはプログラミング関係の書籍を40冊程度購入しており、一時期毎月1万円近くはソフトウェアー関係の書籍代(注)として消えていた。


時代変化の激しさから、FDを壊したりして当方の仕事を妨害した管理職の気持ちを理解できなくもないが、新入社員と当方がプログラミング技術の話に夢中になっていたのを嫉妬したのかもしれない。


新入社員は、異常な出来事を目の当たりにしてどこかへ転職し、他の同僚も転職を話題にしだして、結局当方含め3人がこの時期転職する事件となった。それでもオブジェクト指向の特徴の一つのように隠蔽化されて人事部は動かなかった。


当方は、転職によりセラミックスのスキルを継承せず、全く異なる高分子技術をリスキリングしている。全く異なる分野であるが、抽象化により、短期にスキル獲得をし、写真学会から新たな分野で賞を頂いたり、国際会議で招待講演者として呼ばれている。


オブジェクト指向における抽象化の特徴は、プログラミング以外でも活用可能で、隠蔽化を業務に活用するよりも健全である。


さて、C++の発明者は書籍の中でsmalltalkの影響を受けていないことを語っている。たしかにsmalltalkとC++では、OSとの関係で少し言語の役割が異なる。また、C++はCの発展型言語として使えた。


ちなみに、MIWA C++をコンパイルするとLattice C用のコードを吐き出してくれた。それをLattice Cでさらにコンパイルする面倒な方法で実行ファイルを構築する。ゆえに既存のライブラリーを問題なく使うことができた。


もっともバッチファイルを組んでおけば自動で最後の機械語のオブジェクトを自動で得られるので問題はなく、趣味のプログラマーには、この仕組みのおかげでCとC++の関係を知ることができ、ありがたかった。


すなわち、CとC++の間の敷居が意外と低かったのだ。もっとも同じ時期にPythonが登場しており、こちらはスクリプト言語としてもオブジェクト指向言語としても使えた面白さがあった。

(注)C++は、オブジェクト指向を理解できていなくてもCを知っておれば、プログラミング言語として使用できた。ただし、オブジェクト指向の高度な仕組みを使いこなそうとすると、オブジェクト指向をよく理解していなければできなかった。換言すればC++はある意味不完全なオブジェクト指向言語と言える。その結果、C++にまつわる様々な技法の解説本が一時期出版された。その中でジェネリック技法の解説本には当時感動している。小説でもないのに小説を読んだ時のような感動である。C++はその意味でC#より面白いのだが、C#ではC++の不完全さが無いのでC++より使いやすく、結局C++で遊びながらC#に移行している。C#はオブジェクト指向言語として良く設計された言語である。

カテゴリー : 一般

pagetop