Tuesday 21 February 2006

オブジェクト指向言語について



しるしるは読まなくて良いです。

かなり初期の頃から係わってます。M1の時に、Xerox 1100SIP上でSmalltalkをいじってからかな。かなり印象悪かったです。遅かったしね。マウスには感動しましたが。BITの特集読んだり、少しプログラムしたりしたけど、「わからん。プログラムの動きが追えない」ってな感じでした。ビデオもみたけどなぁ。

で、自分でいろいろ言語を作ることに。学生時代に4種類ぐらい作った。オブジェクト指向なのが二つ。論理型が二つ。けどオブジェクト指向言語の方はあまり大きな例題は結局、書かなかった。

本格的にオブジェクト指向言語でプログラムしたのは、ESP(第五世代プロジェクトの論理型言語)が最初かも知れない。確か、Ti のDSPのアセンブラを書いたはず。ソース残ってません。

その後は、PrologとCが中心。C++ は流行ったが、どんどんバージョンが変わり、そのたびに、ひどくなっていくので止めました。InterViews のソースを見て「絶望」しました。絶望したと言えば、Tcl/Tk。一回だけGUI作るのに使ったが、最低でした。C++やTcl/Tkを平気で使うのは「犯罪」だと思う。旦那の仕事は、C++ が多いが、やっぱり、ひどい言語だと思う。デザインパターンを読んで「Deja vu」な感じがしたのは、InverViews 読んだせいだな。

Perl が ver. 5 になってオブジェクト指向が導入されたので、そっちでいろいろ書いた。Perl のオブジェクト指向は結構好き。他の人はあまり気にしないみたいだが、多重継承のインスタンス変数の扱いは実は極めて面倒。hash で割り切る Perl のオブジェクト指向の潔さ、単純さが素晴しい。fine grain なオブジェクトを作らないって当たりも良い。Perl/Tk は、Tcl/Tk の「狂っているところ」が治って良くなってます。一番速く書く必要があるときには、Perl or Perl/Tkを使います。

Squeak は、この間、読んだら結構良かった。昔のままの部分もあり「古くさい」けどね。

Objective-C もほとんど触ってません。2,3個アプリケーションを触ったのと、学生と一緒にTextEdit.app をいじったぐらい。でも、割りと良い感じだったかな。

Java は、1.5 になって良くなったと言われてます。昔のJavaは結構ひどかった。Vector とか Array の扱いとか。C++ の真似すんな。なんだが、GC が使いづらい。制御できないから、システムプログラムに使えない。オブジェクト指向プログラムは「一通りに書けない」っていう特徴があるのだが、Java は、それがひどい。

JavaScript は良さそうなんだけど「HTMLと組み合わせて使う」あたりが嫌い。僕にしては珍しく、深入りしてない言語の一つ。つまらないんだよね。

AppleScript も結構いじりました。絶望的に遅い。どうも、世の中の人って使うデータ量が少ないらしく、あんなんでも平気ってことなのか? 2000件のアドレス帳とかカレンダって別に異常だとは思わないけど。遅い理由もだいたいわかりました。作った人のセンスが文系的過ぎる。プログラム書くのにvi使えないのもマイナス。オブジェクト指向ではないしね。この手の言語でオブジェクト指向でないのは異常でしょう。

Python, Ruby は、Perl/Tk 使いの僕に取っては不要です。indent が構文の一部ってのは、ダメだと思う。Pascal sytax も嫌いだし。Perl ほど文字処理に強くないし。ってなわけで、使うモティベーションないです。

問題は学生に何を教えるかだが、実は、JavaScript がいいかも。現状はJavaのようですね。

アセンブラも教えて欲しいんだが、今年はCASL教えたらしい。それだけは止めろ〜と思ったが後のまつり。

No comments: