[Squeak-ev] Sichern eines SketchMorphs

Klaus Füller K.Fueller at t-online.de
Sam Nov 15 17:36:31 UTC 2003


Bert Freudenberg schrieb:
> Klaus Füller wrote:
> 
>> Bert Freudenberg schrieb:
>>
>>> Klaus Füller wrote:
>>>
>>>> Ich habe einen SketchMorph (=Igel) gezeichnet, den ich per Methode 
>>>> aus einer anderen Klasse (=IgelFenster) auf dem Bildschirm 
>>>> auftauchen und herumlaufen lasse --- funktioniert wunderbar.
>>>>
>>>> Aber wenn ich das Projekt sichere und anschließend in ein anderes 
>>>> Image lade, ist der SketchMorph nicht da.
[...]
>> Wenn ich einen Inspektor des SketchMorph aufrufe und dort sage 
>> 'IgelFenster igelMorph: self', dann habe ich den gewünschten Zustand 
>> wieder hergestellt (diese Methode setzt das Klassenattribut).
>>
>> Ich frage mich, ob das auch automatisch geht?  Wo ist diese 
>> Klassenvariable gespeichert?
> 
> 
> Gar nicht. Es wird alles was sichtbar ist gespeichert, plus optional der 
> Quelltext. Mehr nicht.
> 
> Du bewegst dich da an der Grenze zwischen zwei Welten - der 
> Smalltalk-Welt mit Browser, Quelltext, etc., und der E-Zeug-Welt, die 
> Projekte, Skripting etc. bietet. Was du willst ist einfach nicht 
> vorgesehen.
> 
> Klassenvariablen initialisiert man üblicherweise beim Laden der Klasse 
> in der #initialize Methode (schau dich einfach im Image um). Da kann man 
> z.B. Bilder aus einer Datei laden. Die ganz Harten speichern ein Bild 
> auch schon mal als Quelltext ab (siehe z.B. MenuItemMorph class >> 
> initialize).
> 

Genau das beginne ich langsam zu verstehen.  Einstein soll einmal gesagt 
haben "make it as simple as possible, but not simpler". Ich habe (als 
Lehrer) den Eindruck, dass die "E-Zeug-Welt" eine zu sehr vereinfachte 
Welt ist.  Ich finde, Programmieren ist sinnvoll in der Schule weil die 
Schüler - ähnlich wie in Mathe - Abstaktionsvorgänge lernen.  Das 
Werkzeug muss diese Abstraktionsvorgänge einfach unterstützen - und da 
scheint mir Squeak (und zwar das klassische Squeak, ausdrücklich nicht 
Squeakland) einfach Klasse zu sein. Die E-Toys unterstützen mir die 
Abstraktion zu wenig.

[Beispiel: Die Schüler sollen eine Art von elektrischer Eisenbahn auf 
dem Bildschirm fahren lassen, sie sollen aber die Anweisungen dazu _als 
Programmtext_ eingeben. Jetzt könnte ich was zu den Lernzielen sagen und 
eine didaktische Analyse veranstalten - verkneife mir das aber.]

Nun gibt es einen Bereich, wo man manchmal interaktiv arbeiten kann: 
Beim Entwurf von Fenstern o.ä.  Es hat nicht immer Sinn, ein Fenster mit 
Buttons und Eingabefeldern per Programm aufzubauen, es also umfangreich 
und detailliert (und mühsam) als Text zu beschreiben.  Manchmal könnte 
man es "zusammenklicken", besorgt sich einen "Handle" und verwendet 
diese Struktur im Programm.  Auch andere Teile der GUI eines Projekts 
könnte man interaktiv erstellen.  Hoffentlich gibt es eine einfache 
Möglichkeit, derartige Projekte zu speichern und wieder zu laden.