※「セキュリティ保護のため...」というメッセージが出る方・日本語が入力できない方へ
■その他の言語■
PL/I PL/I (Programming Language One) は1960年代半ばにIBMが開発した言語 です。その当時 FORTRAN,COBOLというのが二大主力言語だったわけですが、 FORTRANが技術計算、COBOLが事務計算で使用されていたため、その両者に使 えるパワフルな言語を作ろうということで作られたのがこの言語です。 私はその理念が素晴らしいと思い、中学生の頃だったと思うのですが解説書 を買ってきて、勉強してみたのですが。。。。。 この言語は流行らないだろうと思いました。そしてその予想は的中しました。
Algol ALGOL(ALGOrhythmic Language)は1960年にヨーロッパで開発された言語 です。アメリカで作られたFORTRANに対抗したもので、Algorhythmic という 名前に恥じない、アルゴリズムの記述に適した、よくできた言語でした。 私はずいぶんあとになって、たしか1977年頃に少し勉強しまして、いい言語 だと思ったのですが、近くに処理系がなかったことから、そのままになって しまいました。 日本ではほとんど使用されていないと思いますが、このALGOLの思想はその後 の Pascal や C に受け継がれていきます。
Pascal 1971年にスイス連邦工科大学のヴィルトが開発した教育用言語です。教育用 ということだけあって、非常に美しい構造をしています。BASICも教育用とし て開発されたのですが、BASICは「易しく使える」ということが主眼でしたの で、BASICから入ったプログラマは一般にひどいプログラムを組んでいました。 これに対して、Pascalというのは、どのようにプログラムを組むべきかという 思想が明確な言語で、この言語から入ったプログラマは間違いなく美しいプロ グラムを組むことになります。 いわば剣道を教えるのに、いきなり竹刀を持たせて「さぁ適当に打ち合って みなさい」というのが BASIC, それに対して最初は礼儀作法や挨拶の仕方から 仕込むのが Pascal という感じです。アメリカとヨーロッパの文化の違いなの かも知れません。 Macintoshの初期のOSはこのPascalで書かれていました。そのため有名な Inside Macintosh もシステムの呼び出し方はPascalから呼ぶことを想定して 書かれていました。やはり美しいOSを作り出したのは美しい言語だったの です。 なお変数名の書き方で C/C++ には get_current_position のような書き方の 流儀と、 GetCurrentPosition のような書き方の流儀がありますが、後者を 一般に Turbo Pascal風と呼んでいます。Turbo Pascal を使う人たちから広ま ったものと思われます。Visual C++ などはこの Turbo Pascal風の名前が標準 になっています。
Prolog Prolog (PROgramming in LOGic)はまだ未来の言語です。 この Prolog を学ぶと、また頭が一回壊れて再構築されます。従来型のCOBOL とか C++ とかを学んだ人にはしんどい言語ですが、ものすごく自然な言語です。 将来的にはたいへん有望な言語だと思うのですが、まだこの言語の本来の力を 発揮できるような高速のCPUは出現していません。
HyperScript HyperSciptはQuickDrawの作者としても有名なビル・アトキンスン作のHyper Cardで採用されたスクリプト言語です。ビル・アトキンスンはアラン・ケイ に心酔していたようにも思われます。HyperCardというソフト自体がアラン・ ケイのダイナブック思想に迫るもので、その基本は使う人が自分でプログラ ムできるツールというものです。 HyperScriptは徹底的なオブジェクト志向と Non-Goto プログラミングが貫か れています。発表当時のマシンでも通常おこりうる程度の処理に対しては充 分な処理速度がありましたし、理想的なソフトだったと思います。 ビル・アトキンスンはHyperCardをアップルに提供する条件として無償バンド リングすることをあげていました。しかし後にアップルはHyperCardのフルバ ージョンは有料にしてライト版のみをバンドリングする方式に変え、更には バンドリングをやめてしまいました。事実上、その瞬間HyperCardの時代は 終了し、多くの人々がアップルに失望し、アップル自体も経営悪化の道を 転がり落ちることになります。
Lingo マクロメディア社のDirectorで使用されているスクリプト言語です。Director はしばしばソフトの紹介ムービーに使用されていますし、またインターネット でも対話型のムービーやゲームを公開する手段としてひじょうによく使用され ています。 LingoはいわばHyperCardをムービーの世界に持っていったような言語です。 ただしHyperCardがかなり趣味的に作られていたのに対して、Lingoは本格的な 開発向けの工夫がいろいろと施されていました。Gotoを禁止して、徹底的な オブジェクト志向を貫いているのは同じです。LingoでGotoと書けばそれは ロジックの移動ではなく、フレームの移動にしかなりません。
SmallTalk SmallTalkは1972年にXEROX社で開発されました。アラン・ケイのダイナ ブック思想の一環を構成するものです。 SmallTalkの特徴(理想)は次の点に要約できます。 ・完全なオブジェクト志向 ・オブジェクトプログラムはどんなマシンででも動作する ・ウィンドウシステムをベースに動作する強力なブラウザがある ・大量のサンプル部品を持っている ・コンピュータの知識の無い人にも容易にプログラムが作れる この理想が30年近くたった現在でも、まだ十分に実用域に達する状態で運用 されていないことが、アラン・ケイの理想の高さを示しています。 SmallTalkの信者の人たちはSmallTalkのみがオブジェクト志向と考えC++など は一笑に付します。むろんMacintoshなどはエセSmalltalkとして馬鹿にします。 Visual C++ はオブジェクト志向、大量のサンプル部品、ウィンドウシステム と強力なブラウザ、というところまで迫っていますが、オブジェクトはター ゲットマシン専用になりますし、素人の人がこれを使えるようになるには 2年かかります。 Javaはオブジェクト志向で、(理想的には)どんなマシンでも動作しますが、 強力なブラウザを持った開発システムというのを私は知りませんし、部品 というのもあまり見ませんし、素人にはとても扱える代物ではありません。 HyperCardはオブジェクト志向で、大量のサンプルが出回っており、コン ピュータの知識のない人にもある程度組むことができますが、Windows版が 立ち消えになった上にMacintoshにもバンドリングされなくなり「どんな マシンでも動く」という所が弱くなってしまいました。またブラウズ機能 が貧弱であるため、複雑なプログラムを組むことが困難です。 Directorはオブジェクト志向で、ある程度のサンプルが供給されており、 一応どんなマシンでも動作し、プログラムのブラウザは強力で保守しやすく、 かなり理想的に思えますが、やはり素人には無理です。VisualC++ほど難し いものではありませんが、習得には3ヶ月程度必要です。