- オブジェクト指向は愚かな考え。この世は計算式 ★2 [無断転載禁止]©2ch.net
108 :デフォルトの名無しさん[sage]:2015/12/18(金) 13:53:07.69 ID:47x3yklW - >>107
なんかSmalltalkのことを言うと過剰反応されるのでこういうこと言うのなんだけど、以下参考まで。 > ソースコードの全ての関数呼び出しのコードを解析しないと、 > 不正な呼び出しをしている場所を検出することは出来ない。 Smalltalkではメソッドもオブジェクトだから、それが他のどのメソッドをコールしているかはプロパティとして得られるし、 他のどのメソッドからコールされているかもわかるから、ソースコードを精査せずとも可能性のあるメソッドは 全部列挙できるので、静的型付きな人が心配するほど大変な作業じゃないよ (もちろん命名重要だし、メタプログラミングとか駆使した凝った呼び方も避けなくちゃこの機能は使えないけど)
|
- オブジェクト指向は愚かな考え。この世は計算式 ★2 [無断転載禁止]©2ch.net
115 :デフォルトの名無しさん[sage]:2015/12/18(金) 14:10:23.72 ID:47x3yklW - タイポに赤線が引かれるくらいならSmalltalkでも普通にやってくれるけどね…
https://www.youtube.com/watch?v=HOuZyOKa91o&t=1m30s
|
- オブジェクト指向は愚かな考え。この世は計算式 ★2 [無断転載禁止]©2ch.net
118 :デフォルトの名無しさん[sage]:2015/12/18(金) 14:22:32.85 ID:47x3yklW - あと、コード中にリテラルの代入とかのヒントがあれば、ちょっとした型追跡はやれるから
メソッド名の列挙も静的型付けの人が心配するほど大量に列挙されることもないしね。
|
- オブジェクト指向は愚かな考え。この世は計算式 ★2 [無断転載禁止]©2ch.net
120 :デフォルトの名無しさん[sage]:2015/12/18(金) 14:40:57.56 ID:47x3yklW - Smalltalkは、先にも書いたメソッドも含め、プログラムの要素が全てオブジェクトで、なおかつ
それら簡易のOODBのような感じでIDE内で管理されているから、プログラムから情報を引き出すのも データベース感覚で可能かつ気軽にできるところは使っていてすごく面白い。 わかりやすい単純な(でも他言語では理解されにくい)ところでは、ソースコードテキストもメソッドオブジェクトの 属性にすぎないとか。 (Integer >> #factorial) getSource => a Text for 'factorial "Answer the factorial of the receiver." self = 0 ifTrue: [^ 1]. self > 0 ifTrue: [^ self * (self - 1) factorial]. self error: ''Not valid for negative integers''' この手の「オブジェクトに訊ねる」スタイルによって、クラスブラウザとかデバッガがそこそこ高機能なのに 作りがすごくシンプルになっていてよく驚かされたりするのも、Smalltalkを使う楽しみのひとつ。
|
- オブジェクト指向は愚かな考え。この世は計算式 ★2 [無断転載禁止]©2ch.net
121 :デフォルトの名無しさん[sage]:2015/12/18(金) 14:55:55.75 ID:47x3yklW - >>110
Smalltalkでは型には頓着しないからそういう抽出はできないね(Strongtalkでもないかぎり)。 ま、知っていて貶めるのが目的だろうけど、以下念のため。 極端な話、Smalltalkでエラーっていうのは「メッセージの処理のしかたがわかりません」だけだから その場違いなオブジェクトがノーティファイアをあげたときに捕まえてあげるしかない。 でもSmalltalkでの開発の真骨頂はここからで、至れりつくせりのデバッガが全力でサポートしてくれる。 その威力は強力で、Smalltalk教育においてしばしばデバッガ使用禁止のしばりがつくレベルだったりする。
|
- オブジェクト指向は愚かな考え。この世は計算式 ★2 [無断転載禁止]©2ch.net
124 :デフォルトの名無しさん[sage]:2015/12/18(金) 15:20:04.19 ID:47x3yklW - >>122
当たり前の機能は省くとして(のっけからデバッガのそれ自体の機能じゃなくて恐縮だけど)、 他ではあまり見られない機能としては、 デバッガ向けのコンパイルをしなくとも当然のようにフルで状況の情報が引き出せること コンテキストやコンテキストスタックがファーストクラスオブジェクトだから 永続化して何度でも同じ状況を解析・検証できたり、すべての情報を引き出したり変更できること。 あと、動的特性としては、修正してコンパイル後、まったく同じスレッドで続行が可能なこと、あたり?
|
- オブジェクト指向は愚かな考え。この世は計算式 ★2 [無断転載禁止]©2ch.net
127 :デフォルトの名無しさん[sage]:2015/12/18(金) 15:28:16.80 ID:47x3yklW - >>126
エディット コンティニュはデバッグ ビルドでのみ動作します。wwwww
|
- オブジェクト指向は愚かな考え。この世は計算式 ★2 [無断転載禁止]©2ch.net
129 :デフォルトの名無しさん[sage]:2015/12/18(金) 15:35:37.08 ID:47x3yklW - 開き直ったなー
|
- オブジェクト指向は愚かな考え。この世は計算式 ★2 [無断転載禁止]©2ch.net
131 :デフォルトの名無しさん[sage]:2015/12/18(金) 15:55:49.76 ID:47x3yklW - いよいよ本腰入れて開き直ったな。w
実際役立って使う必要とされる機能なんだから「何に使うかわからない」はないだろ。さすがに。 端からSmalltalkや動的遅延結合性を貶めるのが目的だろうから言っても無駄だろうけど、 Smalltalkでのデバッグ時の思考を中断させない疾走感(と、他言語での隔靴掻痒感)は、 Smalltalkのデバッガが何かを知って解って使ってみないことには 特に他言語処理系の手練れにはなかなかわからないと思う 必ずしも機能の多寡ではないんだよね。 Live Debugging in Smalltalk https://www.youtube.com/watch?v=1kuoS796vNw
|
- オブジェクト指向は愚かな考え。この世は計算式 ★2 [無断転載禁止]©2ch.net
134 :デフォルトの名無しさん[sage]:2015/12/18(金) 16:06:19.19 ID:47x3yklW - わかった。わかった。もういいよ。おまえちょっと痛いよ。
|
- オブジェクト指向は愚かな考え。この世は計算式 ★2 [無断転載禁止]©2ch.net
137 :デフォルトの名無しさん[sage]:2015/12/18(金) 16:12:07.58 ID:47x3yklW - 多少窮屈でも安心して過ごせる静的型の世界で安寧を得ることが今すごく重要なんだろ。わかるよ。
型には反対しないが、複雑さに悩まされない型システムを見たことはない。動的型付けはまだマシだ。 http://d.hatena.ne.jp/katzchang/20080807/p2 だから我々は我々でSmalltalkを使ってヒャッハーしつつ、 型システムが今より賢くなって動的遅延結合性を許容するようになったら喜んでそっちに行くよ。
|
- オブジェクト指向は愚かな考え。この世は計算式 ★2 [無断転載禁止]©2ch.net
143 :デフォルトの名無しさん[sage]:2015/12/18(金) 16:20:53.12 ID:47x3yklW - >>138
> 実行するまでの時間を大幅に削減する また他人の言葉を鵜呑みにしてって言うだろうけど、実感があるから言うと ソフトウェアシステムにおいて全コストの85% は成功裏に導入された後で必要になる http://metatoys.org/oxymoron/oxymoron.html んだよね。だから実行するまでの時間を大幅に削減したところで(そのときは幸せかもしれないけれど) 結局、動かしてみて解ることのほうが多いから、全体から見たら誤差の範囲じゃない?
|
- オブジェクト指向は愚かな考え。この世は計算式 ★2 [無断転載禁止]©2ch.net
145 :デフォルトの名無しさん[sage]:2015/12/18(金) 16:26:54.71 ID:47x3yklW - >>140
> 結局javaScriptが おまえじゃねぇwww すわってろwww https://pbs.twimg.com/media/BzZBmK8CMAMBjQr.jpg
|
- オブジェクト指向は愚かな考え。この世は計算式 ★2 [無断転載禁止]©2ch.net
163 :デフォルトの名無しさん[sage]:2015/12/18(金) 18:19:29.16 ID:47x3yklW - >>162
後学のため、実際に試してPharo Smalltalkとも比較したいので、 どの静的言語のなんというIDEから入って、 どの動的言語のなんというIDEの補完の無能さに恐れ入ったか教えてもらうことできます?
|
- オブジェクト指向は愚かな考え。この世は計算式 ★2 [無断転載禁止]©2ch.net
167 :デフォルトの名無しさん[sage]:2015/12/18(金) 20:27:55.99 ID:47x3yklW - >>166
ひどいなぁ…。で、試したのは Pharo Smalltalk のどのバージョン? ちなみに手元の Pharo 4.0 だと | num | num := 1.23. num まで入れて as と打っても文字列オブジェクトのメソッド名は出てこないけど?
|
- オブジェクト指向は愚かな考え。この世は計算式 ★2 [無断転載禁止]©2ch.net
168 :デフォルトの名無しさん[sage]:2015/12/18(金) 20:29:21.85 ID:47x3yklW - >>165
え、どういうこと? コードをパーズして抽象構文木にするのも実行なの?
|
- オブジェクト指向は愚かな考え。この世は計算式 ★2 [無断転載禁止]©2ch.net
177 :デフォルトの名無しさん[sage]:2015/12/18(金) 22:04:15.15 ID:47x3yklW - >>169
たしかにそれは意地が悪い。w
|
- オブジェクト指向は愚かな考え。この世は計算式 ★2 [無断転載禁止]©2ch.net
187 :デフォルトの名無しさん[sage]:2015/12/18(金) 22:56:39.43 ID:47x3yklW - たしかに
Smalltalk でも typo で困ることはない
|