[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