From: matz@... (Yukihiro Matsumoto) Date: 1997-07-01T10:39:46+09:00 Subject: [ruby-list:3209] Re: about GNUStep (Whitch library Do I have to link?) まつもと ゆきひろです In message "[ruby-list:3205] Re: about GNUStep (Whitch library Do I have to link?)" on 97/06/30, SHIROYAMA Takayuki writes: |ども、白山@fortune.nest.or.jpです。 |私は Smalltalkを知らないので、何とも言えないのですが、Mac |WorldExpo Tokyoで NeXTの開発環境のデモンストレーションを |行ない、お客様の一人に Objective-Cのソースを見せた所、 |「わ、Javaそっくり」と感嘆されてましたので、 Javaに似てる |のかも知れません(^^;) 似てない,似てない. |慣れると、とても便利で扱いやすい言語だと思います。 Objective-Cは昔々Coxの本で入門したのですが,NeXTもGNU Obj-C もない時代でしたので,実際の処理形には触れませんでした.でも, なかなか感動したので,CでObjective-C(とXView)に似たオブジェ クト指向システム(兼Xツールキット)を自作しました. メッセージセンドは cx_send(recv, MESSAGE, args) のような感じでしたが,作った本人がいうのもなんですが,なかな か使いやすかったです.ただクラス定義がちょっと面倒だったので (マクロの嵐と呼ばれた),社内でもあまり広まりませんでしたが. いや,オブジェクト指向が十分広まっていなかったせいに違いない ^^;;; 実はこのライブラリのソースの一部はrubyのeval.cの中に生きてい ます(メソッドキャッシュの部分). # そーいえばObjective-CもXViewも廃れてきてるなあ. |また、混在した漢字という特徴を利用して、 NeXTには | Objective-C++というものもあります(^^;) C++で class |してもいいし、ObjC で@interface hoge: Object しても |いいというわけです。 これを聞いた時には「あんまりだよなあ」と思いました. |前々から 少し気になってたのですが、 rubyでは superは何故 |メソッドなのでしょうか? | |Objective-Cでは superは特殊なインスタンス変数なんです。 この辺はSmalltalk流ですね. |っといった感じで、メソッドfooから、親クラスに存在する |メソッドhogeでもhoehoeでも、どのメソッドも直接呼べる |というわけです。 私の気がついてない、superをメソッド |にする利点というのがあるのでしょうか? 文化の違いでしょう.rubyのsuperはCLOSのcall-next-methodやCOB のsuperの流れを受けています.実際にSmalltalk流superがあって も呼ぶのはスーパークラスの自メソッド以外のものを呼ぶとわけが 分からなくなることが多いので,こっちの方がよいと信じています. # COBなんて誰も知らないか…. まつもと ゆきひろ /:|)