HyperCard tribute

HyperCardはオブジェクト指向言語


 HyperCardはAppleが作ったオブジェクト指向言語です。オブジェクト指向言語という言葉を聞いたことがありますか?
 オブジェクト指向言語というのは、現実世界での「もの」や、「もの」同士の関係をコンピュータ上で真似をすることで、言語へのアプローチをよりわかりやすくした言語です。例えばHyperCardでは、ボタンやフィールド(文字を書き込めるものです)といった現実世界の「もの」にとても良く似た「もの」を用いて、プログラムを組むことができます。
 現実世界では、これらの「もの」がいろいろと役割分担をして機能しています。これら「もの」達は、お互いに会話をしたり、結果をもらったりしながらそれぞれ自分の仕事をしているのです。
 例えば、部屋のスイッチボタンを押した時を考えてみましょう。
 スイッチを押すと、蛍光灯の明かりがついたり消えたりすると思います。それは、どうしてかというと

「スイッチボタンがおされたら」
「蛍光灯に明かりをON、OFFするよう命令する」ということを
「スイッチボタンが覚えている」
からです。

蛍光灯の方は、
「スイッチから命令が来たら」
「明かりをON、OFFする」ということを
「蛍光灯が覚えている」
からなのです。

 太文字のところに注意を向けてください。
「もの」
「何らかのアクション」が与えられたら
「自分の仕事」を始める。

 つまり、「もの」は、これらの事を記憶しているのです。

 このように「もの=オブジェクト」を、主体に考える言語がオブジェクト指向言語です。

 それでは、オブジェクト指向言語の利点はどこにあるのでしょうか。
 先に述べたようにオブジェクト指向言語は、全ての単位をオブジェクト単位で考えています。このようにオブジェクト単位で考える事で、管理がしやすくなりプログラム作りも容易になります。
 そして、独立したオブジェクト単位で考える事により、まるでブロックを積み上げるように、プログラムを組むことも可能となるのです。
 具体的に例えてみるならば、レゴを考えてみればいいでしょう。さまざまな色、形、大きさのプラスチックでできたブロックを組み合わせることで、車や家、ロボットなどいろいろなものを作ることができます。つまり、ここでいうレゴのブロックは「オブジェクト」であり、これらのオブジェクトを組み合わせることで、おおきなプログラムを作ることができるようになるのです。

 この他にも、オブジェクトの追加や削除が全体のプログラムに与える影響が少ないので、試作段階でのテストも容易にできます。

 オブジェクト指向言語の考え方は、人間のごくごく自然な考え方と一致します。しかし、今までの多くの言語(例えばC言語など)はこのような考え方ではありませんでした。どちらが優れているのかといった問題はさておき、オブジェクト指向言語は直感的であるという事がいえると思います。
 つまりのところ、重要なことは今までの言語のように難しいことを考えたり、覚えたりする必要が少なく、プログラムが容易に組めると言うことなのです。