[Squeak-ev] Wer kennt "Panther"?
Markus Schlager
m.slg at gmx.de
Son Nov 20 19:32:58 UTC 2011
On Fri, 18 Nov 2011, R. Baumann wrote:
> "Panther is a Scratch modification that offers greater manipulation, such as
> blocks that create, move, show, and hide lists and variables, has the
> ability to clone and delete sprites, and offers external file manipulation."
>
> Von kompetenter Seite ist zu erfahren: Panther schließt die Lücke zum
> textuellen Programmieren.
> Eigene Bausteine können in Smalltalk-Code selbst geschrieben werden
> (Variables -> "Make a block"), ebenso kann man den Quellcode zu den Skripten
> inspizieren (Rechtsklick -> "show tuples" bzw. "edit block").
>
> Es geht um die Frage: Welche visuelle Sprache (mit der Möglichkeit des
> Übergangs zum textuellen Programmieren) eignet sich am besten für den
> Informatik-Anfangsunterricht (ab Primarstufe)?
Ich habe mir das jetzt ein wenig angesehen. Was mir gut gefällt, ist z.B.
die Möglichkeit, per Block Sprites clonen zu können. Das geht ein wenig in
Richtung Klassenkonzept, was Etoys mit den Geschwistern ja auch bietet.
Wie viel das Schreiben eigener Blöcke wirklich wert ist, weiß ich nicht so
recht. Das sieht mir eher nach einem Feature für Cracks aus, die ohnehin
schon Smalltalk können. Es stellt sich allein schon die Frage, welche
Funktionalitäten solch eigene Blöcke haben sollen. Wenn man vom
vorhandenen ausgeht, zielt es Richtung Datenzugriffe ab. Ansonsten
bleiben noch Dinge, die sich nicht mit Sprites oder Stiftspuren am
Bildschirm darstellen lassen.
Im Blick auf objektorientierte Modellierung und Programmierung - unter
diesem Paradigma steht der derzeitige Informatikunterricht schießlich,
fehlen mir aber zwei Dinge ganz wesentlich - es sind die gleichen Dinge,
die ich seit jeher auch bei Scratch vermisse (vielleicht liest du ja mit,
Jens :) ):
1. Auch Panther arbeitet offenbar nur mit Broadcast-Nachrichten. Das macht
es richtig schwer, Sprites eigene Methoden mit einem Methodennamen
beizubringen. (Rückgabewerte wären mir für den Einstieg ins
Programmieren egal.) Ich hätte wahnsinnig gerne etwas in der Art
"sende an [Katze][machPurzelbaum]"
oder
"sende an [Katze][machPurzelbaum] und warte"
Dann könnte ich bei der Katze sinnvollerweise ein Skript mit dem Kopf
"wenn ich [machPurzelbaum] erhalte"
bauen und müßte mir nicht immer einen Kopf darum machen, ob eigentlich ein
anderer Sprite auch Purzelbäume machen kann. Wie hier schon öfter
angeklungen, geht es bei der Objektorientierung doch eigentlich um eine
Nachrichtenorientierung - Nachrichten mit Empfänger.
So muß ich immer tricksen: "sende an alle [Katze_machPurzelbaum]". Das
interessiert die anderen Sprites aber doch gar nicht, oder jedenfalls
nicht immer.
2. Wenn schon Variablen, dann bitte auch Sprite-wertige Variablen. Es
scheint in Panther Variablen zu geben, die zumindest den Namen eines
Sprites verwalten - aber ist das nur der String oder wirklich ein Zeiger
auf den Sprite?
Etoys hat das alles, wird aber beim Kachelprogrammieren leicht etwas
unübersichtlich (Scratch hat da z.B. beim Rechtsklick die Option, etwas
aufzuräumen). Allerdings ist es in Etoys z.B. richtig gut, daß man Skripte
verschiedener Darsteller gleichzeitig sehen kann. Vielleicht wäre es da
schön, wenn man in Etoys seine Skripte nicht direkt in der Welt bauen
würde, sondern in einer Klappe, die z.B. auch eine verkleinerte Vorschau
der Welt enthält. Oder wenn es in der Navigationsklappe eine einfach zu
bedienende Ansichtsauswahl gäbe:
- Alle gerade offenen Skripte minimieren
- Alle gerade offenen Skripte maximieren und die anderen Darsteller nur in
einer Miniwelt in einer Ecke darstellen
- Etoys-Standardansicht: Alles bunt durcheinander ;)
Was meinst du, Bert?
Markus