19 Jul

Snap!, un llenguatge de programació visual

Com m’agrada molt Snap! però no trobo documentació en català, faré un tutorial introductori: d’aquests amb moltes captures de pantalla, que sempre s’agraeixen molt quan comences amb una eina nova. Es podria titular “Programació per a tecnofòbics” i potser seria cop d’efecte molt disruptiu i tal, però m’estimo més un clàssic “Tutorial d’Snap!”. Espero que sigui útil! :)

Abans de començar amb l’eina pròpiament, faré una introducció en tres entrades per situar-la en context:

PSEUDOCODI VS CODI

Snap! és un llenguatge de programació visual que es basa en un sistema de blocs de colors. Aquests blocs, que fem encaixar entre ells, permeten programar projectes que visualitzem en temps real.

Amb Snap! podrem crear projectes en forma de videojoc, animació, historieta interactiva… i compartir-los amb qui vulguem. (A mi m’encanta programar acudits :) Trobo que és molt terapèutic). Amb Snap!, a més, es poden visualitzar els projectes tan al web com a dispositius mòbils. I per si fora poc,  a l’ecosistema Snap!, com veurem més endavant, tant podem crear projectes artístics com programar robots o dissenyar en 3D.

D’aquests tipus de llenguatges per blocs se’n diu «pseudocodi» (imatges esquerra, Snap!). El llenguatges de codi (imatge dreta, Javascript) no són massa visuals i fan més respecte, diguem. A JavaScript si et deixes una sola coma, ja l’has liat… I no tens manera de saber on és l’errada fàcilment: vas amb lupa, línia per línia (que van numerades). 

Els llenguatges de programació visual no substitueixen pas els llenguatges de codi, més aviat fan perdre la por i entendre les bases d’aquest món fascinant que és la programació.

Snap0-Intro2-Programacio-codi-JS-tall-codi2Snap0-Intro1-Programacio-visual-blocSnap4-Blocs-Avançats1-Sensors-Tocant-Vora-So-tall

LLATÍ COMPUTACIONAL

A mi sempre m’ha agradat molt parlar idiomes: és bonic poder-te comunicar amb quanta més gent millor… Ara, qui m’havia de dir a mi que, a més de parlar amb les persones, algun dia podria parlar amb les màquines!

Diguem que els llenguatges de programació són com les llengües llatines: si saps català és més fàcil aprendre francès; si saps català, espanyol i francès, segur que t’espaviles en italià i t’entens amb un portuguès o brasiler. La cosa és que si et familiaritzes amb un llenguatge de programació visual aprens les bases per aprendre’n d’altres.

Snap! és una adaptació d’Scratch (un projecte del Lifelong Kindergarten Group del MIT Media Lab) i també és una molt bona eina per introduir-se a les ciències de la computació: per començar a trastejar només cal saber llegir, escriure i comptar! Per mi, Scratch i Snap! són com dos germans: un és el famós (el gat Scratch, mascota del programa, a l’esquerra) i l’altre, l’espavilat (l’Alonzo, mascota d’Snap!, a la dreta ).

Scratch-vs-Snap

AUTORIA I LLICÈNCIA

Snap! va ser presentat per la Universitat de Califòrnia a Berkeley i està sent desenvolupat per Jens Mönig i Brian Harvey. A més, també hi han contribuït estudiants de la universitat i d’altres indrets.

Sense anar més lluny, la traducció d’Snap! al català és de Bernat Romagosa, gran desenvolupador i millor persona: fa poc, en Bernat va alliberar un text exquisit que recomano molt i molt per entendre la història dels llenguatges visuals de programació: “El zoo de computación”.

Al ser programari lliure, Snap! permet descarregar el codi font per adaptar-lo a les nostres necessitats, ajudar en la millorar de l’eina o, simplement, experimentar amb el programari. La llicència del programa d’Snap! és l’Affero General Public License (AGPL) i, per tant, és software lliure.

Com a curiositat, comentar que, abans, Snap! es deia BYOB («Build Your Own Blocks», construeix els teus propis blocs) però, com aquest acrònim també significa moltes altres coses en anglès, els seus creadors van decidir rebatejar-lo com a Snap!

D’això… que he vist que hi ha dues tipografies però ho deixaré així. Primer ho volia treure perquè no m’agradava però he decidit deixar-ho perquè m’és útil: em serveix de guia d’escriptura. ¿Estètica o funcionalitat? Vet aquí un dilema…

 Segueix al segon punt de la introducció “Transversalitat i món físic”.

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *