- 【JavaScript】スクリプト バトルロワイヤル55【php,py,pl,rb】 [無断転載禁止]©2ch.net
298 :デフォルトの名無しさん[sage]:2016/10/23(日) 00:46:38.28 ID:RkqjdgMb - >>292
> 実行コードを修正したいと思ったことある? 効率や仕事での仕方なし抜きにってことならSmalltalkで実行しながら開発してくの楽しいよ ついでにSmalltalkには仮想イメージっちゅう簡易オブジェクトストア機構がデフォなんで 実行コンテキストもそのまま永続化できるからこれがまた超便利
|
- 【JavaScript】スクリプト バトルロワイヤル55【php,py,pl,rb】 [無断転載禁止]©2ch.net
302 :デフォルトの名無しさん[sage]:2016/10/23(日) 01:22:20.72 ID:RkqjdgMb - >>299
テスト駆動もできるけど(まあxUnitとかTDDなんてそもそもSmalltalkが元祖だしw) それをもう一歩進めた場当たり的ないわゆる“デバッグ駆動開発”がSmalltalkでは気持ちイイ 頭の中にできあがったモデルを仮想イメージ(Smalltalk環境)にどどーって注ぎ込んでくスピード感がたまらない http://www.slideshare.net/sumim/20120916-rubykaigi-rubyistsqueak-smalltalk/21
|
- 【JavaScript】スクリプト バトルロワイヤル55【php,py,pl,rb】 [無断転載禁止]©2ch.net
307 :デフォルトの名無しさん[sage]:2016/10/23(日) 01:54:23.18 ID:RkqjdgMb - >>306
んー、説明が難しいな コードは頭の中にはまだないのよ つーかSmalltalkで組むときはコーディングというのを実はあまり意識しない 漠然としたオブジェクトだけが頭の中にあって、それをSmalltalkに(それこそメッセージを送って)構築してもらう感じ TDDは仕様を書かされている感じがワンアクション挟まるというかなんか隔靴掻痒感みたいなのがある
|
- 【JavaScript】スクリプト バトルロワイヤル55【php,py,pl,rb】 [無断転載禁止]©2ch.net
309 :デフォルトの名無しさん[sage]:2016/10/23(日) 02:21:35.16 ID:RkqjdgMb - >>307
そんなTDDをするにしても、Smalltalkだと件の“デバッグ駆動開発”っぽさは入ってくるので 他言語でやるTDDよりは楽しいんだけどね https://www.youtube.com/watch?v=HOuZyOKa91o あと、この動画の後半に出てくる入出力例を入れるとメソッドを探してくれるツールとかは他言語にも欲しい
|
- 【JavaScript】スクリプト バトルロワイヤル55【php,py,pl,rb】 [無断転載禁止]©2ch.net
313 :デフォルトの名無しさん[sage]:2016/10/23(日) 03:46:41.34 ID:RkqjdgMb - >>310
うーむ やっぱりコードベースで考えなきゃいけない言語の人とは分かり合えそうもないか Smalltalkだとどうしてもオブジェクトベースな頭になっちゃうのでいけませんな^^; >>311 良くも悪くもSmalltalkの生い立ちは「パソコン」環境(アラン・ケイのダイナブックのための暫定OS。為念)なので そういう使い方は想定されていないんだけど、しいて挙げるならGemStoneというSmalltalk処理系がそれ向けかな Smalltalkはもとから簡易オブジェクトストアの中に構築された処理系という特殊な実装方法がとられているんだけど それを一歩進めて、分散OODB内に処理系を構築しちゃった感じのSmalltalkの一種 https://docs.google.com/viewer?a=v&pid=sites&srcid=c21hbGx0YWxrLXVzZXJzLmpwfGhvbWV8Z3g6NGJiZDExNjU5ZmIxN2Q4Yg
|
- 【JavaScript】スクリプト バトルロワイヤル55【php,py,pl,rb】 [無断転載禁止]©2ch.net
314 :デフォルトの名無しさん[sage]:2016/10/23(日) 03:56:31.04 ID:RkqjdgMb - >>312
実行コンテキストも含めて永続化できるっていうのはデバッグの時にちょっと便利なオマケ機能であって システムを構成するオブジェクト群をその状態のまま収めた仮想イメージファイルで配布する用途が主なので 今のコンテナの考え方に近いと思うけど違うのかな
|
- 【JavaScript】スクリプト バトルロワイヤル55【php,py,pl,rb】 [無断転載禁止]©2ch.net
317 :デフォルトの名無しさん[sage]:2016/10/23(日) 05:09:37.11 ID:RkqjdgMb - >>315
> データを別の所に保存していて、コンテナ自体には持たないから いつでもすぐに停止して破棄することが可能。 うん。だからデータを別の場所に保存するそういった運用も可能ということ たとえばここに置いてあるzipぞれぞれには http://wiki.squeak.org/swiki/uploads/10/ComSwiki.3.zip?history=true 当時のモジュールのソースが失われたりして今となっては構成の再現が不可能なとても古いComSwikiという サーバーの歴代バージョンを構成するオブジェクト群を永続化してファイルに収めた形(仮想イメージ)で 入っているんだけど、各々の仮想イメージさえあれば各バージョンのComSwikiサーバーは動かせるし Wikiのセッティングやデータは別ファイルで保存されるんで仮想イメージ(サーバー環境)自体は 停止して破棄はもちろん、すげ替えたりもできる…ってあたりがちょっと似ているんじゃないかな、と
|
- 【JavaScript】スクリプト バトルロワイヤル55【php,py,pl,rb】 [無断転載禁止]©2ch.net
318 :デフォルトの名無しさん[sage]:2016/10/23(日) 05:49:24.70 ID:RkqjdgMb - >>316
Smalltalkのプログラミングというのは環境内にオブジェクトのネットワークを構築することが目的だから ソースコードの記述を必ずしも意味しないんだよね 例えば、クラスやメソッド定義のためのコードの記述やそれを評価する行為は、オブジェクトとしてのそれらを その場で生成するために行うSmalltalk環境とのコミュニケーションの手段の一つに過ぎなくて 他言語のようにソースコードを収めたファイルを書き上げる(あるいは書き下しでいく)作業とはちょっと感覚が違う たぶん何を言っているのかわからないと思うけど^^;
|
- 【JavaScript】スクリプト バトルロワイヤル55【php,py,pl,rb】 [無断転載禁止]©2ch.net
321 :デフォルトの名無しさん[sage]:2016/10/23(日) 11:24:20.87 ID:RkqjdgMb - >>319
> ソースコードなら、特定のコードを取り除くだけ Smalltalkの場合、プログラムの修正は「オブジェクトのすげ替え」、 つまり新しく生成して古いものと置き換える作業になるけど、別にソースコードの場合と同じだよ? たとえばメソッドオブジェクトのすげ替えなら、その履歴はすべて記録・管理されているから、 その不要な「3番目」の修正を無かったことにして元に戻すだけ > 実行イメージを破棄せずに、イメージから3回前の修正に伴う全ての環境への変化を元に戻せるの? その「3回目」がたとえばDBからデータを削除してしまうというような不可逆な変化を生じさせる場合 ソースコードベースだってソースをいじったからって元に戻るわけではないよね?
|
- 【JavaScript】スクリプト バトルロワイヤル55【php,py,pl,rb】 [無断転載禁止]©2ch.net
323 :デフォルトの名無しさん[sage]:2016/10/23(日) 11:34:20.89 ID:RkqjdgMb - >>320
> smalltalkって超成果主義なんだよな プログラマの一挙手一投足が記録に残るから、そういうところはちょっとあるかもね おもむろにどこかで3+4って式を評価したことも見ればあとからわかる だから、環境内でどんな試行錯誤やヘマを何時やったかはマネージャーにバレバレ 関係ない小屋やテントなんか遊びで作っていたら、そりゃ叱られるよね
|
- 【JavaScript】スクリプト バトルロワイヤル55【php,py,pl,rb】 [無断転載禁止]©2ch.net
324 :デフォルトの名無しさん[sage]:2016/10/23(日) 11:50:14.12 ID:RkqjdgMb - >>322
LISPもたしかにできるけど、Smalltalkのようなイメージベースでの運用形式は通常はとらないよね? Smalltalk派生の処理系でなければ他は(Smalltalkの亜種に数える人もいるけど)SELF、あとFactorとか でも秘伝のタレみたいにイメージを何十年にわたって育てていく感じはSmalltalk独特のような気がする
|
- 【JavaScript】スクリプト バトルロワイヤル55【php,py,pl,rb】 [無断転載禁止]©2ch.net
327 :デフォルトの名無しさん[sage]:2016/10/23(日) 12:43:14.87 ID:RkqjdgMb - >>325
> Smalltalkの場合、オブジェクトって言ってるのは > 単にソースコードなだけだよ(笑) いや、オブジェクトはオブジェクトでしかないし、それを生成するためのソースコードとは別物なんだが… やはりソースコードベースでしか物を考えられない人とのコミュニケーションはやっかいだな クラスとインスタンスを会話の中で混同する人みたいだw それはさておき > 普通の言語ではソースコードとデータは分離されてるから、 > 簡単にデータだけバックアップが取れる。 Smalltalkだってそういう運用(たとえばデータはファイルやDBに追い出すとか)は可能だよ そのうえで、あえてそういった手段をとらない、つまり仮想イメージ内にデータを保持する場合の話としても 仮想イメージはもちろん複製してバックアップは可能なので、 > あるデータで処理がおかしい場合、データのバックアップをとっておき、 > ソースコードを修正して、同じデータで処理するだけで正しいデータが得られる。 というのも普通にできるよ (より正確には「ソースコードを修正」は「別の機能性オブジェクトにすげ替えて」だけど) それなのにSmalltalkで「出来ない」とか「データを変えてしまうとソースコードまで変わってしまう」とか いうのは仮想イメージの運用にどんなメンタルモデルを持っているのだろうか?
|
- 【JavaScript】スクリプト バトルロワイヤル55【php,py,pl,rb】 [無断転載禁止]©2ch.net
329 :デフォルトの名無しさん[sage]:2016/10/23(日) 12:49:32.94 ID:RkqjdgMb - >>326
> 関係ないノイズが多すぎて重要な事が見えなくなってしまってる。 そこはナンチャッテとはいえオブジェクトストア(ある種のデータベース)なんで、適切なフィルタをかけてやれば 必要な重要な情報は適宜引き出せるようになっているからご心配なく 実際にもそういう細やかなログはトラブル時にその原因の解明や、仮想イメージ(正確にはオブジェクトメモリの状態) をやむを得ず放棄しなければならい場合の復旧にも役立っているしね
|
- 【JavaScript】スクリプト バトルロワイヤル55【php,py,pl,rb】 [無断転載禁止]©2ch.net
330 :デフォルトの名無しさん[sage]:2016/10/23(日) 12:53:12.34 ID:RkqjdgMb - >>328
> Smalltalkの世界ではそんなことしない。 そんなことはないよw どんな思い込みだよwww 普通にデータを仮想イメージ外に置くためのORMとかOODBとか用意されているし、必要なら使うよ
|
- 【JavaScript】スクリプト バトルロワイヤル55【php,py,pl,rb】 [無断転載禁止]©2ch.net
337 :デフォルトの名無しさん[sage]:2016/10/23(日) 14:16:18.22 ID:RkqjdgMb - >>336
> Smalltalk独自のフォーマット(バイナリ)で保存しなければいけない。 頼むからウソ情報垂れ流すなよ… Smalltalkには古典的にも任意のオブジェクト(主だってはクラスやメソッドだが)にそのソースをはき出させる file out という機能があってだな、凝ってもせいぜいXMLで事足りる いったいどこから情報を得てんだよ!w
|