[Squeak-ev] Button-Tutorial

Andreas Raab andreas.raab at gmx.de
Son Mar 30 14:01:30 UTC 2003


Hallo Markus,

> Ich denke, die Diskussion wirft aber eine wichtige Frage auf:
> 
> An wen richten sich unsere Tutorials? Haben wir eine Hauptzielgruppe?
> Chris hat eher Smalltalk-Entwickler im Sinn, die eine gute
> open-source Entwicklungsumgebung suchen, ich dachte eher an
> Kinder/Eltern/Lehrer oder "Omniuser" (was war da gleich die beste 
> deutsche Übersetzung?)

Otto Normalbenutzer?! ;-) Ich hatte aber ganz deutlich den Eindruck, das
Chris' Tutorial doch eher an den Smalltalk-Interessierten Benutzerkreis
gerichtet ist (was völlig in Ordnung ist).

> > Schon, schon, aber die Frage ob #handlesMouseDown: einfacher ist als
> > "on:send:to:" ist schwierig zu beantworten.
> 
> Das Tutorial für den E-Toy Button nebst Screenshots und
> Filmaufnahme ist mir wichtiger, als die Antwort auf die Frage,
> welche der Smalltalk-Lösungen tatsächlich einfacher
> ist oder nicht.

Das habe ich vermutet. Deswegen sagte ich auch man "kann" darüber streiten.

> > Zudem ist das Setup zentralisiert, was bedeutet das wenn
> > jemand rausfinden möchte "was dieses Ding macht" kann er in die
> > Initialisierung reinschauen und muss nicht wild durch die Klasse 
> > browsen.
> Das Argument kommt mir schon vom Visitior-Pattern bekannt 
> vor, ich mag es nicht so gern, weil wir ja sonst bei OO
> immer der Verteilung das Wort reden, bin wohl eher der
> wilde Typ :-) 

Ich meinte mit dem "wilden Rumbrowsen" viel eher die Problematik, dass es
schwer für einen Benutzer ist die "relevanten" Information zu finden.
Typischerweise geht vieles bei der Benutzerinteraktion los, weswegen
Interaktionsmethoden oft der kritische Einstiegspunkt für das Verständnis
sind. Diese schnell finden zu können macht es deutlich einfacher, ein
generelles Verständnis der Funktionsweise eines Objektes zu erhalten.

> Wir sind uns einig, dass der E-Toy-Weg da der eleganteste ist.

Völlig.

> Ich verstehe aber nicht, warum ich super rufen muss.
> Ich muss es dann rufen, wenn ich event-handling, wie Ihr es 
> vorschlagt, benütze. Will ich ja nicht, alles was der Morph
> nach click tun soll, definiere ich in mouseDown:
> Oder was übersehe ich? YAGN.

Ja, Du übersiehst hier was und zwar "remote trigger". Zum Beispiel, wenn ich
einen Morph mit #on:send:to: benütze und Du dann reingehst und das
#mouseDown implementierst, dann geht mein Teil nicht mehr. Ohne, dass Du das
notwendigerweise mitkriegst. 

> Folgendes Snippet zeigt, dass der Prozentsatz von "super-rufern"  in 
> 3.4 eher gering ist:

Genau einer der Gründe warum mir bei Morphic regelmäßig der verlängerte
Rücken explodiert.

> Wenn es denn falsch ist, bin ich zumindest nicht alleine... ;-)
> Ist das dann was für die MorphCleaningGroup?

Nicht solange kein vernünftiges Benutzermodell da ist. Eines der
grundlegende Probleme hier ist, dass die Leute "mouseDown" sehen und dann
sagen "aha, so macht man das" - also die Framework-Implementation mit der
Framework-Benutzung verwechseln.

Ciao,
  - Andreas