Snap! (programazio-lengoaia)

Snap! hezkuntzara zuzendutako bloke bidezko programazio-lengoaia grafiko libre bat da. Ideia matematiko eta konputazionalak ikasiz animazioak, bideo-jokoak, istorio interaktiboak eta abar sortzeko aukera ematen du. Snap! Scratchen inspiratuta dago baina programazioaren munduan lehen pausoak emateko egokia izateaz gain bigarren hezkuntzan eta unibertsitatean erabilgarri egiten duten ezaugarri gehigarri aurreratuak ditu. JavaScript erabiliz garatua dago eta web nabigatzailean exekutatzen da.

Historia

Jens Mönigek Scratch ezagutzen du 
2007an Jens Mönig alemaniarrak Scratch proiektua ezagutu zuen. Garai hartan abokatua zen baina 10 urte lehenago Smalltalk garatzaile bezala lan egin zuen IBMn, erlazio legalak hobeto ulertzeko sistema grafiko bat garatzen. Scratch Smalltalk programazio-lengoaiaren Squeak dialektoan garatua zegoen eta lengoaiaren potentzial osoa erabiltzen zuen proiektu bakarretakoa zen. Jens liluratuta geratu zen Scratchen garapen ingurunearekin: "Inoiz ikusi dudan gauzarik ederrena da".

Jens bere denbora librean Scratchekin proiektuak garatu eta Scratch komunitatearen foroan parte hartzen hasi zen. Lan ona egiten ari zela ikusita MITeko Scratch taldearekin bat egitera gonbidatu zuten, komunitateko moderatzaile bezala.

Chirp 
2008an Jens Mönigek Chirp izeneko Scratchen mod bat argitaratu zuen. Scratchen 1.2.1 bertsioarekin bateragarria zen eta komunitatetik sortutako iradokizun eta ideiei bidea emateko asmoa zuen.

BYOB (Build Your Own Blocks)

1.0 bertsioa 
2008ko urrian BYOB (Build Your Own Blocks, eraiki zure blokeak ingelesez) izeneko Scratchen hedapen esperimentalaren prototipoa argitaratu zuen Jens Mönigek. Izenak dioen bezala erabiltzaileei bloke pertsonalizatuak sortzeko aukera eskaintzen zien, modu horretan programazioko hainbat kontzeptu garrantzitsu ikasteko bidea emanez:

 Prozedura eta funtzioak definitzea
 Parametroak pasatzea
 Prozedura/funtzio barneko aldagaiak
 Errekurtsioa
 Atomizitatea

BYOB 1.0 Scratch 1.3 bertsioan oinarrituta zegoen.

2.0 bertsioa 
2009ko abuztuaren 30ean Jens Mönigek Scratch 1.4n oinarritutako BYOB 2.0 bertsioa argitaratu zuen. Berrikuntza nagusiak hauek izan ziren:

 Sprite habiagarriak sortzeko aukera ematea (egitura errekurtsioa)
 Bloke pertsonalizatuei egindako hobekuntzak (errekurtsio funtzionala)
 Bloke ez-pertsonalizatuen blokeak ikuskatu eta Smalltalk kodea editatzeko aukera

Chirp blogean argitaratu zuenez harrituta eta pixka bat beldurtuta zegoen BYOB izaten ari zen harrera onagatik eta munduan zehar bigarren hezkuntzan eta unibertsitatean erabiltzen hasi zirelako.

3.0 bertsioa 
2009ko udan Berkeleyko Brian Harvey eta Dan Garcia informatikako irakasleek “CS10 - The Beauty and Joy of Computing” izeneko kurtso pilotu batean erabiltzeko BYOBen bertsio bat eskatu zioten Jens Mönigi. Harvey eta Mönig lehen mailako prozedurei buruz eztabaidan hasi ziren. Bien artean BYOB hobetzeko esperimentuak egiten hasi ziren. LISP programazio-lengoaiaren Scheme dialektotik hartutako dozena bat bloke sortu zituzten eta Scratchen barneko funtzionamenduari eta interfazeari aldaketa batzuk egin zizkioten. Helburua Scratchen jatorrizko hartzaileez gain maila aurreratuagoko ikasleentzat ere erabilgarri bihurtzea zen. Horrela sortu zen 2010eko abuztuaren 6an argitaratu zen BYOB 3.0 bertsioa.

