“Snap”, l’autre “Scratch” ???

Snap!

Une alternative à Scratch existe depuis longtemps, elle s’appelle Snap!. Il est possible de la tester sur le serveur mis à disposition par Abulédu. Un gros avantage est que tout fonctionne avec un navigateur web et utilise des logiciels libres. Inutile de devoir utiliser ce que Richard Stallman qualifie, à raison, de « malware » : Flash (voir sa conférence transcrite par le groupe Transcriptions de l’April). Snap! est sous licence libre (GNU Affero General Public License).
Lors d’échanges sur la liste de diffusion du groupe éducation de l’April, un intervenant a signalé : « J’ai l’impression que Snap! est beaucoup plus riche, évolutif et “libre” que Scratch. Il y a un github qui paraît très actif . Il suffit de télécharger le fichier master.zip, de le dézipper et il fonctionne “out of the box”, cela me semble lever les réticences autour de Scratch et cela semble fonctionner de façon identique ». Un autre a ajouté : « La richesse de Snap! vient de la possibilité de créer ses propres blocks. Une nouvelle version est sortie il y a environ une semaine dans laquelle les objets sprites peuvent être des arguments de fonctions… Plus je l’utilise, plus je me dis que ses applications sont sans limite ». Enfin, une dernière intervenante souligne : « Quand je ne comprends pas quelque chose, je pose mes questions sur le forum Github dédié et les développeurs y répondent très vite ».
snapshot

Pour information, Nathalie Carrié, enseignante de mathématiques, a présenté Snap! à l’IREM de la Réunion le 14 juin. Il devrait être possible de récupérer la présentation sur le site de cette institution. Une autre présentation est prévue aux RMLLd de Saint-Joseph de la Réunion entre le 7 et le 10 juillet.

Avec Snap!, il est possible de faire des appels HTTP ! Cela ouvre des possibilités intéressantes d’un point de vue pédagogique sur le fonctionnement du Web. Autre fonctionnalité intéressante, on peut également exécuter du code JavaScript, il y a un bloc spécial pour cela. On peut donc mélanger code visuel et code texte. Cela semble une bonne manière pour faire la transition entre les deux : on commence à apprendre les blocs et petit à petit on peut se mettre à la programmation texte. Et on peut choisir le mode qui est le plus adapté suivant ce que l’on souhaite faire. Autre avantage : cela ouvre de nouvelles possibilités d’extension.

Toujours selon un intervenant de la liste, « Snap! a vraiment beaucoup plus de possibilités que Scratch. Surtout en termes de blocs disponibles. C’est plus riche et on peut faire des choses un peu plus complexes qu’avec Scratch. Il me semble que c’est une volonté de l’équipe de développeurs de Scratch de ne pas trop en mettre pour ne pas “noyer” les scratcheurs, ce qui peut se défendre mais cela fait qu’il manque des choses essentielles, comme par exemple la possibilité de définir des blocs qui renvoient quelque chose (ce qu’on peut faire avec Snap!). Personnellement je préfère un outil qui offre plus de possibilités quitte à ce que chacun pioche uniquement ce qu’il a envie d’utiliser et à son rythme. Par contre, l’avantage de Scratch version online est le partage en ligne, le remix, les studios, etc. (mais tout le monde n’a pas forcément besoin de ça). Bémol, je viens de voir qu’avec Snap! on pouvait enregistrer ses projet en ligne et soit les garder privés soit les rendre publics, dans ce cas un lien permet d’y accéder. Par contre j’ai l’impression qu’il n’y pas de page “profil” où on pourrait voir tous les projets de quelqu’un et les remixer (comme avec Scratch). »

Un autre intervenant a eu la chance de discuter avec le créateur de Snap! Jens Mönig lors du dernier colloque Robotique et Education. Les démos qu’il a faites sur les dernières fonctionnalités étaient remarquables. On ne voit plus les limites du logiciel.
Selon le créateur de Snap!, il y a différents niveaux d’accès :

  • “low floor” -> accessible très facilement au plus grand nombre
  • “no ceiling” -> on peut faire des choses très, très complexes (cf lambda calcul)
  • “wide walls” -> plein d’approches différentes sont possibles.

À noter qu’un atelier sur Snap! aura lieu lors des prochaines journées de l’APMEP à Lyon en octobre. Le nom de ce atelier est « Robotique au lycée avec le robot PoppyErgo ».

Un participant signale : « Par contre, il y a quelque chose qui me manque dans les deux, c’est la possibilité de travailler à plusieurs sur un même projet. »

Dans Snap! , il est possible d’avoir des lutins/scènes en vectoriel (SVG…) comme dans Scratch. Il suffit de les glisser-déposer dans la zone des costumes. Par contre à la différence de Scratch il n’est pas possible de dessiner et de modifier des lutins en vectoriel. Il n’y a pas non plus d’outil texte afin de créer un lutin qui contient du texte.

D’un point de vue technologique, en se basant sur Flash, Scratch 2.0 s’était engagé dans une impasse. Scratch 3.0 cherche à en sortir en se basant uniquement sur des standards Web. Les développeurs de Snap! ont, eux, choisi ces technologies dès le départ. Cependant, ils ont également fait un choix technologique structurant qui risque d’être un frein pour le développement de Snap!. En effet, Snap! redessine tout dans un canvas au lieu d’utiliser des objets “HTML” (DOM pour être plus précis). Les développeurs ont donc dû recoder tout ce qui est rendu graphique de l’interface au lieu de se reposer sur les moteurs de rendu efficaces des navigateurs, ce qui est une grande perte d’énergie et une grosse contrainte pour les futurs dévelopements.

Création d’un fichier exécutable à partir d’un projet Snap!

Il existe aussi la possibilité de créer un exécutable à partir d’un projet Snap!. Pour cela, il suffit d’exporter le projet en XML, puis de suivre ce lien. Ensuite on y charge le XML, on sélectionne la plateforme et cela produit un fichier zip qu’il suffit de décompresser pour utilisation. Cette fonctionnalité a vraiment été appréciée. Selon un animateur d’ateliers : « C’est une demande qu’on a régulièrement de la part des enfants lors de nos ateliers : certains veulent pouvoir donner leurs jeux à leur entourage sans forcément avoir à passer par un site ».

Arduino

On peut interfacer les cartes Arduino avec Snap!. Voir sur le site de S4A (Scratch for Arduino) (licence GNU GPL et MIT). Pour connecter d’autres matériels, voir la section “Use devices with Snap!:” du site officiel de Snap!

Si vous souhaitez aussi participer ce type de discussions, profiter des échanges ou peaufiner votre activité de veille, alors rejoignez le groupe de travail éducation de l’April, en vous inscrivant à la liste de discussion (cette inscription est ouverte à tout le monde)

Source : http://april.org/scratch-snap-et-arduino-synthese-des-echanges-sur-la-liste-du-groupe-de-travail-education

Print Friendly, PDF & Email