Aus Das deutschsprachige Scratch-Wiki

 
(52 dazwischenliegende Versionen von 11 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{en|BYOB/Snap_4.0}}
 
 
{{ScratchVersionen}}
 
{{ScratchVersionen}}
Snap! (deutsch: (ein-)schnappen!) ist eine [[Modifikationen|Scratch Modifikation]] und der Nachfolger von [[Build Your Own Blocks (Scratch Modifikation)|BYOB]] und somit auch von [[Chirp]]. Im Gegensatz zu den meisten anderen Mods basiert Snap! nicht auf dem Quellcode von [[Scratch]] selbst, sondern wurde komplett neu programmiert, da die Entwickler, wie bei [[Scratch 2.0]], wollen, dass man von überall online an seinen Projekten arbeiten kann. Snap! befindet sich im Augenblick noch im Status [http://de.wikipedia.org/wiki/Entwicklungsstadium_(Software)|"Alpha"], was bedeutet, dass es noch eine ganze Weile bist zum offiziellen Veröffentlichungstermin dauern wird. Die Fertigstellung ist für den Juli angeplant.
+
'''Snap!''' (deutsch: (ein-)schnappen!) ist eine [[Modifikationen|Scratch Modifikation]] und der Nachfolger von [[Build Your Own Blocks (Scratch Modifikation)|BYOB]] und somit auch von [[Chirp]]. Wie Scratch ist Snap! weitgehend eine {{wpd|Imperative Programmierung|imperative Programmiersprache}} bei der ein Programm aus einer Folge von Anweisungen besteht, die vorgeben, in welcher Reihenfolge welche Aktionen ausgeführt werden. Mit den Higher-Order Procedures unterstützt Snap! aber auch {{wpd|funktionale Programmierung}}.
 +
 
 +
Im Gegensatz zu den meisten anderen Mods basiert Snap! nicht auf dem Quellcode von [[Scratch]] selbst, sondern wurde komplett neu programmiert, da die Entwickler, wie bei [[Scratch 2.0]], wollen, dass man von überall online an seinen Projekten arbeiten kann. Snap! befindet sich im Augenblick noch im Status [http://de.wikipedia.org/wiki/Entwicklungsstadium_(Software) "Beta"].
 +
{{Vorlage:SRahmen|text=
 +
'''siehe auch in Wikipedia:''' {{wpd|Build Your Own Blocks (Programmiersprache)}} <small>(dort wird auch Snap! behandelt)</small><br>([[Scratch-Wiki:Wikipedia Versionen des Scratch und BYOB Artikels abgleichen]])}}
 
[[Datei:Logo5.png|thumb|Das offizielle Logo|240px]]
 
[[Datei:Logo5.png|thumb|Das offizielle Logo|240px]]
 
== Entwicklerteam ==
 
== Entwicklerteam ==
 
[[Datei:Brain_Harvey_und_Jens_Mönig.jpg|180px|thumb|Brian Harvey und Jens Mönig]]
 
[[Datei:Brain_Harvey_und_Jens_Mönig.jpg|180px|thumb|Brian Harvey und Jens Mönig]]
Wie beim Vorgänger [[BYOB]], hat der deutsche Jurist und Softwareentwickler [http://scratch.mit.edu/users/Jens Jens Mönig] den Großteil der Programmierung übernommen und der Berkeleydozent [http://en.wikipedia.org/wiki/Brian_Harvey_(lecturer) Brian Harvey] seine Ideen zum Sprachdesign und die Dokumentation beigesteuert. Bis zur geplanten Erstveröffentlichung im Juli werden neben Jens Mönig nur noch die zwei engagierten jugendlichen Hobbyprogrammierer [http://scratch.mit.edu/users/Fullmoon Fullmoon] und [http://scratch.mit.edu/users/nXIII nxIII] aus den USA am Coding in JavaScript beteiligt sein.
+
Wie beim Vorgänger BYOB, hat der deutsche Jurist und Softwareentwickler [http://scratch.mit.edu/users/Jens Jens Mönig] den Großteil der Programmierung übernommen und der Berkeleydozent [http://en.wikipedia.org/wiki/Brian_Harvey_(lecturer) Brian Harvey] seine Ideen zum Sprachdesign und die Dokumentation beigesteuert. Bis zur geplanten Erstveröffentlichung im Juli werden neben Jens Mönig nur noch die zwei engagierten jugendlichen Hobbyprogrammierer [http://scratch.mit.edu/users/Fullmoon Fullmoon] und [http://scratch.mit.edu/users/nXIII nxIII] aus den USA am Coding in JavaScript beteiligt sein.  
  
Jens nutze aber u.A. Vor- bzw. Zusammenarbeit den [[MIT-Scratch-Team]] Mitgliedern John Maloney und Evelyn Eastmond, sowie mit dem [http://de.wikipedia.org/wiki/Smalltalk-80_(Programmiersprache) Squeak/Smalltalk] Mitbegründer [http://de.wikipedia.org/wiki/Dan_Ingalls Dan Ingalls], dessen  [http://en.wikipedia.org/wiki/Lively_Kernel Lively Kernel] eine Vorlage für Morphc.js, lieferte, die Jens in seiner Dokumentation als "Gold Standard" bezeichnet. Den Lively Kernel kann man [http://lively-kernel.org/repository/webwerkstatt/gettingStarted.xhtml hier] live im Browser erleben.
+
Jens nutze aber u.A. Vor- bzw. Zusammenarbeit den [[MIT-Scratch-Team]] Mitgliedern John Maloney und Evelyn Eastmond, sowie mit dem [http://de.wikipedia.org/wiki/Smalltalk-80_(Programmiersprache) Squeak/Smalltalk] Mitbegründer [http://de.wikipedia.org/wiki/Dan_Ingalls Dan Ingalls], dessen  [http://en.wikipedia.org/wiki/Lively_Kernel Lively Kernel] eine Vorlage für Morphc.js, lieferte, die Jens in seiner Dokumentation als "Gold Standard" bezeichnet. Den Lively Kernel kann man [http://lively-kernel.org/repository/webwerkstatt/gettingStarted.xhtml hier] live im Browser erleben. Dan Ingels selber gibt hier ein interessantes Interview dazu: [http://www.infoq.com/interviews/ingalls-smalltalk  "Dan Ingalls on the History of Smalltalk and the Lively Kernel"].
 +
:&rarr; siehe auch: '''[[Jens Mönig am Scratch Day 2013]]'''
  
 
== Technik und Programmiersprachen: Morphic.js ==
 
== Technik und Programmiersprachen: Morphic.js ==
 
[[Datei:Snap auf dem iPad2.jpg|thumb|Programmieren mit Snap auf dem [http://de.wikipedia.org/wiki/Apple_iPad iPad 2] von [http://de.wikipedia.org/wiki/Apple Apple]: Geht ohne Java & Flash...]]
 
[[Datei:Snap auf dem iPad2.jpg|thumb|Programmieren mit Snap auf dem [http://de.wikipedia.org/wiki/Apple_iPad iPad 2] von [http://de.wikipedia.org/wiki/Apple Apple]: Geht ohne Java & Flash...]]
Eine wichtige Einschränkung des für Mitte 2012 angekündgten Scratch 2.0 ist, dass Projekte trotz Onlineeditor mit der Apple iOS-Reihe (iPhone, iPad und iPod touch) weder abgespielt noch bearbeitet werden können, da diese Geräte kein [http://de.wikipedia.org/wiki/Adobe_Flash Flash] unterstützen. Für den Player von Scratch bis [[Scratch 1.4|Version 1.4]], der auf [http://de.wikipedia.org/wiki/Java-Applet Java] basiert, galt dies ebenso. Java und Flash haben viele Befürworter, aber auch einige wichtige Gegner. Die Entwickler mußten also nach einer geeigneteren Technologie suchen, die sowohl ein so großes Projekt sicher und in allen Funktionen trägt, als auch eine hohe Kompatibilität für alle internetfähigen Geräte und Plattformen bietet. Was passt da besser als die zwei Onlinestandarts schlechthin: HTML und JavaScript?
+
Eine wichtige Einschränkung des für Mitte 2012 (und inzwischen auf Q1 2013 verschobene, Alpha aber schon online für Eingeweihte) Scratch 2.0 ist, dass Projekte trotz Onlineeditor mit der Apple iOS-Reihe (iPhone, iPad und iPod touch) weder abgespielt noch bearbeitet werden können, da diese Geräte kein [http://de.wikipedia.org/wiki/Adobe_Flash Flash] unterstützen. Auch Android-Geräte haben mittlerweile Flash nicht mehr im Playstore, eine installation ist nur separat möglich und Flash-Programme wie Scratch können nur mehr über den Dolphin-Browser abgespielt werden.
 +
 
 +
Für den Player von Scratch bis [[Scratch 1.4|Version 1.4]], der auf [http://de.wikipedia.org/wiki/Java-Applet Java] basiert, galt dies ebenso. Java und Flash haben viele Befürworter, aber auch einige wichtige Gegner. Die Entwickler mußten also nach einer geeigneteren Technologie suchen, die sowohl ein so großes Projekt sicher und in allen Funktionen trägt, als auch eine hohe Kompatibilität für alle internetfähigen Geräte und Plattformen bietet. Was passt da besser als die zwei Onlinestandarts schlechthin: HTML und JavaScript?
 
[[Datei:Morphic_js_about_box.jpg|thumb|"About"-box von Morphic.js]]
 
[[Datei:Morphic_js_about_box.jpg|thumb|"About"-box von Morphic.js]]
 
Die Basis,  die der Snap! Hauptentwickler Jens Mönig dafür geschaffen hat, nennt sich Morpic.js. Es ist eine Morphic-Implemetierung in JavaScript.  
 
Die Basis,  die der Snap! Hauptentwickler Jens Mönig dafür geschaffen hat, nennt sich Morpic.js. Es ist eine Morphic-Implemetierung in JavaScript.  
Zeile 22: Zeile 28:
  
 
== Verbindung zu BYOB ==
 
== Verbindung zu BYOB ==
Wie bereits oben erwähnt, ist Snap! der Nachfolger, beziehungsweise die nächste Version von [[BYOB]].  
+
Wie bereits oben erwähnt, ist Snap! der Nachfolger, beziehungsweise die nächste Version von [[Build Your Own Blocks (Scratch Modifikation)|BYOB]].  
  
 
Die Abkürzung "BYOB" hatte leider auch noch eine andere, im englischen sogar bekanntere Bedeutung als ''Build Your Own Blocks'' (Bau deine eigenen Blöcke) an die man zunächst nicht gedacht hatte. Nämlich das Motto [http://en.wikipedia.org/wiki/Bring_your_own ''bring your own beer/bottle''] (''Bring Deine Flasche/Dein Bier selbst mit'') von Buddelpartys. Daher hat man sich entschieden, einen neuen Namen zu suchen, der sich mit Snap! fand. Trotzdem wird Snap! 1.0 auch manchmal noch BYOB 4.0 genannt werden.
 
Die Abkürzung "BYOB" hatte leider auch noch eine andere, im englischen sogar bekanntere Bedeutung als ''Build Your Own Blocks'' (Bau deine eigenen Blöcke) an die man zunächst nicht gedacht hatte. Nämlich das Motto [http://en.wikipedia.org/wiki/Bring_your_own ''bring your own beer/bottle''] (''Bring Deine Flasche/Dein Bier selbst mit'') von Buddelpartys. Daher hat man sich entschieden, einen neuen Namen zu suchen, der sich mit Snap! fand. Trotzdem wird Snap! 1.0 auch manchmal noch BYOB 4.0 genannt werden.
Zeile 29: Zeile 35:
 
Bisher sieht man im Nasciturus, verglichen mit dem Vorgänger BYOB 3.1, noch nicht allzu viel Neues. Das liegt natürlich daran, dass Snap! noch einige Wochen Entwicklung vor sich hat.
 
Bisher sieht man im Nasciturus, verglichen mit dem Vorgänger BYOB 3.1, noch nicht allzu viel Neues. Das liegt natürlich daran, dass Snap! noch einige Wochen Entwicklung vor sich hat.
  
*Slider für Touchscreens
+
*Slider, Zoom und Klapptastatur für Smartphones und Tablett PCs
 
*Neuer Block: "warp"
 
*Neuer Block: "warp"
 
*Neuer Block: "call w/continuation"
 
*Neuer Block: "call w/continuation"
Zeile 35: Zeile 41:
 
*Neuer Block: "in front of"  
 
*Neuer Block: "in front of"  
 
*Neuer Block: "all but first of"
 
*Neuer Block: "all but first of"
*Neue first class Blöcke (ohne spezielle Namen)
+
*Neue Blockart: Ringe
 +
*Neuer Block: "http://"
 
   
 
   
 
Mehr kommt hoffentlich bald.
 
Mehr kommt hoffentlich bald.
 +
 +
== Snap! Projekte online speichern und veröffentlichen ==
 +
 +
Snap! bietet wie Scratch die Möglichkeit zum Speichern von Projekten auf einem Cloud-Server an. Die Funktion zum Veröffentlichen ist allerdings etwas versteckt unter dem "Projekt öffnen"-Dialog versteckt. In einem Forum-Posting kündigte Brian Harvey an, dass an einer Frontpage ähnlich wie bei Scratch gearbeitet wird [https://scratch.mit.edu/discuss/topic/4455/?page=49#post-1688423].
 +
Ein veröffentlichtes Projekt ist derzeit aber nur über die URL erreichbar, zum Beispiel:
 +
http://snap.berkeley.edu/snapsource/snap.html#present:Username=frodewin&ProjectName=Diamond%20Hunter
 +
Die URL enthält den Benutzernamen und den Projektnamen. An die URL kann noch '''&editMode''', '''&noRun''' und '''&hideControls''' angehängt werden um die Darstellung anzupassen.
 +
 +
So veröffentlichte Projekte stehen unter einer Creative Commons Attribution-NonCommercial-ShareAlike ([https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode CC-BY-NC-SA]) (siehe [https://scratch.mit.edu/discuss/post/1761374/]), das bedeutet Inhalte die unter den Lizenzen [https://creativecommons.org/choose/zero/ CC-0], [https://creativecommons.org/licenses/by/4.0/ CC-BY], [https://creativecommons.org/licenses/by-nc/4.0/legalcode CC-BY-NC] und
 +
[https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode CC-BY-NC-SA] stehen dürfen in veröffentlichten Snap!-Projekten eingebaut werden (siehe auch [http://www.web2rights.com/creativecommons/ Creative Commons Licence Compatibility Wizards]).
 +
 +
[[Datei:Kompatibilitätstabelle.png|thumb|710px|center|Kompatibilitätstabelle zwischen den Creative Commons Lizenzen, Scratch und Snap!]]
 +
 +
 +
Das bedeutet unter anderem, dass Inhalte von [[Scratch]]-Projekte '''nicht''' in Snap!-Projekte übernommen werden und vice versa.
 +
 +
Der Projektersteller kann laut Brian Harvey[https://scratch.mit.edu/discuss/post/1763318/] auch auf den Non-Commercial-Teil der Lizenz verzichten, wenn dies in den Projektanmerkungen angegeben ist. Damit wäre die Lizenz dann CC BY-SA und somit zu jener von Scratch kompatibel.
  
 
== Entwicklung miterleben! ==
 
== Entwicklung miterleben! ==
Das schöne an Snap! ist, dass die Entwicklung offen auf der BYOB Webseite stattfindet. So musst du gar nicht bis auf die für den Juli angeplante Fertigstellung warten, um sich einen Eindruck machen zu können. Allerdings darfst du nicht erwarten, dass schon alles perfekt und vollständig ist. Es handelt sich eben nur um eine Alpha. Außerdem ist Snap! bis jetzt unübersetzt. Eine Übersetzung folgt wahrscheinlich noch.
+
Das schöne an Snap! ist, dass die Entwicklung offen auf der BYOB Webseite stattfindet. So muss man nicht auf die offizielle Fertigstellung warten, um sich einen Eindruck machen zu können. Allerdings darfst du nicht erwarten, dass schon alles perfekt und vollständig ist. Es handelt sich eben nur um eine Alpha. Inzwischen kann man auch auf Deutsch und andere Sprachen umschalten: Es sollen noch viele dazukommen, Chinesisch ist schon dabei ;-)
  
 
Snap! in der jeweils aktuellen Version in Deinem Browser starten hier:
 
Snap! in der jeweils aktuellen Version in Deinem Browser starten hier:
 
*http://snap.berkeley.edu/snapsource/snap.html
 
*http://snap.berkeley.edu/snapsource/snap.html
  
 +
Die Build-Versionenübersicht findest du hier:
 +
*http://byob.berkeley.edu/snapsource/history.txt
 +
::Jens nummeriert seine Builds einfach durch, ohne ein Datum daran zu schreiben.
 +
 +
::Um mal einen Bezug zu haben:
 +
<small>
 +
::* Build '''121127''' aktuelle Version am '''28.11.2012'''
 +
::* Build '''130118''' aktuelle Version am '''20.01.2013'''
 +
::* Build '''130221''' aktuelle Version am '''21.02.2013'''
 +
::* Build '''130517''' aktuelle Version am '''23.05.2013'''
 +
::* Build '''130730''' aktuelle Version am '''31.07.2013'''
 +
::* Build '''130917''' aktuelle Version am '''17.09.2013'''
 +
::* Build '''140110''' aktuelle Version am '''21.01.2014'''
 +
::* Build '''140718''' aktuelle Version am '''19.07.2014'''
 +
::* Build '''141008''' aktuelle Version am '''09.10.2014'''
 +
::'''Start with v4.0.1'''
 +
::* Build '''150626''' aktuelle Version am '''16.05.2015'''
 +
::* Build '''151007''' aktuelle Version am '''15.11.2015'''
 +
 +
 +
 +
</small>
 +
 +
[[Datei:Jens_Mönig.jpg|thumb|Jens Mönig <small>([https://github.com/jmoenig User-Foto auf Github])</small>]]
 
Zugriff auf alle aktuellen Source-Dateien + Doku + Archive hier:
 
Zugriff auf alle aktuellen Source-Dateien + Doku + Archive hier:
 
*http://byob.berkeley.edu/snapsource/
 
*http://byob.berkeley.edu/snapsource/
Zeile 51: Zeile 99:
 
*http://snap.berkeley.edu/
 
*http://snap.berkeley.edu/
  
Einen Forums-Thread zu BOYB, bei dem es zunehmend auch um Snap! geht und an dem auch Brian und Jens teilnehmen, findest Du hier:
+
Auf Github ist Snap! hier verortet:
*http://scratch.mit.edu/forums/viewtopic.php?id=34284
+
 
 +
https://github.com/jmoenig/Snap--Build-Your-Own-Blocks
  
 
== Screenshots ==
 
== Screenshots ==
Hier sind einige Screenshots der Alpha. Für eine Vergrößerung bitte auf das jeweilige Bild klicken.
+
 
 +
Snap bietet neben dem klassischen an Scratch 1 angelehnten Design auch ein alternatives "Flat"-Design an.
 +
 
 +
<gallery perrow=2>
 +
Datei:Snap-project.png|Klassischer Editor (voreingestellt)
 +
Datei:Snap-project-flatdesign.png|Editor im "Flat Design"
 +
</gallery>
 +
 
 +
== Screenshots der Alpha-Version von Snap! ==
 +
 
 +
Für eine Vergrößerung bitte auf das jeweilige Bild klicken.
 
<gallery perrow=3>
 
<gallery perrow=3>
Datei:Snap4 prealpha screenshot.jpg|Ein Screenshot vom 3. April 2012
+
Datei:Snap4 prealpha screenshot.jpg|Ein Screenshot vom 17. Mai 2012
 
Datei:About Snap.PNG|Die Credits Seite
 
Datei:About Snap.PNG|Die Credits Seite
 
Datei:Block editor.PNG|Der Block Editor
 
Datei:Block editor.PNG|Der Block Editor
Zeile 65: Zeile 124:
 
</gallery>
 
</gallery>
  
==Meinungen und Kommentare==
+
== Hintergründe zu Snap! ==
 
+
* [[Jens Mönig am Scratch Day 2013]]
=== von [[Benutzer:Mtwoll|Mtwoll]] (Wiki-Teammitglied) ===
+
* [[Das_deutschsprachige_Scratch-Wiki:Gemeinschaftsportal#Scratch_Wiki_und_Wikipedia_Versionen_des_Scratch_und_BYOB_Artikels_abgleichen |Der Snap! Artikel in Wikipedia ist zur Zeit umfangreicher]]
Was Jens da mit [[BYOB]] geschaffen haben und mit [[Snap!]] jetzt weiterentwickeln (das von einige MIT'lern - hinter vorgehaltener Hand - schon als "Scratch 3.0" bezeichnet wird) , weist deutlich in Richtung in "Informatik-Studium und Profi Bereich anwendbar" und nicht nur in Richtung "Programmieren für Schüler" wie Scratch. Außerdem ist Jens darüber - was mich wirklich fasziniert - mit den aktuellen Größen der Informatik in Kontakt gekommen: Er  hat neben [http://de.wikipedia.org/wiki/Mitchel_Resnick Mitch Resnick] und seinem [[MIT-Scratch-Team]] auch [http://de.wikipedia.org/wiki/Alan_Kay Alan Kay], [http://de.wikipedia.org/wiki/Dan_Ingalls Dan Ingalls] und andere persönlich getroffen und mit ihnen diskutieren können: Falls Ihr diese Namen nie gehört habt..einige davon sind so etwas wie die lebenden [http://de.wikipedia.org/wiki/Albert_Einstein "Albert Einsteins"] oder [http://de.wikipedia.org/wiki/Werner_Heisenberg "Werner Heisenbergs"] der Informatik...
 
  
==Links==
+
== Weblinks ==
 +
*[http://snap.berkeley.edu/ Snap!-Webseite]
 +
*[http://scratchforums.blob8108.net/forums/viewtopic.php?id=34284 Das BYOB 3 Forum] altes Topic im Scratchforum im Archiv
 +
*[//scratch.mit.edu/discuss/topic/4455 Snap! User Discussion]
 
*[http://scratch.mit.edu/users/Jens Jens Seite auf Scratch]
 
*[http://scratch.mit.edu/users/Jens Jens Seite auf Scratch]
 
*[http://scratch.mit.edu/users/bharvey Brians Seite auf Scratch]
 
*[http://scratch.mit.edu/users/bharvey Brians Seite auf Scratch]
 
*[http://www.eecs.berkeley.edu/~bh/ Brian Harveys Homepage] auf der Webseite der [http://en.wikipedia.org/wiki/University_of_California,_Berkeley University of California, Berkeley]  
 
*[http://www.eecs.berkeley.edu/~bh/ Brian Harveys Homepage] auf der Webseite der [http://en.wikipedia.org/wiki/University_of_California,_Berkeley University of California, Berkeley]  
 
*[http://inst.eecs.berkeley.edu/~cs10/fa11/ Die Seite des Kurses "The Beauty and Joy of Computing"]
 
*[http://inst.eecs.berkeley.edu/~cs10/fa11/ Die Seite des Kurses "The Beauty and Joy of Computing"]
 +
* [http://web.archive.org/web/20131015180158/http://www.chirp.scratchr.org/blog/?p=39 Jens' Eintrag zu Snap! in seinem Chirp-Blog] (via [//web.archive.org]] da originale Seite nicht mehr online)
 +
* [https://www.facebook.com/pages/BYOB-Snap/101386953261459 Facebook-Seite zu Snap!]
 +
* [http://www.xleroy.net/ByobTuto/projects.html Einige Snap!-Projekte zum Ausprobieren]
  
 +
{{en|BYOB#Future_Versions}}
 
[[Kategorie:Scratch Modifikation]]
 
[[Kategorie:Scratch Modifikation]]

Aktuelle Version vom 31. Januar 2016, 21:11 Uhr

Snap! (deutsch: (ein-)schnappen!) ist eine Scratch Modifikation und der Nachfolger von BYOB und somit auch von Chirp. Wie Scratch ist Snap! weitgehend eine imperative ProgrammierspracheWikipedia.jpg bei der ein Programm aus einer Folge von Anweisungen besteht, die vorgeben, in welcher Reihenfolge welche Aktionen ausgeführt werden. Mit den Higher-Order Procedures unterstützt Snap! aber auch funktionale ProgrammierungWikipedia.jpg.

Im Gegensatz zu den meisten anderen Mods basiert Snap! nicht auf dem Quellcode von Scratch selbst, sondern wurde komplett neu programmiert, da die Entwickler, wie bei Scratch 2.0, wollen, dass man von überall online an seinen Projekten arbeiten kann. Snap! befindet sich im Augenblick noch im Status "Beta".

Das offizielle Logo

Entwicklerteam

Brian Harvey und Jens Mönig

Wie beim Vorgänger BYOB, hat der deutsche Jurist und Softwareentwickler Jens Mönig den Großteil der Programmierung übernommen und der Berkeleydozent Brian Harvey seine Ideen zum Sprachdesign und die Dokumentation beigesteuert. Bis zur geplanten Erstveröffentlichung im Juli werden neben Jens Mönig nur noch die zwei engagierten jugendlichen Hobbyprogrammierer Fullmoon und nxIII aus den USA am Coding in JavaScript beteiligt sein.

Jens nutze aber u.A. Vor- bzw. Zusammenarbeit den MIT-Scratch-Team Mitgliedern John Maloney und Evelyn Eastmond, sowie mit dem Squeak/Smalltalk Mitbegründer Dan Ingalls, dessen Lively Kernel eine Vorlage für Morphc.js, lieferte, die Jens in seiner Dokumentation als "Gold Standard" bezeichnet. Den Lively Kernel kann man hier live im Browser erleben. Dan Ingels selber gibt hier ein interessantes Interview dazu: "Dan Ingalls on the History of Smalltalk and the Lively Kernel".

→ siehe auch: Jens Mönig am Scratch Day 2013

Technik und Programmiersprachen: Morphic.js

Programmieren mit Snap auf dem iPad 2 von Apple: Geht ohne Java & Flash...

Eine wichtige Einschränkung des für Mitte 2012 (und inzwischen auf Q1 2013 verschobene, Alpha aber schon online für Eingeweihte) Scratch 2.0 ist, dass Projekte trotz Onlineeditor mit der Apple iOS-Reihe (iPhone, iPad und iPod touch) weder abgespielt noch bearbeitet werden können, da diese Geräte kein Flash unterstützen. Auch Android-Geräte haben mittlerweile Flash nicht mehr im Playstore, eine installation ist nur separat möglich und Flash-Programme wie Scratch können nur mehr über den Dolphin-Browser abgespielt werden.

Für den Player von Scratch bis Version 1.4, der auf Java basiert, galt dies ebenso. Java und Flash haben viele Befürworter, aber auch einige wichtige Gegner. Die Entwickler mußten also nach einer geeigneteren Technologie suchen, die sowohl ein so großes Projekt sicher und in allen Funktionen trägt, als auch eine hohe Kompatibilität für alle internetfähigen Geräte und Plattformen bietet. Was passt da besser als die zwei Onlinestandarts schlechthin: HTML und JavaScript?

"About"-box von Morphic.js

Die Basis, die der Snap! Hauptentwickler Jens Mönig dafür geschaffen hat, nennt sich Morpic.js. Es ist eine Morphic-Implemetierung in JavaScript.

Ein historischer Screenshot der Morphic Oberfläche in Squeak

Morphic ist die innovative grafische Benutzeroberfläche, die auch in der bisherigen Squeak Implementierung von Scratch das grafische Framework darstellt. Es besteht aus Morphs genannten graphischen Objekten, die vom Benutzer ohne Programmierung manipuliert werden können. Du kannst das blanke Morphic.js ohne Snap! hier live im Browser erleben und die umfangreiche englischsprachige Einführung von Jens hier lesen.

Zum Verständnis von Morphic.js sind allerdings Englisch- , Squeak- , Morphic-, Javascript- und HTML5-Canvas-Kenntnisse erforderlich. Jens hat darin quasi das Morphic-Framework aus Squeak, auf welcher das normale Scratch bis Version 1.4 beruht, in JavaScript nachgebaut und konnte so Snap! oben draufsetzen. Dadurch läuft die Entwicklungsumgebung in jedem Browser.

Faszinierend an Morphic.js und seinem Vorbild Lively Kernel ist, dass die "lebende" graphische Objektumgebung von Morphic.js allein durch die Ausführung der quelltextoffen auf dem Server liegenden HTML- und JavaSkript- Code entsteht: Es ist keine Serverkomponente und kein vorcomplierter Code beteiligt: Allein die Ausführung der Dateien im Browser schafft die "lebende Umgebung" von Morphic und das darauf basierende Snap!

Verbindung zu BYOB

Wie bereits oben erwähnt, ist Snap! der Nachfolger, beziehungsweise die nächste Version von BYOB.

Die Abkürzung "BYOB" hatte leider auch noch eine andere, im englischen sogar bekanntere Bedeutung als Build Your Own Blocks (Bau deine eigenen Blöcke) an die man zunächst nicht gedacht hatte. Nämlich das Motto bring your own beer/bottle (Bring Deine Flasche/Dein Bier selbst mit) von Buddelpartys. Daher hat man sich entschieden, einen neuen Namen zu suchen, der sich mit Snap! fand. Trotzdem wird Snap! 1.0 auch manchmal noch BYOB 4.0 genannt werden.

Neue Funktionen

Bisher sieht man im Nasciturus, verglichen mit dem Vorgänger BYOB 3.1, noch nicht allzu viel Neues. Das liegt natürlich daran, dass Snap! noch einige Wochen Entwicklung vor sich hat.

  • Slider, Zoom und Klapptastatur für Smartphones und Tablett PCs
  • Neuer Block: "warp"
  • Neuer Block: "call w/continuation"
  • Neuer Block: "run w/continuation"
  • Neuer Block: "in front of"
  • Neuer Block: "all but first of"
  • Neue Blockart: Ringe
  • Neuer Block: "http://"

Mehr kommt hoffentlich bald.

Snap! Projekte online speichern und veröffentlichen

Snap! bietet wie Scratch die Möglichkeit zum Speichern von Projekten auf einem Cloud-Server an. Die Funktion zum Veröffentlichen ist allerdings etwas versteckt unter dem "Projekt öffnen"-Dialog versteckt. In einem Forum-Posting kündigte Brian Harvey an, dass an einer Frontpage ähnlich wie bei Scratch gearbeitet wird [1]. Ein veröffentlichtes Projekt ist derzeit aber nur über die URL erreichbar, zum Beispiel:

http://snap.berkeley.edu/snapsource/snap.html#present:Username=frodewin&ProjectName=Diamond%20Hunter

Die URL enthält den Benutzernamen und den Projektnamen. An die URL kann noch &editMode, &noRun und &hideControls angehängt werden um die Darstellung anzupassen.

So veröffentlichte Projekte stehen unter einer Creative Commons Attribution-NonCommercial-ShareAlike (CC-BY-NC-SA) (siehe [2]), das bedeutet Inhalte die unter den Lizenzen CC-0, CC-BY, CC-BY-NC und CC-BY-NC-SA stehen dürfen in veröffentlichten Snap!-Projekten eingebaut werden (siehe auch Creative Commons Licence Compatibility Wizards).

Kompatibilitätstabelle zwischen den Creative Commons Lizenzen, Scratch und Snap!


Das bedeutet unter anderem, dass Inhalte von Scratch-Projekte nicht in Snap!-Projekte übernommen werden und vice versa.

Der Projektersteller kann laut Brian Harvey[3] auch auf den Non-Commercial-Teil der Lizenz verzichten, wenn dies in den Projektanmerkungen angegeben ist. Damit wäre die Lizenz dann CC BY-SA und somit zu jener von Scratch kompatibel.

Entwicklung miterleben!

Das schöne an Snap! ist, dass die Entwicklung offen auf der BYOB Webseite stattfindet. So muss man nicht auf die offizielle Fertigstellung warten, um sich einen Eindruck machen zu können. Allerdings darfst du nicht erwarten, dass schon alles perfekt und vollständig ist. Es handelt sich eben nur um eine Alpha. Inzwischen kann man auch auf Deutsch und andere Sprachen umschalten: Es sollen noch viele dazukommen, Chinesisch ist schon dabei ;-)

Snap! in der jeweils aktuellen Version in Deinem Browser starten hier:

Die Build-Versionenübersicht findest du hier:

Jens nummeriert seine Builds einfach durch, ohne ein Datum daran zu schreiben.
Um mal einen Bezug zu haben:

  • Build 121127 aktuelle Version am 28.11.2012
  • Build 130118 aktuelle Version am 20.01.2013
  • Build 130221 aktuelle Version am 21.02.2013
  • Build 130517 aktuelle Version am 23.05.2013
  • Build 130730 aktuelle Version am 31.07.2013
  • Build 130917 aktuelle Version am 17.09.2013
  • Build 140110 aktuelle Version am 21.01.2014
  • Build 140718 aktuelle Version am 19.07.2014
  • Build 141008 aktuelle Version am 09.10.2014
Start with v4.0.1
  • Build 150626 aktuelle Version am 16.05.2015
  • Build 151007 aktuelle Version am 15.11.2015


Jens Mönig (User-Foto auf Github)

Zugriff auf alle aktuellen Source-Dateien + Doku + Archive hier:

Die offizielle Webseite von Snap! und BYOB findest du hier:

Auf Github ist Snap! hier verortet:

https://github.com/jmoenig/Snap--Build-Your-Own-Blocks

Screenshots

Snap bietet neben dem klassischen an Scratch 1 angelehnten Design auch ein alternatives "Flat"-Design an.

Screenshots der Alpha-Version von Snap!

Für eine Vergrößerung bitte auf das jeweilige Bild klicken.

Hintergründe zu Snap!

Weblinks



Code zum Einbinden ins Forum:
[wiki=de:Snap!]Snap![/wiki]

Kategorie:En-Link

Cookies helfen uns bei der Bereitstellung von Das deutschsprachige Scratch-Wiki. Durch die Nutzung von Das deutschsprachige Scratch-Wiki erklärst du dich damit einverstanden, dass wir Cookies speichern.