「物理」グループの購読(6)オブジェクト指向

「物理の駅 Physics station by 現役研究者」のEPICSについての記事を読んで。

 

EPICSは、数百の観測・測定機器をほぼリアルタイムで(soft real-time)監視・制御できる、ものだそうです。

機能だけ見ると、いわゆる車輪の再発明に見えます。

 

普通の通信方法(TCP/IPとかUDP/IP? Remote Procedure Call?)と比べて、「これだけ高速だ」とか「機器の台数が数百に増えても遅延が少ない」という比較表が無いと、EPICSのありがた味が素人には判りません。

 

でも多くの巨大実験施設で利用されているのですから、SCSIethernetで機器を繋ぐより多数の機器が繋ぎやすいのでしょう。

 

---

 

「始めよう」(https://docs.epics-controls.org/en/latest/getting-started/EPICS_Intro.html)を見ると、通信だけでなく、データベースも障害に強い(robust)らしいです。

また、多数の機器に対応したソフト(device driver)が充実しているらしく、たぶん
多くの施設で使われる機器や、少し古い機器のdevice driverが無料で豊富に公開されている
という強味を持っているんじゃないかという気がします。

 

プログラミング言語はCのようですが、オブジェクト指向C++かも知れません。
なお、オブジェクト指向はライブラリ(プログラムの道具箱)がツリー構造を持つのに対して、オブジェクト指向以前の古いC言語Fortranは道具箱が平積みで、何も構造を持っていません。

 

---

 

オブジェクト指向についての補足:

IBMが「コンピュータが普及するとオフィスがペーパーレスになります」と宣伝したため、ゼロックスは「それではコピー機が売れなくなる、じゃあ自分達もコンピュータを作ろう」ということでPalo Alto Research Center(PARC)を作りました。それとほぼ同時に、ベトナム戦争が終わったためマクファーソン上院議員が国防予算を削減し、そのため国防総省NASAから技術者が民間に流出(頭脳流出)しました。

 

PARCに入った技術者達(Alan Curtis Kayが中心人物)は、現実世界でやっている作業をそっくりコンピュータ内で実現(シミュレーション)できれば、誰でも使えるコンピュータができる、と考えました。そして、以前からあったシミュレーション用のプログラミング言語Simulaを基にSmalltalk(たわいない世間話の意)という世界初のオブジェクト指向言語を作りました。Smalltalkから直接・間接にC++JavaPythonなどが生まれました。

 

Smalltalkでは、博物学と同様にツリー構造を使います。これは2つの利点を持ちます。

(1)道具箱がツリー状に整理されているので、巨大な道具箱でも把握しやすい。

(2)親(例えば「ポンプ」)で書いたプログラムは、自動的に子(例えば「遠心ポンプ」)に引き継がれるので、プログラミングの量が減る(差分プログラミングと言われます)。

 

---

 

Alan Curtis Kayの言葉:

人間はコミュニケーション・ジャンキー

People are ... communication junkies

 

以下のビデオの17:12あたりで言っています。

archive.org/details/Dr._Alan_Kay_Doing_With_Images_Makes_Symbols_Communicating_With_Computers_1987