Scratch (informatica)

Da Wikipedia, l'enciclopedia libera.
Jump to navigation Jump to search
Scratch
linguaggio di programmazione
Scratchlogo.svg
AutoreMitchel Resnick
Data di origine2006
Ultima versione3.0
UtilizzoEducativo
ParadigmiProgrammazione a eventi, Programmazione imperativa
Tipizzazionedinamica
Estensioni comuni.sb (Scratch 1.4 e versioni precedenti), .sb2 (Scratch 2.0), .sb3 (Scratch 3.0)
Influenzato daLogo, Smalltalk, HyperCard, StarLogo, AgentSheets, Etoys
Ha influenzatoPocket Code
Implementazione di riferimento
Sistema operativoWindows, macOS e GNU/Linux
LicenzaGPLv2 e Scratch Source Code License
Sito webscratch.mit.edu

Scratch è un ambiente di programmazione gratuito, con un linguaggio di programmazione di tipo grafico. Tale linguaggio, ispirato alla teoria costruzionista dell'apprendimento e progettato per l'insegnamento della programmazione tramite primitive visive, è adatto a studenti, insegnanti e genitori ed è utilizzabile per progetti pedagogici e di intrattenimento che spaziano dalla matematica alla scienza, consentendo la realizzazione di simulazioni, visualizzazione di esperimenti, animazioni, musica, arte interattiva e semplici giochi.

Storia[modifica | modifica wikitesto]

Il gatto di Scratch, la mascotte ufficiale

Il gruppo Lifelong Kindergarten del MIT Media Lab, guidato da Mitchel Resnick, e la sua società di consulenza, Playful Invention Company, con sede a Montreal, co-finanziato da quest'ultimo con Brian Silverman e Paula Bonta, ha sviluppato la prima versione desktop di Scratch nel 2003. Dal 2007, i progetti possono essere condivisi online con altri utenti, i quali possono apportare modifiche in modo cooperativo.

Il nome deriva dalla omonima tecnica dello scratch usata dagli artisti del giradischi, i turntablist, alludendo alla facilità con cui è possibile missare e remixare i progetti Scratch.

Da questa base si sono sviluppate altri progetti, per esempio Snap!, per aggiungere altre funzionalità non presenti nella versione di Scratch.[1]

Con l'introduzione della versione 2.0 di Scratch, avvenuta il 9 maggio 2013,[2] è diventato possibile definire blocchi utente all'interno di un progetto.[3] Inoltre, da questa data, il sito di Scratch viene rinnovato graficamente e fornisce un editor online che consente di creare e modificare i progetti direttamente sul sito. Sia la versione offline che quella online richiedono il supporto della tecnologia Adobe Flash.

Una variante di Scratch per bambini da 5 a 7 anni è stata sviluppata sotto il nome di ScratchJr[4] e rilasciata nel 2014.

La terza versione di Scratch è stata annunciata nel 2016[5] e rilasciata ufficialmente il 2 gennaio 2019.[6] Questa versione è la prima ad essere compatibile anche con la maggior parte dei dispositivi mobili, in quanto è stata sviluppata in HTML5 e JavaScript.

Descrizione[modifica | modifica wikitesto]

Linguaggio[modifica | modifica wikitesto]

Esempio di script con tre blocchi che esegue Hello, World!

Scratch prevede un approccio orientato agli oggetti (denominati Sprite) ed un linguaggio di programmazione che consente di elaborare storie interattive, giochi, animazioni, arte e musica. Inoltre permette di condividere i progetti con altri utenti del web.

L'idea di questo linguaggio è che anche i bambini o le persone inesperte di linguaggi di programmazione possono imparare importanti concetti di calcolo matematico, a ragionare in modo sistematico, a pensare in modo creativo e a lavorare in gruppo.

Le istruzioni fondamentali del linguaggio di Scratch sono implementate in blocchi colorati creati per agganciarsi l'un l'altro e formare delle colonne. Ognuna di queste colonne di blocchi viene chiamata script e fanno parte del codice vero e proprio che viene interpretato dalla macchina.

Categoria Note    Categoria Note
  Movimento Muove gli Sprite e cambia gli angoli   Situazioni Blocchi di gestione degli eventi e da porre come testata.
  Aspetto Controlla la visibilità, i costumi e l'output   Controllo Istruzioni se e strutture ciclo/loop
  Suono Esegue brani audio e sequenze audio programmabili   Sensori Sensori per gli Sprite e input utente
  Penna Supporto al disegno e alla grafica (Dalla versione 3.0 questa categoria non è automaticamente presente, in quanto va aggiunta manualmente dalla sezione "Estensioni")   Operatori Operatori matematici e booleani.
  Variabili e liste Uso di variabili e assegnazione di valori   Altri blocchi Procedure personalizzate (funzioni) e controllo di periferiche.

