あなたが Sqeuak、Smalltalk を使うべき 10 の理由(募集中)
id:suikan さんのご要望を受けて、ページだけ作ってみました。--sumim
関連:
Mac の熱狂的なファン(特に、Mac が ALTO やダイナブックの後継者だと本気で信じている人や Win の GUI はすべて Mac のパクリだと言い続けている人…ジョブズ?)に対しては、Mac GUI のルーツや、ダイナブック(少なくとも、暫定的ダイナブック…)とのコンセプトの違いを理解してもらうため(ジョブズには思い出してもらうため…w)に Squeak を含めた古い Smalltalk システムを使ったり、過去の映像を見て欲しいですね。--sumim - 2006-05-08, 13:43:19
- んー、これはちょっと弱いな…。今の Squeak は( MVC にしても)Mac の影響を受けているし。GUI 全般に広げずに、Mac のテキスト編集作法(セレクト後、カット・コピー&ペースト)が Apple のオリジナルだと思って疑わない人に…と限ったほうがよいかも。Mac では結局、採用されなかった 偉大な again を知って欲しいということもあるし。--sumim
- Win も again を採用してくれていたら Mac のパクリだなんて言われなかったのにねぇ…。はっ! やっぱり Mac のパクリだったのか?!w --sumim
Ruby の挙動や仕様にモヤっとしたもの(たとえば、なぜ map があるのに重複して collect があるのかとか、inject ってなに?とか、メソッドの返り値に self を返すものとそうでないものがあるのには法則があるのか…、とか)を感じている人には、ぜひ、ちょっとだけディープに Smalltalk を使ってみて欲しいですね。--sumim - 2006-05-08, 13:48:00
Objective-C の [ ] 内での記法や、OS X の Cocoa の API に疑問を持っている人は、Smalltalk を使ってみて欲しいですね。きっと、強烈なデジャビュを感じることができるでしょう。同時に「なぜそうなのか?」という疑問も氷解するはずです。--sumim - 2006-05-08, 13:50:08
自分の子供に eToys を使わせたいと思っている人には、ぜひ、まずご自身で Squeak システムを使ってみるべきですね。eToys は思っているほど素直には動いてくれません。特に、子供は無茶をします。そして、ダメだったからとさっさと捨ててしまうには惜しい作品を子供は作るものです。--sumim - 2006-05-08, 13:54:48
デザインパターン(特に GoF の…)、MVC 、Core Data OS X の Cocoa フレームワークをよりよく理解するため。--sumim - 2006-05-08, 14:05:11
- 下の id:carver さんのツッコミにもあるように OS X の「 Core なんたらを…」というよりは、その背景にある「キー値
コーディング 監視を…」というほうがいいかもしれませんね。--sumim
- Key-Value Codingではなく、Key-Value Observingですね。キーと対応する処理を登録する、changed:/update:のObjective-C版のような仕組みです。使われ方もほとんど同じです。--suzuki (id:carver)
- おお…、ありがとうございます。今回は取り違えていましたが、キー値コーディングと称されるものも、Squeak や Smalltalk システムではなじみのパターンですよね。--sumim
- SmalltalkでのKVCというのがいまいち思い当たりませんが、sumimさんのおっしゃるおなじみのパターンとはどのあたりでしょうか。KVCの「キーを連結してオブジェクトをたどる」「キー名に対応するメソッド及びインスタンス変数を検索する」ようなメソッドは見当たりませんでした (「使われ方 (の一つ) 」はupdate:with:と似てますね) 。-- suzuki
- VisualWorks の #propertyAt:ifAbsent: とか、Squeak なら Morph >> #valueOfProperty:ifAbsent: や Preferences >> #parameterAt:ifAbsent: とかでは駄目ですか?--sumim
- ありがとうございます、そんなメソッドがあるんですね (まだまだ勉強が足りない) 。ただ、私はどんなオブジェクトでもkeyとvalueの集合 (疑似辞書)とみなせるのがKVCの妙味だと考えているので、#propertyAt:や#valueOfProperty:が似てるかというと少し違和感があります。--suzuki
- あ、今思いましたが疑似辞書と言えば #at:, #at:put: はKVCっぽいかも。どんなオブジェクトでも#at:が同じ意味 (そのオブジェクトを構成する主な情報にアクセスする) を持つのは美しいです。--suzuki
ダイナブックはたんなるコンセプトで、実装されたためしがない机上の空論に過ぎないと思いこんでいる人。--suimm - 2006-05-08, 14:08:41
オブジェクト指向の神髄はメッセージングだと信じて疑わない人。そういう信念で他の OOPL をいじっていて強い違和感を感じている人。--sumim - 2006-05-08, 14:11:20
id:carver さんから、ツッコミと追加案をいただきました。ありがとうございます。--sumim - 2006-05-26, 11:44:38
エンドユーザーレベルで、Smalltalk 自身を使って、言語機能を容易に拡張できる。それを試すことができる。
そんな大規模な拡張は無理ですが、たとえば、代入をメッセージングで表現してみるとか、インクリメント(var++)を実装してみる…とか。--sumim - 2006-06-08, 11:49:12
Mac や Win などと違い、ルック&フィールがメーカーからのお仕着せでない。イヤなら、変えられる。
もちろん、ある程度 Smalltalk や、ターゲットとなる GUI フレームワークのしくみについての勉強は必要ですが…。その GUI フレームワークすら気にくわなければ…(以下略)。--sumim - 2006-06-08, 11:55:34
このページを編集 (5645 bytes)
|
以下の 2 ページから参照されています。 |
This page has been visited 3156 times.