- オブジェクト指向は愚かな考え。この世は計算式 [転載禁止]©2ch.net
345 :デフォルトの名無しさん[sage]:2015/12/01(火) 13:09:09.54 ID:QTLgm2hp - メッセージというのはアラン・ケイが思いついた方便なんだけど、その本質は結合が遅延され動的であること。
真のソフトウェア工学が開発されるまでの次善の策は、あらゆる要素について極端に遅延結合な 動的システムを使って開発する事だ。これを重要な部分で実際に行ったのは LISP が最初だ。 そして沢山の偉大なアイデアは、70 年代の初期に XEROX PARC で Squeak の祖先である Smalltalk -- 最初の完全にオブジェクト指向な開発操作環境 -- の発明にも使われた。 「ソフトウェア工学」は矛盾語法か? - アラン・ケイ http://metatoys.org/oxymoron/oxymoron.html
|
- オブジェクト指向は愚かな考え。この世は計算式 [転載禁止]©2ch.net
350 :デフォルトの名無しさん[sage]:2015/12/01(火) 14:31:06.50 ID:QTLgm2hp - >>349
> SmalltalkのようにOS=開発環境 > というシステムが作られないのは何故? それは逆のような。 どうしてSmalltalkのように(定式化が困難ながらも)うまく動くシステムが他のパラダイムで作られていないのか?かと。
|
- オブジェクト指向は愚かな考え。この世は計算式 [転載禁止]©2ch.net
352 :デフォルトの名無しさん[sage]:2015/12/01(火) 14:36:51.12 ID:QTLgm2hp - ちょっと捕捉すると、
SmalltalkはOSでいうなら、休止状態で運用されているシステムで 1970年代からほんの数回しか再起動されていません。 常に動かしながら拡張されていて、ここまで来ているわけです。 このようなソフトウエアは他に例をみません。 アラン・ケイのメッセージを方便にして遅延・動的結合の重要性に関する主張はそういう意味で説得力があります。
|
- オブジェクト指向は愚かな考え。この世は計算式 [転載禁止]©2ch.net
355 :デフォルトの名無しさん[sage]:2015/12/01(火) 14:57:42.74 ID:QTLgm2hp - >>353
再起動しないことが偉いのではなくて、 たとえばシステムの根幹に関わる何かを改変しても、 そのまま動かし続けていられる変化への強さが強調されるべき点です。 あと、動的型であることが時代遅れとの指摘があるようですが 動的で遅延結合なシステムが構築できるのであれば、動的型であることにはこだわらないともケイは言っています。 いちおう、念のため。
|
- オブジェクト指向は愚かな考え。この世は計算式 [転載禁止]©2ch.net
357 :デフォルトの名無しさん[sage]:2015/12/01(火) 15:14:09.69 ID:QTLgm2hp - >>354
OSでいうなら休止状態で連続運用されるこのしくみは1974年ごろのSmalltalk-74で 採用された機構ですが、それから今のSqueakやPharo、あるいは別の進化の道をたどった VisualWorksといった最近の、しかし直系のSmalltalkまでの長い歴史の中でそれなりの人数には使われています。 なにより、Smalltalk-72をベースにした74から76を経て80までになると ほぼ別の言語処理系といってもよいくらい変革を遂げてもいます。参考まで。
|
- オブジェクト指向は愚かな考え。この世は計算式 [転載禁止]©2ch.net
359 :デフォルトの名無しさん[sage]:2015/12/01(火) 15:18:52.05 ID:QTLgm2hp - >>356
件の文献でケイも書いていますが、再起動しなくてもよい、という意味には メモリ上の(あるいはOODBであればストア内に永続化された)オブジェクトを継続利用できる つまり、システム改変のたびに作り直さなくてよい、ということも含まれています。
|
- オブジェクト指向は愚かな考え。この世は計算式 [転載禁止]©2ch.net
362 :デフォルトの名無しさん[sage]:2015/12/01(火) 15:26:28.74 ID:QTLgm2hp - >>358
もともと Smalltalk はケイのダイナブック向けの暫定OSなので、一体もなにもそのものです。 Smalltalk のようなシステムを、他の言語で作ることは可能だと思いますよ。 ちなみにケイは静的型についても動的遅延結合を実現できればこだわらないと言っていますから 最近はやりのダックタイピングが可能な静的型言語でトライしてみるのも面白いでしょう。
|
- オブジェクト指向は愚かな考え。この世は計算式 [転載禁止]©2ch.net
365 :デフォルトの名無しさん[sage]:2015/12/01(火) 15:28:50.56 ID:QTLgm2hp - >>361
オブジェクトをシリアライズせずにそのまま永続化できる世界もまた面白いものですよ。
|
- オブジェクト指向は愚かな考え。この世は計算式 [転載禁止]©2ch.net
374 :デフォルトの名無しさん[sage]:2015/12/01(火) 16:59:41.64 ID:QTLgm2hp - 最近は若い人もいろいろと発見して楽しんでいるようですし
http://phaendal.hatenablog.com/ LISPがそうであるように、古いから無価値と決めつけず学ぶべき点はまだあると思いますよ。
|
- オブジェクト指向は愚かな考え。この世は計算式 [転載禁止]©2ch.net
376 :デフォルトの名無しさん[sage]:2015/12/01(火) 17:17:38.51 ID:QTLgm2hp - Smalltalkはサビ付いたまま進化がないという人もいますが、(知り尽くしたアラン・ケイが言うならまだしも)
こうした意見の多くは、それを言う人のSmalltalkに対する理解不足から来る誤解です。 たとえばRubyのRefinementsの元ネタはSqueak Smalltalkで実験されたClassboxesですし、 PHPで5.4以降に導入されたTraitsもやはりSqueak Smalltalk発の技術です。 いずれも70〜80年代からあったわけではなく、今世紀になってから発案されたり実装が試されています。 Smalltalkの仮想イメージ(システムを構成するオブジェクト群が永続化されている休止状態の保存ファイルのようなもの)の中には、 こういった今も重宝されるノウハウやその基盤がまだ存在するかもしれません。
|
- オブジェクト指向は愚かな考え。この世は計算式 [転載禁止]©2ch.net
379 :デフォルトの名無しさん[sage]:2015/12/01(火) 17:26:29.01 ID:QTLgm2hp - >>367
たしかに、Smalltalkシステムは(過去そうであったように、今後変遷を遂げて別の言語に生まれ変われるという 可能性を秘めてはいるものの現状)Smalltalkという言語に限定されているという意味でおっしゃるとおりです。 たたオブジェクト指向の特にメッセージに象徴される動的遅延結合システムをどのように実現し活用するか という議論においては、Smalltalkにこだわる必要はまったくなくて、たとえばケイらがここのところ 取り組んでいるSTEPSプロジェクトの成果物のように、多様な言語を適材適所でシステムの記述に 使い分けるという方法で多様性とそのメリットを享受することは可能かと思います。 STEPS プロジェクトご紹介その2 http://d.hatena.ne.jp/propella/20111022/p1
|
- オブジェクト指向は愚かな考え。この世は計算式 [転載禁止]©2ch.net
380 :デフォルトの名無しさん[sage]:2015/12/01(火) 17:30:33.11 ID:QTLgm2hp - >>377
まったく使われてない、使うことができないということはないですよ。 最近話題になったところでも、日本でもSmalltalkを使ったこんなスタートアップが名古屋にあります。 http://jp.techcrunch.com/2015/10/01/marketplace-for-construction-machinery-allstocker-raises-100m-jpy-from-gmo-venturepartners/
|
- オブジェクト指向は愚かな考え。この世は計算式 [転載禁止]©2ch.net
393 :デフォルトの名無しさん[sage]:2015/12/01(火) 19:32:24.50 ID:QTLgm2hp - Smalltalkのことは興味がなければどうぞ忘れてください。例として適当ではなかったようです。ごめんなさい。
>>345で言いたかったのは、オブジェクト指向で(抽象データ型ではなく)メッセージを引き合いに出した場合、 その本質は動的遅延結合性をどのようにシステムに持たせるか、だということです。 そして使うのは動的型である必要はありません。近年のスマートな型システムも活用できると思います。 短く言うと、あなたは何か時計のような単純なものを作り壊れたら直せる。 しかし大きなシステムでは成長する際や、変化する際の擦り合わせが必要だ。 〈略〉大きなシステムは単純な歯車の機構よりも生態系のように振る舞う。 単純で強力なものの秘密は〈略〉どうすればできるだけ深く「システムについて 考えるか」であり、できるだけ頻繁に「謙虚に考えるか」である。 「ソフトウェア工学」は矛盾語法か? - アラン・ケイ http://metatoys.org/oxymoron/oxymoron.html
|