Ambiente[modifica | modifica wikitesto]

L'ambiente Scratch è disponibile sia via web, sul sito ufficiale scratch.mit.edu, sia come software utilizzabile offline, chiamato Scratch Desktop, disponibile per le piattaforme Windows, MacOS. Al momento non esiste una versione ufficiale [7] di Scratch Desktop per GNU/Linux. L'ultima versione stabile è la versione 3.6.0. pubblicata nel 2019.

Interfaccia utente[modifica | modifica wikitesto]

Scratch 2.0 all'avvio

L'area posta in alto a sinistra è il palcoscenico o "stage area", dove compaiono i risultati e il codice prende vita (es. animazioni, grafica, ecc., tutto in dimensioni piccole, normali o a pieno schermo) mentre gli Sprite, gli oggetti grafici su cui agisce il codice, sono elencati in basso.

Selezionando uno Sprite è possibile associarvi i blocchi di codice, selezionabili dall'area Script, dove sono raggruppati per argomento, trascinandoli nell'area del codice. Se uno Sprite ha associato del codice questo viene visualizzato nell'area a destra ed è possibile modificarlo. Qualsiasi blocco può essere provato con un doppio clic in modo da vederne in anteprima l'azione.

A lato della cartella Script, ve ne sono altre due per Costumi e Suoni. Una barra espandibile a destra è dedicata alla guida.

Le aree sono state riorganizzate nella versione 2.0.[8]

Comunità[modifica | modifica wikitesto]

Scratch 3.0 GUI.png

Lo slogan della comunità online di Scratch recita "Immagina, Programma, Condividi", sottolineando l'importanza della condivisione e degli aspetti sociali della creatività nella filosofia alla base di Scratch.

I progetti Scratch, essendo a codice aperto, sono liberamente modificabili e utilizzabili per creare nuovi progetti. I progetti possono essere inviati direttamente dal programma al sito web di Scratch, e qualsiasi membro della comunità può scaricarne il codice per studiarlo o modificarlo in un nuovo progetto. I membri possono inoltre creare gallerie di progetti, commentare, taggare e aggiungere ai preferiti. Tutti i progetti sul sito sono condivisi con licenza Creative Commons "Share-Alike" e riprodotti su un browser (utilizzando Flash Player).

Il sito web riceve quasi 10 milioni di visite al mese e al 2 gennaio 2013 i membri registrati sono 1.349.093 (di cui 402.697 hanno condiviso progetti), per un totale di più di 4.200.000 progetti condivisi (più di un progetto inviato al minuto). Il sito web organizza periodicamente il "Scratch Design Studio", competizione per incoraggiare la creazione e condivisione di progetti dalla grafica elementare.

Nel 2008, la piattaforma della comunità online di Scratch (denominata "ScratchR[9]") ha ricevuto una menzione onoraria all'Ars Electronica Prix.

Esiste anche una comunità online per educatori, denominata ScratchEd.

Note[modifica | modifica wikitesto]

  1. ^ BYOB homepage, University of California, Berkeley.
  2. ^ (EN) Scratch 2.0 will be released on May 9, su scratch.mit.edu, 24 aprile 2013. URL consultato il 2 febbraio 2021.
  3. ^ (EN) John Biggs, Kids' Programming Tool Scratch Now Runs In The Browser, su TechCrunch, 10 maggio 2013. URL consultato il 2 febbraio 2021.
  4. ^ Informazioni su ScratchJr, su scratchjr.org.
  5. ^ Development of Scratch 3.0 - Scratch Wiki, su en.scratch-wiki.info. URL consultato il 2 febbraio 2021.
  6. ^ Scratch 3.0 - Scratch Wiki, su en.scratch-wiki.info. URL consultato il 2 febbraio 2021.
  7. ^ Download Scratch
  8. ^ Mitchel Resnick, Andrés Hernández, Natalie Rusk, Evelyn Eastmond, Karen Brennan, Amon Millner, Eric Rosenbaum, Jay Silver, Brian Silverman, Yasmin Kafai e John Maloney, Scratch: Programming for All, in Communications of the ACM, vol. 52, n. 11, November 2009, pp. 60–67, DOI:10.1145/1592761.1592779. URL consultato il 25 gennaio 2014 (archiviato dall'url originale il 5 luglio 2017).
  9. ^ ScratchR - Scratch Wiki, su en.scratch-wiki.info. URL consultato il 29 ottobre 2020.

Voci correlate[modifica | modifica wikitesto]

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

Controllo di autoritàLCCN (ENsh2008006648 · GND (DE7860906-9