Hallo lieber Scratcher. Hier bist du bei den deutschen FAQs gelandet. Es handelt sich um eine Auswahl der wichtigsten Fragen, welche aus dem englischen FAQ-Forum übersetzt wurden.
Diese Seite wird momentan ständig aktualisert. Weitere Infos bekommst du im englischsprachigen Forumsteil.
Ich kann Scratch nicht öffnen. Was soll ich tun?
Möglicherweise wurde der Download nicht vollständig durchgeführt. Starte den Download nochmals und vergewissere dich, dass die Dateigrösse bei Mac 36MB und bei Windows 34MB beträgt.
Funktioniert der Download von dieser Seite nicht, versuche folgenden Link.
Wenn dies nicht funktioniert, benutze einen anderen Webbrowser oder einen anderen Computer.
Wie lege ich am besten los mit Scratch?
• Als Einstieg eignen sich die Schnellstartanleitung und die Scratchcards von der Scratch-Hilfeseite.
• Wenn du bei einem Projekt nicht mehr weiter kommst, so kann es hilfreich sein, auf der Online-Plattform nach ähnlichen Projekten zu suchen. Die Projektdatei kannst du auf deinen Computer herunterladen und mit Scratch öffnen. Vielleicht findest du ja eine Lösung für dein Problem, indem du den Code des heruntergeladenen Projektes dir ansiehst und versuchst zu verstehen.
- Arbeite mit anderen zusammen! Bilder Gruppen und tauscht euch aus.
Ist Scratch auch in anderen Sprachen verfügbar?
• Die Bausteine und Programme in Scratch sind in verschiedenen Sprachen verfügbar. Die Sprache lässt sich bequem umschalten im Menü Language. Zur Zeit stehen folgende Sprachen zur Verfügung: Englisch, Deutsch, Tschechisch, Spanisch, Französisch, Italienisch, Ungarisch, Niederländisch, Polisch, Portugiesisch, Rumänisch, Slovenisch und Schwedisch
• Die Umstellung der Sprache hat auf den Code keinen Einfluss! Der Name der Bausteine ändert, aber die Funktionsweise ändert sich nicht.
• Eine spätere Version von Scratch wird vollständig übersetzbar sein, bislang sind einige Schaltflächen nur auf Englisch verfügbar.
Wie benutze ich die Bausteine?
- Um Bausteine zu verwenden, ziehe sie in das „Programm“ Fenster.
- Um einen Baustein (oder ein Stapel von Bausteinen) auszuführen, doppelklicke darauf.
- Um einen Stapel von Bausteinen zu bewegen, klicke auf den obersten Baustein und ziehe ihn an die gewünschte Position.
- Um Bausteine zu trennen, klicke auf eines der unteren und ziehe es an die gewünschte Stelle.
- Um einen Baustein in einen bestehenden Stapel einzufügen, musst du erst die Bausteine, welche sich unter dem Neuen befinde sollten, vom Stapel trennen, anschliessend kannst du den Stapel neu zusammenfügen.
Um Bausteine zu entfernen gibt es verschiedene Varianten:
o Klicke auf die Schere und denn auf den zu entfernenden Baustein.
o Ziehe den Baustein auf die Bausteinpalette auf der linken Seite.
o Rechtsklicke auf den Baustein und wähle „Löschen“
Was gibt es für Tipps und Tricks in Scratch?
Objekte:
========
- Objekt finden: Um ein Objekt zu finden, welches nicht auf dem Bildschirm oder versteckt ist, halte Shift gedrückt und klicke mit der linken Maustaste auf das Thumbnail (kleines Bild) des Objekts in der Objektliste in der rechten unteren Ecke des Scratch-Fensters. Dies verschiebt das Objekt in die Mitte des Fensters und zeigt sie.
- Um ein Kostüm in ein eingenständiges Objekt zu verwandeln, klicke mit der rechten Maustaste (Mac: Ctrl und linke Maustaste) auf das Kostüm und wähle „in ein neues Objekt umwandeln“
- Klicke und ziehe die blaue Linie im Objektthumbnail (kleines Bild) oben in der Mitte des Fensters, um das Objekt zu drehen.
- Doppelklicke auf das Objektthumbnail (kleines Bild) oben in der Mitte des Fensters, um das Objekt wieder in die Ausgangsrichtug zu drehen.
- Benutze die Schere um ein Objekt zu löschen (oder Rechtsklick auf Objekt und „Löschen“)
- Um mehrere Objekte zu löschen, halte die Shift-Taste gedrückt, während du mit dem Scheren-Werkzeug auf das zu löschende Objekt klickst.
- Um mehrere Objekte zu kopieren, halte die Shift-Taste gedrückt, während du mit dem Stempel-Werkzeug auf die Objekte klickst.
- Um die Thumbnails (kleine Bilder) der Objekte in der Objektliste zu ordnen, klicke mit der linken Maustaste darauf und halte diese gedrückt, während zu das Thumbnail an die neue Position ziehst.
- Um die Kostüme in der Kostümliste zu ordnen, klicke mit der linken Maustaste darauf und halte diese gedrückt, während du das Kostüm an die neue Position ziehst.
- Um ein Objekt zu erzeugen, welches wie ein Teil des Hintergrunds aussieht, klicke mit der Rechten Maustaste auf den Hintergrund, wähle „Neues Objekt aus Bildschirmbereich erstellen“ und wähle mit der Maus (klicken und ziehen) den Bereich aus.
Programme und Bausteine:
=========================
- Um das Programmbereich aufzuräumen, klicke mit der rechten Maustaste in den Programmbereich und wähle „Aufräumen“
- Du kannst gewisse Bauseine in andere Bausteine einsetzen. Zum Beispiel kannst du jede Zahl oder jeden Fühler-Baustein mit runden Ecken in einen „Wechsle zum Kleid“-Baustein oder in jeden anderen Baustein einsetzen, welches eine Zahl oder ein weisses Kästchen beinhaltet.
- Um die Koordinaten eines Objektes zu bestimmen, klicke in der Objektliste auf das gewünsche Objekt, klicke oben links auf „Bewegung“ und aktiviere die Bausteine „x-Position“ und „y-Position“
Malprogramm
=============
- Um den Hintergrund zu löschen, wähle mit dem Auswahlwerkzeug den Vordergrund aus und drücke Shift + Delete oder Shift + Backspace (Rücktaste)
- Um einen Teil eines Kostüms (oder eines Objekts) zu drehen, verwende das Auswahlwerkzeug und klicke dann auf einen der Rotationsknöpfe (geschwungene Pfeile)
- Um genauer zu drehen, halte die Shift-Taste gedrückt, während du auf einen der Rotationsknöpfe klickst (im sich öffnenden Fenster kannst du eingeben, um wie viel Grad sich der ausgewählte Bereich drehen soll).
- Um genauer zu vergrössern/verkleinern, halte die Shift-Taste gedrückt, während du auf den Vergrössern-/Verkleinernknopf (Pfeile nach aussen/innen) klickst (im sich öffnenden Fenster können die Prozent angegeben werden. 100% entsprechen der Originalgrösse).
- Um mehrere Male zu kopieren, halte die Shift-Taste gedrückt, während du das Stempelwerkzeug benutzt.
- Um ein Quadrat zu erhalten, halte die Shift-Taste gedrückt, während du das Rechteck-Werkzeug benutzt.
- Um einen Kreis zu erhalten, halte die Shift-Taste gedrückt, während du das Oval-Werkzeug benutzt.
- Um eine horizontale oder vertikale Linie zu erhaltend, halte die Shift-Taste gedrückt, während du das Linien-Werkzeug benutzt.
- Um die zweite Farbe zu ändern, halte die Shift-Taste gedrückt, während du auf ein Farbkästchen klickst.
- Um eine Farbe von ausserhalb des Malprogramms zu wählen, wähle das "Pipetten"-Werkzeug, klicke innerhalb des Painteditors mit der linken Maustaste, halte diese gedrückt und ziehe die Pipette auf die gewünschte Stelle ausserhalb des Malprogramms.
- Um in kurzer Zeit Texturen wie Gras herzustellen, verfahre folgendermassen:
Zeichne einen (sehr genauen) Grashalm. Drücke dann Ctrl+A (der Rest muss vollkommen leer sein, nur dem einen Grashalm). Jetzt hältst du Ctrl+C gedrückt, während du mit der Maus den Grashalm auf dem Bildschirm herumziehst.
Variablen
=========
- Um den Variablenwert auf dem Bildschirm anzuzeigen, klicke auf das Kästchen der Variable im Variablenfenster.
- Doppelklicke auf den Variablenwert der nun angezeigt wird um den Anzeigemodus zu ändern.
- Als Variablennamen können auch spezielle Symbole wie α, β, µ, ¶, Δt, ºC, … verwendet werden. Interessant für mathematische Anwendungen
Tastaturkürzel (z. T. Wiederholungen von oben)
============================================
- Um mehrere Objekte zu löschen, halte die Shift-Taste gedrückt, während du das Schere-Werkzeug verwendest.
- Um mehrere Objekte zu kopieren, halte die Shift-Taste gedrückt, während du das Stempel-Werkzeug verwendest.
- Verwende Ctrl+S (Strg+S) um dein Projekt zu speichern.
Andere
=======
- Um einzelne oder mehrere Kostüme auf einmal zu importieren, wähle die entsprechenden Bilder im Explorer / Word / Web Browser aus und ziehe sie mit der Maus auf das gewünschte Objekt in Scratch.
- Du kannst auch animierte Bilder (gifs) auf diese Weise importieren.
- Du kannst auch ein Scratch-Projekt vom Explorer direkt aufs Scratch-Fenster ziehen um es zu öffnen.
Wieso werden auf der Homepage keine Projekte angezeigt?
Um Scratch-Projekte auf der Webseite ansehen zu können, benötigst du das „Java Runtime Environment“. Auf der Java-Seite kann man seine eigene Java-Installation überprüfen oder allenfalls Java (neu) herunterladen.
Wie kann ich Projekte herunterladen?
Der Downloadlink befindet sich in der rechts in der orangen Box. Um Projekte herunterladen zu können, musst du auf der Scratch-Seite ein Benutzerkonto eingerichtet haben.
Ich habe Probleme mit dem Veröffentlichen von Projekten auf der Scratch-Homepage
Bekommst du eine Fehlermeldung beim Hochladen von Projekten, so kann dies folgende Ursachen haben:
- Die Datei ist zu gross. Lösung: Im Menü „Extras“ auf „compress sounds“ und auf „compress images“ klicken. Dies verkleinert die Dateigrösse, kann aber zu gewissen Qualitätsverlusten führen. Insbesonders eingebundene Musik lässt die Dateigrösse relativ schnell anschwellen.
Die Dateigrösse für den Online – Upload ist momentan auf 10 MB limitiert.
- Die Internetverbindung ist zu langsam und es kommt zum Verbindungsabbruch mit unserem Server. Lösung: Dateigrösse verringern (siehe oben) oder von anderen Computer aus versuchen.
- Ein Proxy-Server steht zwischen deinem Computer und der Online-Plattform. Bislang ist die Scratch-Software nicht in der Lage, einen Proxyserver zu umgehen. Die einzige Lösung bleibt deshalb, eine Internetverbindung zu verwenden, welche nicht über einen Proxy läuft.
- Falscher Benutzername oder Passwort: Lösung: Versuche dich auf der Scratch-Internetseite einzuloggen um festzustellen, ob dein Benutzername und dein Passwort korrekt sind.
- Die Webseite: „hiccup“ erscheint beim Versuch, die Scratch-Seite zu öffnen. Lösung: später nochmals versuchen.
- Sicherheitssoftware (wie zum Beispiel eine Firewall) blockiert die Verbindung: Lösung: Die Einstellungen in der Software anpassen oder die Projekte von einem anderen Computer aus online stellen.
- Unbekanntes Problem. Lösung: Es kann vorkommen, dass unsere Server momentan nicht erreichbar sind. Lösung: später nochmals versuchen.
Wie kann ich meine Scratch-Projekte auf meiner Webseite einfügen oder sie auf CD brennen?
Wie bringe ich ein Scratch-Projekt auf eine CD, einen USB-Stick oder ins Internet?
Es gibt da mehrere Möglichkeiten:
1. In Scratch hast du die Möglichkeit, deine Projekte zu veröffentlichen, dies geschieht durch den Menüpunkt „Veröffentlichen!“. Dafür ist eine einmalige Registrierung auf der Scratch-Homepage notwendig. Dein Projekt ist danach öffentlich zugänglich, kann zu Galerien hinzugefügt werden und kann auch in andere Internetseiten eingebunden werden.
2. Am einfachsten ist es, dein Projektdatei (mit der Endung .sb) mitsamt folgender Dateien auf eine CD zu brennen / auf einen MemoryStick zu kopieren:
• Scratch.exe
• Scratch.image
• Scratch.ini
• ScratchPlugin.dll
• Mpeg3Plugin.dll
• license.txt (diese Dateien befinden sich im Scratch-Programmordner)
Um dein Projekt später von CD / MemoryStick zu starten, klicke doppelt auf Scratch.exe, danach auf „open“ und wähle dein Projekt aus.
Wenn du dein Projekt auch noch unter Mac OS laufen lassen willst, kopiere die Datei „Scratch.app“ (welche in der Macintosh-Installation von Scratch zu finden ist) ebenfalls auf CD.
3. Für Fortgeschrittene: Es gibt noch einen anderen Weg, wie du deine Projekte auf CD oder im Internet veröffentlichen kannst. Dafür musst benötigst du die folgenden Dateien. http://scratch.mit.edu/static/misc/ScratchApplet.jar
http://scratch.mit.edu/static/misc/soundbank.gm
Kopiere dein Scratch-Projekt (mit der Endung .sb) in dasselbe Verzeichnis und erstelle eine HTML-Datei mit folgendem Inhalt:
<html> <body> <applet id="ProjectApplet" style="display:block" code="ScratchApplet" codebase="./" archive="ScratchApplet.jar" height="387" width="482"> <param name="project" value="testproject.sb"> </applet> </body> </html>
Ersetze dabei „testproject.sb“ durch den Dateinamen deines Projektes. Dein Scratchprojekt sollte nun abspielbar sein, sowohl lokal als auch auf einem Webserver. Für weitere Informationen lohnt sich ein Blick in den entsprechenden Artikel [url="http://scratch.mit.edu/forums/viewtopic.php?pid=763#p763" im englischen Forum[/url]Kann ich mit meinen Projekten eigentlich machen, was ich will?
- Kann ich Scratch an einer Konferenz vorstellen? Brauche ich eine Erlaubnis dafür?
Antwort: Zögern Sie nicht, eine Präsentation über Scratch für Pädagogen oder andere Gruppen durchzuführen, dafür benötigen Sie keine Erlaubnis. Wir würden es jedoch begrüssen, wenn Sie uns mitteilen, auf welcher Konferenz oder Veranstaltung dies geschieht.
- Kann ich über Scratch in meinem Lehrbuch berichten oder gar eine CD mit Scratch bereitstellen?
Antwort: Zögern Sie nicht, Scratch in Ihren Lehrbüchern zu erwähnen und eine CD mit Scratch beizulegen. Wir bitten Sie jedoch, eine Notiz hinzuzufügen, aus welcher ersichtlich ist, dass Scratch ein Projekt der „Lifelong Kindergarten Group“ des MIT Media Lab ist und verweisen sie auf unsere Internetseiten scratch.mit.edu, LLK.media.mit.edu und media.mit.edu.
- Unter Welcher Lizenz ist Scratch verfügbar?
Antwort: Die aktuelle Version von Scratch ist kostenlos erhältlich unter der MIT-License (für Einzelheiten lesen Sie bitte die Datei license.txt, welche sich im Ordner der Scratch-Installation befindet.
Die Projekte und Materialien sind verfügbar unter der Creative Commons Attribution - Share Alike license.
Kann ich meine Scratch-Projekte in ein anderes Dateiformat exportieren?
• Momentan ist solch eine Funktion nicht vorgesehen.
• Um ein Projekt in ein Video umzuwandeln, würde sich notfalls ein Screencapture-Programm anbieten, wie Camtasia oder CamStudio (für PC) oder SnapZPro (für Mac).
Welches sind die Systemvoraussetzungen für Scratch
• Anzeige: 1024 x 768 Pixel ab 16Bit Farbtiefe
• Betriebssystem: PC: ab Windows 98, Mac: ab Mac OS X 10.3
• Festplatte: mindestens 120 MB freier Speicher
• Die Prozessorgeschwindigkeit der meisten Prozessoren reicht für Scratch locker aus. Auf älteren Computern wird Scratch vielleicht ein wenig langsamer laufen, aber es läuft.
• Um die Vorteile von Sound-Funktionen von Scratch zu nutzen sind Lautsprecher (oder Kopfhörer) und ein Mikrofon von Vorteil. Viele Laptops besitzen eingebaute Lautsprecher und Mikrofone.
• Bemerkung: Scratch wird mit einer grossen Medienbibliothek und einer grossen Anzahl an Beispielprojekten ausgeliefert. Falls Ihr Festplattenplatz sehr klein ist, so können die Ordner „Media“ und „Projects“ aus dem Scratch-Ordner gelöscht werden.
Kann ich mein bereits bestehendes Projekt online durch ein neues ersetzen?
• Wenn du ein Projekt unter demselben Namen hochlädst wie dein altes, so ersetzt das neue Projekt dein bisheriges.
• Keine Sorge, es ist anderen Mitgliedern nicht möglich, dein Projekt durch ihres zu ersetzen!
Wie kann ich mein Projekt von der Scratch-Website löschen?
Logge dich auf der Website ein, gehe zu „My Stuff“ (oder deutsch: Meine Sachen), aktiviere das Kästchen unter dem zu löschenden Projekt und klicke auf den Knopf „delete selected projects“ (alle ausgewählte Projekte löschen).
Was bedeutet die Anzahl Programme und die Anzahl Objekte, die bei jedem Projekt angezeigt werden?
Die erste Zahl ist die Anzahl Objekte, ohne der „Stage“ (Bühne). Die zweite Zahl ist die Anzahl Programme. Ein Programm ist ein Stapel von Bausteinen, die mit einem Steuerungsbaustein (geschwungenes oberes Ende) beginnen. Stapel von Bausteinen, welche nicht mit einem Bewegungsbaustein beginnen, werden nicht gezählt, da diese nicht ausgelöst werden können.
Gibt es irgendwelche Software, welche ich dazu verwenden kann, meine Projekte zu verbessern?
- Viele Scratch-User benutzen Tools wie Photoshop um ihre Objekte zu erstellen oder um sie auf die passende Grösse zu bringen. Grafikprogramme besitzen oftmals mehr Möglichkeiten als Scratch und ihre Algorithmen um zum Beispiel Grafiken zu verkleinern sind besser als diejenigen in Scratch.
- Eine umfangreiche Liste weiterer Software ist im englischsprachigen Forum zu finden.
Wieso werden bestimmte Töne, wie zum Beispiel Schlagzeugklänge nicht abgespielt?
Die Trommel und die MIDI-Befehle werden über den Midi-Synthesizer auf deiner Soundkarte generiert. Prüfe deine Einstellungen, manchmal gibt es für MIDI eigene Lautstärke-Einstellungen. Diese sind vielleicht zu leise eingestellt oder gar ganz ausgeschaltet. Möglich ist auch, dass deine Soundkarte MIDI gar nicht unterstützt. Der Java Player auf unserer Webseite besitzt jedoch einen Software-Synthesizer, welcher in der Lage sein sollte, Trommel und andere Midi-Klänge abzuspielen.
Wieso funktioniert die Sprachaufzeichnung nicht?
Versuche, den Eingangspegel des Mikrofons zu erhöhen oder lauter zu sprechen.
Wie sieht es aus mit einer Linuxversion von Scratch?
Derzeit gibt es leider noch keine offizielle Scratch-Version für Linux. Ende 2007 soll aber eine offizielle Version von Scratch für Linux veröffentlicht werden.
Weitere Informationen, sowie eine inoffizielle Linux-Version hier (in Englischer Sprache):
Scratch unter Wine
inoffizielle Linux-Version
Wann können wir mit einer Veröffentlichung des Scratch-Quellcodes rechnen?
Wir planen, den Quellcode gegen Ende dieses Jahres zu veröffentlichen.
Weshalb kann ich keine Sounds aufnehmen?
Damit du Sounds aufnehmen kannst, benötigst du ein Mikrofon, welches korrekt am Computer angeschlossen sein muss.
Wenn dies der Fall ist, überprüfe deine Soundeinstellungen und stelle die Aufnahmelaufstärke auf das Maximum (unter Windows: auf das Lautsprechersymbol im Tray [in der rechten unteren Ecke] klicken).
Weshalb funktionieren die Funktionen „Laut?“ und „Lautstärke“ nicht in Projekten auf der Website?
„Laut?“ und „Lautstärke“ funktionieren aus Sicherheitsgründen in Java Applets nicht (Soundaufnahme ist nicht erlaubt).
In diesem Fall musst du das Projekt herunterladen und mit Scratch öffnen, wenn du willst, dass es korrekt funktioniert.
Wie kann ich ein Objekt am Rand umdrehen lassen?
Versuche folgendes:
- Gehe 30-er Schritt vorwärts
- Abdrehen, wenn Kante berührt
Wie finde ich die x- und y-Koordinaten meines Objektes heraus?
Die Koordinaten stehen oben in der Mitte unter dem Namen des Objekts.
- Um das Objekt zu einer bestimmten Position springen zu lassen, kann der Baustein "gehe zu" verwendet werden.
- Um das Objekt zu einem Punkt fahren zu lassen, kann der Baustein "Gleite _Sek. Nach x:_ y:_ " verwendet werden.
Wie lösche ich ein Objekt?
Benutze das Werkzeug „Schere“
Was kann ich tun wenn ein Objekt auf dem Kopf steht?
1) Kostüm rotiert, wenn Objekt die Richtung ändert:
2) Kostüm spiegelt sich an der vertikalen Achse:
3) Kostüm dreht sich gar nicht
Was bedeuten die Koordinaten auf meinem Bildschirm
Es handelt sich um ein rechtwinkliges Koordinatensystem, welches folgendermassen aufgebaut ist:
Last edited by catze (2007-12-06 10:11:16)
Offline
Hallo Kevin,
vielen Dank für diesen super Beitrag und Deinen Start für eine deutsche FAQ!
Toll, dass Du Dir so viel Mühe damit gegeben hast (besonders die eingebunden Bilder sind doch wohl sehr aufwendig gewesen). Das sind ja noch viel mehr Infos als in der ähnlichen Rubrik vom Scratch-Team auf:
http://scratch.mit.edu/forums/viewtopic.php?id=759
Auf den ersten Blick fällt mir dazu noch folgendes ein:
* Es fehlt die immer wider gestellte Frage zur Betriebssystem-Plattform (Nur Win und Mac oder auch Linux, bzw. andere Systeme wie Handhelds und Spielkonsolen. Antwort: Im Prinzip Ja! :-) )
* Die Beziehung zwischen Scratch und Squeak wird immer wieder hinterfragt, dazu müssten wir auch mal eine einfache Antwort schreiben
* Die FAQ bezieht sich verständlicherweise noch auf Scratch 1.1 und müsste für Scratch 1.2 upgedatet werden (z.B. die Aussage zu "Sprachen")
Wie wäre es, wenn Du auch den Wikipedia-Artikel mit Deinen Screenshots bereicherst:
http://scratch.mit.edu/forums/viewtopic.php?id=2371 ?
Last edited by MartinWollenweber (2007-12-10 15:27:22)
Offline
Hallo Martin
muss dich leider enttäuschen, die Bilder hab ich nicht selbst gemacht sondern von der Seite http://scratch.mit.edu/pages/faq übernommen. Dies war die erste Version der FAQs bis das Forum dann in die Stelle trat.
Wäre cool wenn du den Beitrag über Squeak schreiben könntest. Ich weiss nicht viel über Squeak und Smalltalk.
Ich werde aber versuchen, die FAQs noch an die Version 1.2 anzupassen.
Was weisst du über andere unterstüzte Betriebssysteme? Vielleicht könntest du dazu noch etwas schreiben? Ich kümmere mich solang mal um das französische FAQ-Seite...
Offline
Hallo Kevin und Alle
OK, hier kommt schon die erste Version mit FAQ-Fragen zum Thema Scratch & Squeak.
Kevin: Du kannst die Teile, die Dir sinnvoll erscheinen oben einfügen.
Es ist aber wohl inzwischen zu lang für die FAQ geworden und ob es verständlich ist, sagst Du mir besser (als Smalltalk-Newcommer kannst Du das sicher besser beurteilen).
Wenn ich das jetzt lese hat es auch nur noch teilweise mit einer FAQ zu tun. (Einiges sind ggf. Fragen, die niemand so gestellt hat, die aber vielleicht dennoch für viele interessant sind). Für Korrekturen der Inhalte bin ich offen: Vieles ist vielleicht nur Meinung (habe ich wirklich versucht einen neutralen Standpunkt einzunehmen ? ) Am besten übernehmen wir nur einige elementare Fragen in die FAQ und machen aus dem Rest einen separaten Artikel auf den wir in der FAQ verlinken.
Was meint Ihr?
==============================
In welchem Zusammenhang steht Scratch mit Squeak (Smalltalk) und Java?
Scratch (die Entwicklungsumgebung) wurde mit Squeak hergestellt. Die Laufzeitumgebung für Scratch-Programme ist entweder der Scratch-Player, der die Scratch Programme im Webbrowser (nur) ausführen kann und auf Java basiert, oder alternativ die Scratch-Entwicklungsumgebung selber. In dieser Scratch-Entwicklungsumgebung (der Einfachheit halber im Folgenden als "Scratch" bezeichnet) werden die Scratch-Programme entwickelt, getestet und ausgeführt.
Was ist Squeak?
Squeak ist ein populärer Smalltalk-Dialekt und openSource. (siehe http://de.wikipedia.org/wiki/Squeak ). Vereinfacht kann man sagen: "Squeak ist das für Smalltalk, was Linux für UNIX ist". Smalltalk ist eine objektorientierte Sprache, dynamisch typisiert, mit einer minimalen Syntax, die in fünfzehn Minuten gelernt werden kann. Ein wesentlicher Vorteil der Smalltalk-Sprache ist ihre Kohärenz:
• Alles ist ein Objekt: Klassen, Methoden, Zahlen, etc.
• Es existieren nur eine kleine Anzahl von Syntaxregeln und keine Ausnahmen.
Smalltalk läuft auf einer virtuellen Maschine. Die Entwicklung erfolgt in einem Image, in dem alle Objekte “leben" und modifiziert werden können."
(Zitat aus einem Flyer des Squeak e.V. www.squeak.de )
Welche Eigenschaften bezieht Scratch von Squeak?
Viele der faszinierenden Eigenschaften von Scratch sind auf diesen Squeak-Hintergrund zurückzuführen. Beispiele:
* die Multimedia-Elemente von Scratch sind typische Squeak Eigenschaften
* die Eigenschaft, dass während der Laufzeit von Scratch-Programmen parallel am Programm selber weiterentwickelt werden kann (das ist Smalltalk-typisch: zwischen Laufzeit, Entwicklungs- und Debuggingzeit gibt es keinen "Systembruch" es ist quasi alles das Gleiche)
* die Eigenschaft, dass Scratch im Prinzip nicht nur auf Windows und Mac sondern vielen anderen Plattformen wie Linux, mobile Betriebssysteme oder Wii läuft (überall wo Squeak läuft und Squeak läuft quasi überall, denn die virtuelle Maschine ist selber im Squeak-Image enthalten und Squeak benötigt extrem wenig Betriebssystemfunktionen wodurch eine Portierung von Squeak mit minimalem Aufwand möglich ist)
Wie kommt man von Scratch nach Squeak?
so geht's in Scratch 1.4, Ergänzung aus 2/2011 wrote:
Mit gedrückter Shift-Taste in das Scratch „R“ oben links klicken, dann kommt man im „Squeak-Image“ aus dem die Scratch-Entwicklungsumgebung besteht an.
Eine Eigenart von Smalltalk-Programmen ist es, dass das Image, in dem eine Anwendung (wie hier Scratch) entwickelt wird, alle Objekte enthält und eine "publizierte Version" eines solchen Smalltalk-Programms einfach nur eine bestimmte "eingefrorene" Version eines solchen Images ist. Programmieren in Smalltalk bedeutetet also eigentlich: "Modellieren am Image" bis die gewünschte Anwendung entsteht. Aller Variablenzustände beim Anwendungsstart sind Bestandteile des Images. Ein Smalltalk-Image ist also der vollständige Objektspeicher, der beim Start von der Festplatte von der virtuellen Maschine geladen und ausgeführt wird. Häufig wird das Image vor der Auslieferung einer Anwendung "gestript", d.h. es werden Objekte entfernt, die zur Ausführung der publizierten Anwendung nicht mehr benötigt werden, was bei Scratch jedoch nicht vollständig erfolgte. Dadurch enthält das Scratch-Image viele - nicht mehr zu seiner Ausführung benötigte - Objekte wie z.B. die gesamte Smalltalk-Entwicklungsumgebung, zu der es allerdings eigentlich in Scratch keinen Zugang gibt, da alle Einsprungmöglichkeiten von den Scratch-Entwicklern verschlossen wurden. Wie Jens mit http://scratch.mit.edu/projects/Jens/22355 sehr anschaulich gezeigt hat, wurde aber zumindest bei Scratch 1.1. eine Einsprungmöglichkeit übersehen, wodurch man von Scratch nach Squeak kommen kann. Es ist problemlos möglich (wie Jens zeigt), Scratch als ein Unterfenster in Squeak auszuführen und aus Squeak auf alle Scratch-Objekte zuzugreifen, denn es sind im Grunde alles Smalltalk-Objekte.
Wie "läuft" Scratch auf Squeak?
Scratch ist ein solches "Smalltalk-Image" (Datei: Scratch.image ), ein Objektnetz, das auf einer virtuellen Maschine (bei Scratch für Windows ist dies die "Scratch.exe" - Datei) ausgeführt wird. Scratch läuft also auf einer mit Squeak gebauten "virtuellem Maschine", die ihrerseits ein Smalltalk Image ist ( Scratch.image ), das von der virtuellen Maschine ausgeführt wird (scratch.exe), auf der Squeak basiert und die ihrerseits auf dem "Gastgeber-Betriebssystem" läuft.
Wann wird der Scratch Quellcode veröffentlicht?
Ergänzung 2/2011 wrote:
Die Info unten ist veraltet.Inzwischen ist der Scratch-Quellcode längst veröffentlicht und es gibt sogar einige interessante Projekt Scratch - darauf basierend - zu einer komplexeren Programmiersprache weiterzuentwickeln z.B. BOYB von Jens Mönig und Brian Harvey hier: http://byob.berkeley.edu/
Zu einem vollständigen Squeak-System gehört noch eine Datei, die bei Scratch bisher nicht mitgeliefert wird: Die "Quellcode-Datei", die zum Betrieb von Scratch nicht benötigt wird. Das heißt aber nicht, dass man den Quellcode nicht lesen kann wenn man Jens Rezept (s.o.) anwendet: Squeak nutzt - wenn die source-Datei fehlt - einfach den Bytecode des Images und zeigt diesen "decompiliert" an, was schon recht lesbar ist. Nur: Es fehlen hilfreiche Informationen wie Variablennamen und Kommentare. Ein Smalltalk-Image hängt mit der Sourcecode-Datei immer so zusammen, dass jede (Methoden- oder Objekt-) Definition referenziert wird, so dass ihr Quelltext im sog. "Smalltalk-Browser" (dem Standardeditor in Smalltalk-Systemen) angezeigt wird.
Natürlich kann der Quellcode einer Squeak-Anwendung wie Scratch auch auf andere Art publiziert werden als durch Weitergabe der kompletten Image- und Sourcedatei: Zum Beispiel enthält die sog. "Changeset"-Datei einer Anwendung alle Objektdefinitionen , die zum "Ummodelieren" einer Squeak-Installation (z.B. die aktuelle Basisversion) in eine Installation, welche die Anwendung enthält, notwendig sind. Mit einem Scratch-Changeset könnte man also Scratch in jede kompatible Squeak-Installation hinein holen und es dort mit anderen Squeak-Anwendungen kombinieren.
Die Publikation des Scratch-Quellcodes ist schon lange angekündigt (siehe http://scratch.mit.edu/forums/viewtopic.php?id=36) und aus Squeak-Lizenzrechtlichen Gründen wohl auch Pflicht. Auf Nachfrage schrieb John Maloney:
John Maloney at 08.11.2007 wrote:
Hi, Martin.
Good to hear from you!
Yes, we do plan to make the source code for Scratch available by the
end of this year. It will be released a few weeks after the official
Scratch 1.2 release. (Scratch 1.2 is in beta now, scheduled for final
release on December 1st.)
Although we will be making the source code available, Scratch is not
becoming a community development effort. The Lifelong Kindergarden
group at MIT will continue to develop and support Scratch. While we
welcome feedback and suggestions, we do not seek code contributions.
The license agreement for using the Scratch source code will include
several restrictions, including (a) that you do not use the word
"Scratch" to refer to derived works, (b) that you do not use the
Scratch logo or the Scratch cat in derived works, (c) that you do not
implement or enable the ability to upload projects to the MIT Scratch
website, and (d) that derived works retain the Scratch copyright
notice and license. The purpose of these restrictions is to avoid
potential confusion in our user community between the official
version of Scratch, supported by the Lifelong Kindergarten group, and
experimental variations. In short, we are happy the share our source
code, but we want to protect the Scratch brand and user community.
I hope you and other Squeakers will appreciate the reasons for these
restrictions and that they will not prevent you from doing great and
wonderful things with the Scratch code base.
-- John
Warum ist Smalltalk so einfach, aber hat den Ruf schwierig zu sein?
Smalltalk ist - an sich - ist eine sehr einfach zu lernende und zugleich mächtige Programmiersprache. Nur: Wer traditionelle imperative Programmiersprachen kennt (Wie BASIC, C oder PASCAL), dem hilft dies kaum (oder schadet vielleicht eher) Smalltalk zu verstehen, denn es ist konsequenter objektorientiert als jede andere Programmiersprache.
C++, Java, Visual Basic ... o.Ä. und auch Scratch enthalten ebenfalls Objektorientierung, machen aber viele Ausnahmen für traditionelle imperative Strukturen und/oder die Performance auf aktuellen Hardwareplattformen. Dadurch erreichen sie, dass sich der traditionelle Programmierer "wohl fühlt" aber die Gefahr besteht, dass er das Wesen und die Chancen der Objektorientierung nicht vollständig erfasst. Smalltalk kennt keine solche Ausnahme: Jeder Dateneinheit ist ein Objekt (auch z.B. Integerzahlen oder Booleans), jede Operation eine Nachricht deren Implementierung man in der Objektklasse nachlesen kann.
Die Menge der Syntaxregeln von Smalltalk ist verblüffend minimal: Es gibt z.B. nur sechs(!) reservierte Worte: true, false, nil, self, super, und thisContext und einige wenige Notationen, mit denen man Litarale aufschreibt (Literale sind Zeichenketten, die direkt ein Objekt darstellen, z.B. Strings oder Zahlen und insbesondere der "lebende Smalltalk-Anweisungsblock", ein Stück Quellcode, dass durch eckige Klammern zu einem Objekt wird, dass seine Anweisung ausführt, wenn ihm Nachrichten gesendet werden).
Der Name "Smalltalk" ist also sehr treffend gewählt, denn gibt kaum eine andere Programmiersprache, die mit so wenig auskommt (Java und C haben z.B. über 50 "reservierte Worte"). Kontrollstrukturen und Arithmetische Operationen für die es in anderen Programmiersprachen bestimmte reservierte Worte gibt (wie z.B. Bedingungen, Schleifen oder elementare Rechenanweisungen) werden in Smalltalk nicht als Syntaxbestandteil definiert, sondern sind einfach Bibliotheksfunktionen (in Smalltalk "Methoden" genannt), deren Implementierung als sehr verständlicher Smalltalk-Code im Image angeschaut werden kann.
Beispiele:
* Die "IF-THE-ELSE"-Struktur ist nicht etwa ein Smalltalk-Befehl sondern eine per Nachricht an die Objekte "True" oder "False" aufrufbare Methode, deren Implementierung man in der Klassendefinition der Objekte "True" und "False" nachlesen kann.
* Auch "+" (wie auch "*","-", "/" und "=" ...) ist kein "reserviertes Wort" sondern eine nachlesbare Methode von "Zahlenobjekten" die, wenn ihnen die Nachricht "+" mit einem anderen Zahlenobjekt als Argument gesendet wird, mit dem Ergebnis als weiteres Zahlenobjekt antworten.
Smalltalk ist quasi "in Smalltalk geschrieben", was nicht nur heißt (wie bei anderen Sprachen), dass der Compiler von Smalltalk in Smalltalk geschrieben ist. Nein - auch die Dinge, die in anderen Sprachen zum Syntax gehören, sind in Smalltalk geschrieben. Nachdem man (in 15 Minuten :-) die Grundlagen gelernt hat, kann man alles andere prinzipiell autodidaktisch im Image nachlesen. Komplex ist "nur" das riesige Objektnetz, welches dieses Image darstellt, denn es enthält nicht nur das Anwendungsprogramm (hier Scratch) und die Smalltalk-Entwicklungsumgebung, sondern quasi ein vollständiges auf Smalltalk basierendes Betriebssystem.
Gleichzeitig kann man so auch alles in Smalltalk erweitern und umbauen: Von den Ablaufkontrollstrukturen über die Entwicklungsumgebung bis zur graphischen Oberfläche ist alles an die eigenen Bedürfnisse anpassbar. Da der Quellcode sehr gut lesbar ist, und mächtige Werkzeuge für das Navigieren im Objektnetzt zur Verfügung stehen, hat man gute Chancen, die richtige Stelle und notwendige Änderung dafür zu finden, ohne auf weitere Dokumentation zugreifen zu müssen. Smalltalk lernt man am besten durch Lesen im Quellcode des Images, der komplett zur Verfügung steht.
Warum sind Scratch und Squeak so leicht auf verschiedenen Betriebssysteme portierbar?
Das Smalltalk-Image ist quasi ein eigenständiges Betriebssystem. Daraus erklärt sich auch die leichte Übertragbarkeit von Scratch zwischen verschiedenen Betriebssystemen: Squeak spricht mit der sehr kleinen virtuellen Maschine, die das einzige "plattformspezifische" Element ist, nur wenige grundlegende Betriebssystemfunktionen (von Windows, Mac, Linux oder anderen Plattformen) an.
Alles andere bringt das Smalltalk-Image von Squeak selber mit: z.B. ein Unterfenster innerhalb des äußeren "Betriebssystemfensters" (und damit also auch ein entsprechendes Scratch-Fenster) ist kein Windows- oder Mac- Fenster sondern ein "Smalltalk-Fenster", das vollständig aus Smalltalk-Objekten besteht.
Ein weitere Aspekt der Portierbarkeit von Squeak ist, dass auch die virtuelle Maschine in Smalltalk geschrieben ist und so auf höchst komfortable Art in Smalltalk weiterentwickelt und debugged werden kann: Dabei simuliert dann das laufende Squeak Image eine virtuelle Maschine in Smalltalk, während es selber auf der echten virtuellen Maschine auf der Hardware/Betriebssystemplattform läuft. Um aus dieser simulierten virtuellen Maschine eine echte, für ein bestimmtes Betriebssystem erzeugen zu können, wurde sie in einer beschränkten Untermenge von Smalltalk geschrieben. Dieses beschränkte Smalltalk heißt "Slang" und kann mit einem Slang->C-Compiler, der ebenfalls Bestandteil des Squeak-Images ist, in C-Quelltext übersetzt werden. Da es für quasi jedes Betriebssystem bzw. Hardware C-Compiler gibt, kann die virtuelle Maschine von Squeak so sehr leicht für jede Plattform verfügbar gemacht werden.
Warum ist Scratch etwas schwerer portierbar als Squeak?
Obige Aussage stimmt leider für Scratch nicht 100%, denn z.B. mit ScratchPlugin.dll (unter Windows) haben die Scratch-Macher (für Squeak Anwendungen untypisch) einige wenige systemspezifische Bibliotheken "eingeschmuggelt" die allerdings nur für einzelne, prinzipiell verzichtbare Funktionen zuständig sind. Diese müssen bei einer Übertragung auf ein anders Betriebssystem "nachgezogen" oder "entfernt" werden. Laut Aussage von Linux-Spezialisten ist das "Weglassen" dieser Funktionen kein Problem und sie können Scratch bereits heute sofort auf Linux nutzen. Dann fehlen angeblich nur "Drag & Drop" ins Scratch-Fenster und einige weniger wichtige Grafikeffekte. An "offiziellen" und uneingeschränkten Versionen für andere Systeme als MS Windows und Mac wird gearbeitet. Dazu auch http://scratch.mit.edu/forums/viewtopic.php?id=21 (englisch)
Welchen Einfluss hatten die Ideen um Smalltalk auf die IT-Historie?
(ausschnittsweise und subjektiv!)
Smalltalk ist eine sehr fortschrittliche (auch heute noch!) jedoch gleichzeitig eine sehr alte Sprache. Die gängige Spezifikation heißt z.B. Smalltalk80 nach dem Entstehungsjahr. Jahrelang hieß es, Smalltalk sei zu modern und zu konsequent für die jeweils aktuelle IT-Welt, weil keine Rücksicht auf Hardwareanforderungen und traditionelles Programmiersprachen-Knowhow genommen wird.
Ein Ziel eines Ihres wichtigsten Mit-Entwickler, Alan Kay (http://de.wikipedia.org/wiki/Alan_Kay) war es, jedem Menschen und speziell Kindern den einfachen Zugang zur Computertechnologie zu ermöglichen. Zusammen mit Smalltalk wurde die Objektorientierung, die grafische Benutzeroberfläche und die Computermaus sowie das "Laptop" (damals hieß es "Dynabook") erfunden. Leider war das Xerox's Palo Alto Research Center, wo diese Forschung stattfand, nicht in der Lage, daraus schnell marktdurchdringende Technologien zu machen. Dies übernahmen Steve Jobs, der sich seine Ideen für den Mac-Vorgänger Lisa dort holte und später Bill Gates, der das Kommerzialisieren noch besser beherrschte. Von Steve Jobs gibt es über seinen legendären Besuch im Xerox's Palo Alto Research Center - bei dem er zwar die graphische Benutzeroberfläche und ihre Zukunft erfasste, aber Smalltalk übersah - den Satz: "If I'd only stayed another 20 minutes,...". Immerhin "sponserte" seine Firma Apple einige Jahre später - wie im folgenden auch die Firma Walt Disney - die Entwicklung von Squeak, bevor es ganz an die freie Squeak-Community ging. Inzwischen basieren Apples Macs
und iDevices auf der Programmiersprache "Objective-C", die eine sehr an Smalltalk angenäherte C-Variante ist. Weniger nett: Ende 2010 "verbannte" Apple eine Scratch Implementierung aus seinem "App-Store": Es war erstaunlich, dass diese "trojanische Katze" überhaupt in den App-Store schaffte, weil es ja wie Flash und anderer Umgebungen die "Hausmacht" Apples auf seinen iDevices außer Kraft setzte...na ja , Apple hat es nach ein paar Monaten gemerkt und Scratch leider vom iPhone etc. "verbannt".
Wieso wurde Smalltalk keine Mainstream-Sprache und könnte Squeak das ändern?
Das Original-Smalltalk aus dem XeroX-Parc-Lab war das erste Smalltalk und viele der Squeak-Macher waren schon damals "an Bord". Einige sehen in Squeak ihren zweiten, besseren Wurf, der außerdem durch die OpenSource-Strategie für jeden verfügbar ist, während "ParcPlace-Smalltalk" am Anfang Insiderwissen und später ziemlich teuer war. Mitte der Neunziger wurde Smalltalk als er "heilige Grahl" der Softwareentwicklung gefeiert und neue Versionen und riesige Business-Projekte schossen wie Pilze aus dem Boden. IBM stieg ein und schuf sein VisualAge-Smalltalk. Diese Entwicklung fand Ende der 90er mit dem Durchbruch von Java ihr jähes Ende. Sicher war auch Missmanagement bei ParcPlace einer der Gründe: Währen Java im Internet-Hype boomte, schlug man sich bei ParcPlace-Digitalk mit Fusionsproblemen mit dem größten Mitbewerber herum, von denen man sich nie erholte, so dass das Produkt VisualWorks-Smalltalk schließlich nach ettlichen Wirren bei Cincom landete. IBM stieg im Java-Hype um und nutzte VisualAge als geniale Entwicklungsumgebung für Java, die dann später in Java selber neu geschrieben wurde, was die Grundlage von Eclipse wurde. IBM verlor das Interesse an Smalltalk und am Ende landete VisualAge ebenfalls bei Cincom. Die vielen kleinen Smalltalk-Anbieter konnten, nachdem die beiden "BigPlayer" ihre Bedeutung für Smalltalk verloren hatten, keine wirklich große Beachtung finden. Smalltalk wurde wieder zum "Nischenprodukt" für Eingeweihte und die meisten Nutzer anderer Sprachen, die es nur flüchtig kennen, können nicht nachvollziehen was daran so toll sein soll: "Smalltalk is not dead, it just smells funny... :-)".
Aber: Smalltalk ist "blumig gesprochen" so ein bisschen wie Jazz: Es hatte seine "große Zeit", gilt als "tot" und beeinflusst dennoch die gesamte Musik die danach kam bis heute: Java, Objective C, Ruby .. die Liste der Programmiersprachen - die Smalltalk-Ideen aufnehmen - ist lang und keine erreicht wirklich die Ideale des Originals. Der "zweite Wurf" - Squeak - könnte jedoch als OpenSource-Projekt langfristig große allgemeine Bekanntheit erlangen: Zur Zeit verläuft die Entwicklung von Squeak-Projekten sehr dynamisch. siehe:
Squeak auf Wikipedia(englisch)
Etoys auf Wikipedia(englisch)
Scratch auf Wikipedia(englisch)
Croquet auf Wikipedia(englisch)
Seside auf Wikipedia(englisch)
Einen exakteren Abriß der Smalltal-Historie gibt: http://en.wikipedia.org/wiki/Smalltalk
Warum hat Squeak als "IT-Lehr-Plattform" noch keinen Durchbruch erzielt?
Es gab viele Versuche (z.B. mit "E-Toys" für Squeak) das ursprüngliche Ziel Alan Kays zu verwirklichen. Ein echter Durchbruch in das Massenbildungswesen wurde jedoch bisher noch nicht erreicht, was sich ggf. in nächster Zeit durch die Bereitstellung von Squeak auf dem OLPC (="One Laptop per Child"-Hardware) ändert. Möglicherweise musste aber auch die Komplexität viel weiter heruntergesetzt werden, bis man Kinder und Lehrer ernsthaft im großen Stil an Bord holen konnte. Squeak ist einfach zu weitläufig und unbeschränkt für Anfänger. E-Toys startete ja auch nicht als Forschungsprojekt über kindgerechte Programmierumgebungen (wie Scratch), sondern als kleine Beispielanwendung für Squeak.
Ein Problem bei Squeak war zunächst auch die unzureichende Dokumentation: Smalltalk-Code ist einerseits für erfahrene Smalltalk-Programmierer - bis auf ein par Kommentare - quasi selbstdokumentierend; die Ähnlichkeit zu natürlicher Sprache erscheint wesentlich größer als bei anderen Programmiersprachen, man verwendet intensiv "sprechende" Objekt, Variablen und Methodennamen. Dies ist ggf. der Grund das dem Thema "externe Dokumentation" leider aber zu wenig Beachtung geschenkt wurde: Squeak litt zu Beginn an mangelnder Dokumentation für "IT-fernere" Zielgruppen (speziell für Lehrer).
Im Verhältnis zum Umfang (der ja beim bewusst "beschränkten" Scratch um Dimensionen geringer ist, als beim "offenen" Squeak) steht auch heute für Scratch viel mehr geeignetes Einsteigermaterial zu Verfügung als für Squeak.
Mit Scratch scheint ein Durchbruch einer "IT-Lern-Plattform" inzwischen eher möglich, wie die schnell wachsenden Anmeldezahlen http://www.scratch.mit.eduzeigen. Allerdings ist der Weg von Scratch nach Squeak weniger "offensichtlich" als von "E-Toys" nach Squeak, womit sich die Frage nach Aufstiegsmöglichkeiten für diejenigen stellt, denen die "Scratch-Welt" zu klein wird.
Könnte Squeak (Smalltalk) die Fortsetzung für Lernende sein, die an die Grenzen von Scratch stoßen?
Scratch ist zwar intuitiv lernbar aber nur "andeutungsweise" objektorientiert und erreicht schnell seine (gewollten) Grenzen. Viele junge Scratcher wollen mehr und fragen vehement nach zusätzlichen Funktionen und Aufhebung von Beschränkungen (häufig ohne sich dessen bewusst zu sein, das unter der Oberfläche von Scratch bereits das quasi unbeschränkte Squeak "werkelt"). Eine erhebliche Erweiterung von Scratch würde allerdings den leichten Einstieg erschweren, der ja der Hauptaspekt von Scratch ist.
Sinnvoller wäre hier vielleicht ein Schritt von Scratch hinauf zu Squeak. Dieser dürfte die jungen Programmierer aber nicht wie ein "Kulturschock" treffen, da sonst die durch Scratch aufgebaute Motivation zerstört würde. Man könnte vielmehr in einer speziellen "Advanced Scratch-Version" von Squeak nach und nach den "Vereinfachungs-Filter" den Scratch darstellt, reduzieren, bis der Blick auf die Smalltalk-Welt völlig freigegeben würde.
In so einem "Aufstiegs-Szenario könnten z.B. Scratch-Sprites als durch Smalltalk steuerbare Objekte verwendet werden (wie z.B. die Smalltalk-Roboter in http://smallwiki.unibe.ch/botsinc). Die elementaren Smalltalk-Nachrichten könnten zunächst ebenfalls als farbige Blöcke dargestellt werden , wie in Scratch. Prinzipiell müsste der gesamte Quellcode eine Smalltalk-Images in dieser "Scratch-Block-Metapher" darstellbar sein (analog zum Syntax-Highlighting), nur dass die Anzahl dieser Blöcke eben nicht wie bei Scratch beschränkt ist, sondern selber neue geschaffen werden können) Wenn man so weit ist, könnte man dieses "Scratch-Block-Syntax-Highlighting" wahlweise abschalten und wäre dann bei Smalltalk angekommen.
Warum wäre ein Scratch->Squeak Aufstiegsszenariao sinnvoll?
Einige aus der Scratch-Szene meinen, dass Scratch als Programmiersprache ja eigentlich nichts mit Smalltalk zu tun habe, bis auf die mehr oder weniger zufällige Tatsache, dass zu seiner Implementierung Squeak benutzt wurde. Lernende, die mehr wollen, könnten - nachdem sie mit Scratch den Einstieg ins Programmieren gefunden haben - einfach mit einer anderen gängigen Computersprachen z.B. Java weitermachen. Diese Argumentation ist nicht einfach von der Hand zu weisen.
Es gibt aber auch einige Aspekte (neben der Wiederverwendung von Scratch Wissen und einem möglichst fließendem Übergang) die für den Aufstieg zu Squeak und Smalltalk sprechen:
Im Gegensatz zu vielen anderen Programmiersprachen ist Smalltalk konsequent aus der Sicht des Menschen konzipiert und nimmt auf die Bedürfnisse der "Maschine" kaum Rücksicht . Dieses "unausgeschöpfte" Potential ist sicher dafür verantwortlich, dass es sich schon 30 Jahre hält, während andere Programmiersprachen, die stärker an den Kontext ihrer jeweils aktuellen IT-Welt angelehnt sind, gekommen und gegangen sind. Da sich die Maschinen ändern und die Beherrschung von Komplexität (wozu Smalltalk gute Voraussetzungen bietet) häufig wichtiger wird als Performance-Optimierung, werden Sprachen wie Smalltalk wichtiger werden. Auch die Notwendigkeit, Wissen wiederzuverwenden, dass aus historisch etablierten Programmiersprachen stammt, nimmt wahrscheinlich ab.
Hierzu das geflügelte Wort: "Java ist eine verkrüppeltes Smalltalk für C-Programmierer" ". Es könnte sein, dass der Java-Hype, der Ende der 90er Jahre den Durchbruch von Smalltalk verhindert hat, notwendig für dessen Weiterentwicklung war. Die damaligen Schwächen von Smalltalk gegenüber Java wurden inzwischen beseitigt, ohne dass dafür der Syntax von Smalltalk80 nur um ein Zeichen geändert werden musste: Allein das Objektnetz (also die "Basisbibliothek") hat sich verändert, währen Java bereits mehrerer ernsthafte Syntaxerweiterungen erfahren hat.
Ein Beispiel für Zukunftspotential: Croquet
Ein Beispiel für das Potential von Squeak Smalltalk ist seine Verwendung als Plattform für Croquet (http://www.opencroquet.org(englisch) ). Alan Kay - der seiner Zeit immer etwas voraus zu sein scheint - forscht mit seinem Team (und einer inzwischen ebenfalls wachsende Community) aktuell an virtuellen interaktiven 3D-Welten die sich auf verteilten Plattformen abspielen. Croquet hat auf den ersten Blick starke Ähnlichkeit mit der boomenden Internet-Community SecondLife (http://secondlife.com/world/de/whatis/), bei der weltweite Benutzer sich mit ihren virtuellen Körpern ("Avatare") in künstlichen dreidimensionalen Welten treffen, diese gestalten und ein Sozial- und Wirtschaftsleben dort entwickeln können. Croquet geht aber viel weiter: Während die "virtuelle Welt" SecondLife auf abgeschlossenen Server-Farmen läuft, ist sie bei Croquet frei als Squeak-Image + Source-Datei verfügbar und benötigt keinen zentralen Server. Die einzelnen "lebenden" Objektnetze der teilnehmenden Rechner verknüpfen sich über das Internet und schaffen die virtuelle Welt gemeinsam ohne Zentrale als "PearToPear-Architektur". Ziel ist eine 3D-webbasierte-multiuser-multiplatform-Benutzeroberfläche für beliebige, noch zu definierende Anwendungen. Dabei wurden natürlich Java als Programmiersprachen in Betracht gezogen, aber nach Prüfung wieder verworfen, weil selbstbezügliche Eigenschaften, perfektionierte Objektspeicherverwaltung (incl. Garbage-Collection) und der fließende "Design-Edit-Test-Debug"-Kreislauf unbedingt notwendig für ein solches Projekt erschienen (http://www.opencroquet.org/index.php/Help(englisch)).
Weil Squeak die Basis für Croquet wurde, können alle vorhanden Squeak-Anwendungen (also theoretisch auch Scratch) in die Croquet-Welt "mitgenommen" werden: In der einfachsten Version werden sie auf "im Raum schwebenden" Fenstern ausgeführt.
Über ein Scratch-Squeak-Croquet-Smalltalk-Aufstiegsszenario könnten interessierte Jugendliche also von den spielerischen Anfängen der Programmierung bis hin zu "state of the art"-Projekten kommen, also dahin, wo "die Zukunft schon heute gemacht wird" .
Ein Aufstiegspfad von Scratch nach Squeak wäre somit eine interessante Chance für die Zukunft und wie Alan Kays berühmtes Zitat sagt: „The best way to predict the future is to invent it.“ - „Der beste Weg, die Zukunft vorherzusagen, ist, sie zu erfinden.“
edit: 14.11.08 Rechtschreibfehler....einige Inhalte sind inzwischen überholt, z.B. ist der Quellcode von Scratch inzwischen publiziert...
edit: 16.02.09 Historische Entwicklung erweitert: Achtung dieser Text hat bewußt keinen "wissenschftlichen" Ansatz und gibt "locker flockig" persönliche Ansichten und Einsichten wieder, die nicht jeder teilen muß. Als "eine Sicht" von "vielen möglichen" ist er aber für den Neueinstieg in's Thema ganz brauchbar...
(noch nicht fertig, wird noch fortgesetzt...)
edit 19.10.10 urls als Links umformatiert
edit 13.02.11 ein paar neue Infos (im Zitat-Kasten abgesetzt) eingefügt um leicht veraltete Infos etwas "upzudaten"
Last edited by MartinWollenweber (2011-02-13 07:33:09)
Offline
Cool xD Its in german. My iGoogle translate it all for me
Offline
Sehr interessante Beiträge. Ein wenig in Squeak geschnuppert habe ich schon mal, weil es mich sehr reizt, auch einmal einen Blick hinter die Kulissen von Scratch zu werfen, aber es sieht nach einem weiten Weg aus. Aber wie alle weiten Wege beginnt auch dieser mit dem ersten Schritt.
Offline
taddl wrote:
kann man über scratch smalltalk öffnen?
Jens hat vor einiger Zeit schon mal ein Tutorial erstellt, das einen Weg zeigt, wie man von Scratch aus das darunter liegende Squeak (Smalltalk) erreicht. http://scratch.mit.edu/projects/Jens/22355 Um einen Eindruck zu gewinnen, ohne irgendwas zu verändern, ist das immer noch gut. Die Lücke, die er damals genutzt hat, ist inzwischen geschlossen, aber Jens beschreibt in den Projektanmerkungen noch einen anderen Weg (habe ich selbst noch nicht probiert).
Außerdem kann man durch Halten der Umschalttaste und gleichzeitiges Klicken auf das R von SCRATCH in der Kopfzeile ein kleines Menü aufrufen. Wenn man dort die Option "turn fill screen off" wählt, bekommt man unten und rechts vom Scratch-Bild einen Rahmen angezeigt. Wenn man dort mit der rechten Maustauste klickt, kommt ein weiteres Menü, das bereits nach Squeak aussieht. Weiteres Testen auf eigene Gefahr.
Ich empfehle, "fill screen" wieder anzuschalten, sich lieber Squeak herunterzuladen und damit direkt weiter zu machen. In Squeak kann man sich wiederum Scratch als Image laden und hat das gleiche Bild wie üblich. Alternative: Mal bei der BYOB (Build Your Own Blocks) Gruppe (s. englischsprachiges Forum) schnuppern, um evtl. sein eigenes Scratch schrittweise auszubauen.
Last edited by Samueldora (2010-06-30 01:16:16)
Offline
Der "R"-Trick den Samueldora oben erklärt, sollte eigentlich nicht publiziert werden, damit Scratch-Schüler nicht anfangen, ihre Lehrer damit zu ärgern, dass sie die Entwicklungsumgebung umbauen: Ist eigentlich nur für die Squeak-Entwickler von Scratch gedacht, damit man schnell "hinter die Kulissen" von Scratch kommt.
Also Pssssst ;-)
Offline
Da ich mit meiner Lerngruppe kleine Trickfilme mit Scratch produzieren möchte, war der Hinweis interessant, dass ich diese z.B. mit Camtasia in ein anderes Format umwandeln kann. Darf ich die Lernergebnisse also
- auch außerhalb der Scratchseite im Internet veröffentlichen (Schulhomepage)?
- und in anderen Formaten, gerade habe ich zum Beispiel ein Filmchen auf mein Handy geladen?
Gibt das Stress mit Urheberrechten?
Offline
taddl: Squeak ist eine von vielen Implementierungen von Smalltalk. Im Gegensatz zu manchen anderen Implementierungen kommt Squeak vom ursprünglichen "Alan Kay"-Smalltalk-Erfinderteam, ist extrem portabel und damit auf extrem vielen Maschienen lauffähig und ist OpenSource, also kostenlos. Andere Implementierungen von Smalltalk siehe: http://de.wikipedia.org/wiki/Smalltalk- … ntierungen
Last edited by MartinWollenweber (2011-05-28 03:54:47)
Offline
Hallo, ich suche für ein script die Abfrage " ` ` angeklickt?" Gab es die in scratch eigendich mal?
in die freie Stelle in diesem Script soll das rein.
Die animation soll aufhören, wenn ein bestimmtes Oblekt (nicht das mit dem Script) auf dem Bildschirm geklickt wird.
hier mein Projekt:
http://scratch.mit.edu/projects/Drachenbauer/1430980
da hab ich erstmal eien ziemlichen Bandwurm an der oben erwähnten stelle gebaut, aber der scheint auch nicht zu funktonieren...
Bitte Projekt runterladen und die Stelle anschauen. (in der Objekt-Liste der Hexenhut ist das objekt mt diesem Script)
Gruß Maxi
Last edited by Drachenbauer (2010-11-21 17:14:23)
Offline
Mache einfach folgendes:
Das andere Objekt hat dieses Programm:
Wenn Objekt angeklickt,
setzte Variable "angeklickt" auf 1.
Und das oben angegebene Skript soll nachher so aussehen:
[blocks]<when I receive[ Pumpkin-accesoire 3 ]
<show>
<repeat until> <( <{ angeklickt }><=> 1 )>
<switch to costume[ 2 ]
<wait( 0.5 )secsc>
<switch to costume[ 3]
<wait( 0.5 )secsc>
<end> [/blocks]
Offline
das geht
Offline
Liebe Gemeinde,
wie kann ich bestimmen, wo und wie Variablen angezeigt werden sollen. Nachdem beim Start ein anderer Bildschirm kommt, und dann irgendwann erst der, wo die variablen auftauche, rutschen diese immer nach linkt oben und stellen die anzeige auf *normal*
Brauche bitte dringend Hilfe!
DANKE
My variables that aren't shown from the beginning always move to the upper right.
How can I say where they have to be and how they have to look (big,small)?
It sucks. I have a front object that comes in the beginning and when a special display with the variables comes, these are mixed up above.
Offline
Du kannst Variablen nicht durch gewolltes Einschalten und Ausschalten an einen gezielten Ort bestimmen.
Das Einzige, was du tun kannst, das ist:
Variablen am Ort sichtbar platzieren und genau so abspeichern und hochladen.
Eventuell funktioniert dann das Ausblenden und Einblenden für den User im Browserfenster.
Offline
Bin ich hier richtig, wenn ich ne frage hab?
Gibt es eine Funktion, um mit anderen Scratchern Kontakt aufzunehmen (Nachrichten schreiben)?
Offline
Hier auf privater Ebene ist es schwierig, Kontakt aufzunehmen.
Aber du darfst mich in SKYPE kontaktieren (das ist kostenlos downzuladen), mein Nickname dort ist ebenso buddy60; und dann helfe ich dir, so gut ich eben kann :-)
Offline
sry, skype hab ich nicht, mach ich mir nicht. (pers. gründe).
Aber trotzdem Danke für dein Angebot.
Offline
Es gab ja mal so ne Seite, ausschließlich für deutsche Scratcher. Die war cool, man konnte da auch Nachrichten schreiben, an eine Pinnwand posten, etc. Leider waren da nur 7 Scratch (einschließlich mir) und die Seite wurde wieder gelöscht. Sehr schade, das war einendlich eine sehr coole Plattform.
Offline