vieweditattachhistoryswikistopchangessearchhelp

Smalltalk、Squeak、Morphic、タイルスクリプティングの関係

その節はお世話になりました。まだあきずに、Squeak してます。(あれだけコストを割いてインストラクションを展開したのですから、そうそう簡単に飽きられては身が持ちません(^_^;) --sumim)で、今は http://www.ogis-ri.co.jp/otc/hiroba/technical/Squeak/ のテキストで Smalltalk を勉強しています。基本はほぼ読んだのですが、Morphic とのつながりとか、Smalltalk って実際なにがどうできるのか混沌とした状況です。単なるプログラム言語じゃなくて一つの環境なんだなという感じはわかったような。で自分としては今興味があるのはやはり「Morphic」なので、タイルスクリプティングをすこしこえて、Workspace で、プログラム書いてみたり、動かしたりそんなことから Smalltalk を学びたいと考えています。たとえば、http://minnow.cc.gatech.edu/squeak/30 みたいなページの日本語版なんでしょうか。 -- heididorf - 2002-04-25, 09:55:54
文章力が足らないもので。すみません。
Smalltalk て不思議の世界です。
「タイルスクリプティングでは物足りない。Smalltalk のコードを組めばもっとモルフを自在に扱えるのではないか…」 -->はいそうです。Smalltalk とどうつながっていくかです。
「Squeak/Smalltalk にどんな能力が備わっていて、それを知ることで自分のソリューションとして活用できるかどうか見定めたい」 --> そうです。
>と、最後の一文の意味がちょっと分からないのですが文頭に省略されているのは「そうした目的で探すとしたら…」
はい、そうした目的で探したらということです。
とりあえず、折角絵ができたので、この絵を元にすこしいじってみたいとおもいます。よろしくお願いします。
早速ですが、この絵の頭、しっぽ、足の動きは、動く範囲を除いてすべて同じコードです。これをまとめたいな思います。クラスとかメソッドとかをつかえばいいのではないかと思ってます。
sumim さんページをかえた方がいいでしょうか。絵のページに ?
絵って [Morphic で絵が描けるみたいですが、使い方がわかりません]
http://squab.no-ip.com:8080/morphiclesson/12 のレッスンのことです。-- heididorf - 2002-04-25, 12:02:49
>「Smalltalk とどうつながっていくか」とのことですが、誤解のないようにしていただきたいのは
> Smalltalk で組まれてはいても、タイルスクリプティング・システムの言語仕様(?)と
> Smalltalk のそれとは別のもの だということです。

Morphic -- Smalltalk -- タイルスクリプティング の関係をきちんとしておく必要がありますね。わたしはこの部分も理解してないとおもいます。
Visual な開発環境としてとらえて、Morphic と、タイルスクリプティングと、Smalltalk でアプリをつくれるとかんがえるのは間違いということでしょうか。
Squeak/Morphic やれば、Smalltalk が覚えられるのか、もう少し書いていただけますか。
勘違いしてるのはわたしだけでしょうか。みなさんいかがですか。
>Smalltalk の世界へ誘うにはもう一 つ障壁を越えていただかなければいけないのです
ここももう少し詳しく書いていただけませんか?
Squeak(Smalltalk) でやってみたいこと、(できるか別にして)
telnet プログラム。snmp プログラム。
awk みたいなこと。 でも ユーザー側は、GUI がほしい。
簡単なゲームでもつくってみたい。(昔、VisualBasic2.0 で 落ちものゲームで数字がおちてくるものを書いたことがあるので。)-- heididorf - 2002-04-25, 17:57:02
sumim さん、ご解答ありがとうございます。
>先にも述べたとおり、タイルスクリプティングで Smalltalk を学ぶのはかなり難しいと思います
タイルスクリプティングのいちづけはわかりました。
>ただ総じて、Morphic を含め、Squeak で Smalltalk を学ぶのはあまり薦められないというのが習熟した Smalltalker のコンセンサスのようです。
了解しました。でも、Squeak 面白そうです。
もうひとつ教えていただけますか。こんなに書いてまだ理解できないのかお叱りを受けるかも知れませんが、ペイントでかいた、絵は、object ですよね、Smalltalk でいじることは可能とおもっていますがこれは正しいでしょうか。今から、これをやろうとしてるのですが。タイルスクリプティングはつかいません。-- heididorf - 2002-04-25, 22:53:51