Berrikuntza nagusiak hauek izan ziren:

 Goi ordenako funtzioen tresna-liburutegia
 Lambda, closure osoa barne (bloke pertsonalizatu anonimoak)
 Zerrenden zerrendak
 Prozedura global eta lokalak
 Structure and interpretation of computer programs (SICP) liburuaren estiloko objektuetara bideratutako programazioa
 Egoera iraunkorreko proiektuak, Smalltalk estiloko irudietan oinarritutako programazioa
 Erreferentzia eskuliburu eta tutorial berriak

3.1 bertsioa 

3.1 bertsioa 2011ko maiatzean argitaratu zuten Harvey eta Mönigek eta berrikuntza hauek zituen:

 Lehen mailako sprite-ak
 Objektu interfaze orokortua
 Prototipo herentzia

Bertsio honetan BYOBekin batera Snap! izena erabiltzen hasi ziren, baina 4.0 bertsioa izan zen ofizialki Snap! deitutako lehena.

Snap! 
2010eko udako Scratch konferentzian Jens Mönig eta Brian Harvey Scratch/BYOB zuzenean web nabigatzailean nola exekutatu eztabaidatzen hasi ziren MITeko MediaLab-eko kideekin. Brian Silvermanek JavaScript begiratzea gomendatu zien, "Scheme nabigatzailean" moduko zerbait zela esanez. Konferentziaren azken egunean Mönifg eta Harveyk nabigatzaileen teknologian egindako aurrerapenei esker DOMa eta CSSa albo batera utzi eta Canvas elementua erabil ote zezaketen galdetu zioten beren buruari.

Jens Mönigek JavaScript ikasi nahi zuen. Asmo horrekin eta BYOB 4 (Snap! izango zena) web nabigatzaileetara eramateko erabilgarria izango zelakoan, Squeaken erabiltzailearen interfazeak sortzeko erabiltzen den Morphic sistema grafikoa JavaScript eta Canvas elementura egokitzen hasi zen. 2011ko urtarrilaren 5ean argitaratu zuen Morphic.js-ren lehen bertsioa, MIT lizentziarekin.

Jens Mönig eta Brian Harveyk Scratch 1.4ren itxura eta BYOBen funtzionalitate gehigarriak zituen garapen berri bat hasi zuten JavaScript erabiliz eta Snap! deitu zuten. Izen aldaketaren arrazoia zenbait irakasleri BYOB izen desegokia iruditzea izan zen, BYOBek ingelesez beste esanahi bat duelako, Bring Your Own Bottle/Beer, ekarri zure botila/garagardoa). Web nabigatzaileetan erabiltzeko aukera emanez hezkuntzan erabiltzea erraztu nahi zuten.  Plataforma-anitza bihurtzeaz gain programa berri bat instalatu beharra saihesten zuten. Hori abantaila bat zen, ikastetxeetako IKT departamenduek ezagutzen ez zuten software berri bat instalatzeari trabak jartzen zizkiotela ikusi baitzuten.

2012ko irailak 17an Snap! 4.0 Alpha iragarri zuten blogean. Garapen berria BYOB3 baino 11 aldiz azkarragoa zen.

Snap! 4.0 "Walthan" 2015eko maiatzak 1ean argitaratu zuten.

2018ko uztailaren 9an argitaratutako 4.2.1 bertsiotik aurrera euskaraz erabil daiteke.

Zabalpena 
2010ean Kaliforniako Unibertsitatea Berkeleyn “CS10 - The Beauty and Joy of Computing” kurtsoan BYOB erabiltzen hasi ziren. 2012ko udazkenaz geroztik Snap! erabiltzen dute. Ikasleen erdiak baino gehiago emakumezkoak izan ohi dira, adibidez, 2017ko udaberrian %60 ziren.

Lizentzia 
Snap!-ek GNU Affero General Public License v3.0 (AGPL) lizentzia du.

Erreferentziak

Ikus, gainera 

 Scratch
 Snap4Arduino

Kanpo estekak 

 Webgune ofiziala
 Iturburu kodea
 Gidaliburu ofiziala (PDF)

Software librea
Programazio lengoaiak