はじめましてLemと申します。ここのやりとりを興味深く拝見しました。
僕もheididorfさんと同じくSqueak って何だ?Morphic って結局なんだ?って感じていたもので。こちらのMorohic レッスンで、Squeak をさわる楽しさを知って、近くの人に触れ回っていたのですが、自分でMorph を作れないかな、とかそういう方向へどうしても行ってしまいます。
そこでMorphを探索する第一歩として、sumimさんがすぐ上で書かれているのを実行しました。確かに動きます。そこで今度は sketchXXXX に forward:10 とか送るととエラーになります。
変だな?っていうんで、タイルスクリプトをSmalltalkのコードに変えるとself に forward:10 とかが送られている。僕はこの self はてっきり sektchXXXX だと思っていたのですが、inspectするとPlayerXX というクラスのインスタンスになっていました。で、よく調べるとsketchXXXX の extension の中に player という変数があります。そこで
sketchXXXX player forward:100
とかやると動いたんですね。実は、僕はSmalltalk なぞ今まで触ったことがなく、というかいかなる言語でもプログラムをまともに書いたことはないので、上に書いた作業は何時間もかかった試行錯誤の結果得たものなのです。でも、何かモルフに隠された謎を解いているようで、動いたときは感動でした(自己満足の世界)。
そこで、お聞きしたいことがあるのですが、どうも僕にはまだ、PlayerとMorphというこの二つのクラスの関係がはっきりとわかりません。PlayerにとってMorphはcostume という変数にしまわれている存在のように見えます。比喩的にいえば、あるプレイヤーがモルフという衣装をつけて画面上を動いているという印象を持ちました。PlayerというのはMorphicという考え方(?)の中で重要な概念なんでしょうか?それとも、タイルスクリプティングを実現するために考案されたクラスにすぎないのでしょうか?やはり、まだ僕も混沌としていて、まともな質問になってないかもしれませんが、よろしくお願いします。
自分のモルフを作るという企画を心待ちにしています。--Lem - 2002-05-22, 12:14:24
返事をありがとうございます。あっという間に返答があってびっくりです。sumimさんの回答を最初読んだときにはSelfのことがいまいちピント来なくて、何かないかと探してみたら「教育用言語ドリトル」の論文の中に出ていたのです。これを読んでもSelfの正体はわかりませんが、「子供にとってクラスとインスタンスといった階層は入り口として敷居が高いからSelfのようなプロトタイプベースの言語を設計することにする」というようなことが書いてありまして(<おぼつかない記憶)なおかつ、ドリトルには前から興味を覚えていて、ダウンロードして遊んだことがあったりとで、突然、sumimさんの返事の深い意味がわかってきた次第です。意味がわかってくるととても興味深いことが書いてあって、面白くてちょっと興奮してしまいました(笑。なんか、Squeakってわかる喜びを体験するためのツールみたいになってますね)
確かにsumimさんが言われるように、インスタンスをもっと自由に動かすためのしくみとして、Playerのようなクラスが必要になるんですね。それはわかります。タイルでスクリプトするまではモルフに対応するPlayerXXクラスは存在しないのに、スクリプトを組もうとするといきなりPayerXXというクラスが自動的に生まれて組んだスクリプトをメソッドとして持ってしまうというしくみが、ようやく分かりました。最初にsumimさんが「Morphic を理解する際に、Smalltalk と Self 双方の特徴とその差異を知らずにそれに当たるのはかなり難しいし、遠回りになると思います。」と言われていた意味がようやくわかりました(感動です)
それはそうと、Squeakの存在を知ったのはドリトルのメーリングリストで話題になっていたからですが、Squeakのことを少しかじって、ドリトルが目指していたものがよりはっきり理解できるとは嬉しいかぎりです。実を言うと僕はコンピュータ入門の授業をしているのですが、既成のソフトの使い方をやらせるのはどうも面白くなくてドリトルを使ってみようかな、とか考えていた所、Squeakを見て「こりゃすごい。小学生でもできるじゃないか」と教材としての興味も持っています。
ただ、教える側はいろんな事情を良く知った上でないと使えないので、現在修行中というわけですが、わかるにつれて、ますますわからないことが増えるという困った状態です。
 自分のモルフを作るというのは、意味がわからずも、本を見ながら挑戦中です。「Squeak-Open Personal Computing and Multimedia」の中のテストモルフを作ったのですが、他のモルフをドロップすると色が変わるのができたときは感動でした(涙)。
その過程をどしろうとの苦戦の記録として公開しても良いのですが、Swikiでの編集の仕方を練習しないといけませんね(汗)あとMathMorphで紹介されていたMorphicWrapperも奇妙で面白いですね。数学的な対象がおしゃべりするのは子供たちにどういう影響を与えるんだろう、なんて考えてしまいます。--Lem - 2002-05-22, 18:06:50
とほほ、こんなの用意されちゃ書かないわけにはいきませんね。(困惑!でもちょっとだけ自分の場所があるのはいい気分)自分がいかに何も知らない状態から無謀なことをやろうとしてるのかを日記風につづってみたいと思いますが、いいですか?超初心者を力づけるものになればという思いから書いてみたいと思います。sumimさんは僕の勘違いなどに、つっこみやコメントをひまなときにでも入れて下さい。ちょっとづつ書いていきます。--Lem - 2002-05-22, 21:27:35
ありがとうございます。そう言っていただけると書いてるかいがあります。--Lem - 2002-05-24, 08:19:39
heididorf さんありがとうございます。失礼かもしれませんが、heididorf さんが感じておられた疑問などがとても僕と似ていたのでお名前を少し拝借しました。書いてるとsumimさんが鋭い突っ込みを入れてくださるので、書いてるうちにまたまた疑問が増えてきます。とにかく、どしろうとの勘違い特集みたいな感じで続けられる所まで続けようかなって思ってます。一緒に頑張りましょうね。--Lem - 2002-05-25, 19:04:12
sumim さんコメントありがとうございます。書いていて、なんとなく、こんなの書いてていいのかな?なんて不安になることもありました。とりあえず、続けていいということですね。--Lem - 2002-05-25, 23:52:03
つっこみは、理解がより深まります。ellipse2345 とかを別のところ(例えばシステムブラウザ)とかの空いたところにコピーしてインスペクトすると Unknown Variable って出てきますね。Workspaceの中の局所変数みたいなものだと考えていいんでしょうか。すでに出てるMorophはなかなかつかまえられないけど、
elly := EllipseMorph new.
elly openInWorld.
ってやると新しいモルフは捕まえられますね。今ならわかる楕円を画面に出す方法(笑)でもやっぱり他の場所だとellyはUnknownになります。ellipse2345 と elly は同じようなものですよね。
 おかげで「create textual references to dropped morphs」っていうまわりくどい言い方の意味がようやくわかった気がします。名前じゃなくて名前をつけたんですね。--Lem - 2002-05-26, 16:01:11
そういえば、僕はSmalltalkのお勉強をしてるときに、ワークスペースの中でもいちいち変数を宣言していたのを思い出したました。| temp | とか、宣言してあとでこの中身をみようとしたらエラーっぽくなるんですよね。もう消えてるんですね。で、僕はなんだか不便だなあ、って感じていたんです。ところが、Squeakでは宣言なしに使ってるなあ、って思っていて、いいのかな?ずうっと消えない変数になったりしないのかな?なんて考えてたんですが、いつでもインスペクトできたりするんでこっちのが便利だなって思っていたんです。
 abeeさんに紹介してもらった過去ログを読むと(まだ全部読んでませんが)ところどころ意味のわかることが書いてあって、興味深かったです。そのあとVisualWorkを動かしてみると、ワークスペースにVariableってタブがあって、今まで何のことが意味がわからなかったけど、今わかりました。ここでワークスペースの中で使った(宣言なしの)一時変数を見ることができるんですね。奇妙なふるまいについてはまだ、良くわかりません。 --Lem- 2002-05-26, 23:40:08
 僕は現在、たいしたことに使ってないのでSaveしないからわからなかったですが、何日も前の変数がいたずらをするというのは怖いですね(汗)そういうことがあることを考えるとViualWorksのVariableというタブはとても大切ですね。
 発見的、体系的学習の話ですが、学ぶ側は「発見的」学習を好んでやりますが、ああ面白かったで終わることが多いように感じます。また、我流になってしまう。このようなことを言われているのでしょうか?僕としては、教える側の立場からはグローバルには体系的にローカルには発見的にというイメージを理想にしています。--Lem - 2002-05-27, 10:27:12

heididorfさん「サクサクSmalltalk」はどうですか?
僕はSmalltalkはじめてさわって、とても面白いと感じています。ただ、どうもStreamというクラスがいまいちしっくり来てません。修行不足です。また、グラフィックを出すしくみもまだ謎につつまれています。今、ゆっくり勉強中です。--Lem - 2002-05-27, 18:06:39


このページを編集 (31261 bytes)


Congratulations! 以下の 2 ページから参照されています。

This page has been visited 7624 times.