Squeak

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Squeak
linguaggio di programmazione
Logo originale del 1996 disegnato da Tim Rowledge[1]
AutoreAlan Kay, Dan Ingalls, Adele Goldberg
Data di origine1996
Ultima versione6.0-22104 (6 giugno 2022)
Utilizzolinguaggio general-purpose
ParadigmiProgrammazione procedurale ad oggetti
Tipizzazionedebole
Influenzato daSelf, Smalltalk, Simula, Lisp e Logo
Implementazione di riferimento
Licenzalicenza MIT
Sito websqueak.org/

Il linguaggio di programmazione Squeak è un dialetto di Smalltalk. È orientato agli oggetti, basato sulle classi e con il supporto alle riflessioni.

È derivato direttamente da Smalltalk-80 da un gruppo nella divisione Apple Computer che includeva alcuni degli sviluppatori originali di Smalltalk-80. Il suo sviluppo è stato continuato dallo stesso gruppo a Walt Disney Imagineering, dove era destinato ad essere utilizzato nei progetti Disney interni. Successivamente il gruppo ha proseguito il lavoro con il supporto da laboratori HP, SAP Labs e più di recente Y Combinator.

Squeak è multipiattaforma, cioè i programmi prodotti su una data piattaforma funzionano senza modifiche su tutte le altre piattaforme (come Windows, Linux e macOS). Il sistema Squeak include il codice per la generazione di una nuova versione della macchina virtuale (VM) su cui è in esecuzione. Include anche un simulatore VM scritto in Squeak. Per questi motivi, è facile da portare su altre piattaforme.

Gli sviluppatori[modifica | modifica wikitesto]

Dan Ingalls, importante contributore al progetto Squeak, ha scritto il paper su cui Squeak è costruito e costruito l'architettura per cinque generazioni del linguaggio Smalltalk.[2]

Squeak comprende molti degli elementi che Alan Kay ha proposto nel concetto Dynabook, formulato negli anni '60. Kay è un importante contributore al progetto Squeak. Squeak include quattro framework di interfaccia utente:

  • Un'implementazione di Morphic, l'interfaccia grafica diretta di manipolazione grafica di Self. Questa è l'interfaccia principale di Squeak.
  • Scripting di programmazione visiva basata su piastrelle in Etoys, basata su Morphic.
  • Una nuova interfaccia sperimentale chiamata Tweak. Nel 2001 è emerso che l'architettura Etoy di Squeak aveva raggiunto i limiti in quanto le infrastrutture di interfaccia Morphic potrebbero fare. Il ricercatore Hewlett-Packard Andreas Raab ha proposto di definire un "processo di script" e di fornire un meccanismo di pianificazione predefinito che evita diversi problemi più generali. [4] Ciò ha determinato una nuova interfaccia utente, proposta per sostituire l'interfaccia utente Squeak Morphic in futuro. Tweak ha aggiunto meccanismi di isole, messaggistica asincrona, giocatori e costumi, estensioni di lingua, progetti e script di piastrelle. [5] Il suo oggetto di sistema è basato su classe, ma agli utenti, durante la programmazione (scripting), agisce come se fosse prototipo. Gli oggetti Tweak vengono creati e eseguiti in Windows Tweak.
  • Un'interfaccia model-view-controller (MVC) è stata l'UI primaria nelle versioni Squeak 3.8 e precedenti. È derivato dall'originale interfaccia utente Smalltalk-80 che ha introdotto e diffuso il modello architettonico MVC [6]. MVC prende il nome dalle tre classi fondamentali del framework. Quindi, il termine "MVC" nel contesto di Squeak si riferisce ad entrambi i framework disponibili dell'interfaccia utente e al modello che segue il quadro. MVC è ancora previsto per i programmatori che hanno voluto utilizzare questo vecchio tipo di interfaccia.

Usi[modifica | modifica wikitesto]

Molti collaboratori di Squeak collaborano su Open Cobalt, un browser virtuale libero e open source e un toolkit di costruzione che si basa su Squeak.

Squeak viene utilizzato anche nel sistema operativo Nintendo ES[3] e per implementare il linguaggio di programmazione Scratch per i programmatori iniziali. Nel maggio 2011 è stato annunciato il sistema di conferenza e collaborazione di OpenQwaq basato su Squeak, una versione open source di Teleplace, sul blog Teleplace. [8]

Licenza[modifica | modifica wikitesto]

Squeak 4.0 e versioni successive possono essere scaricate senza alcun costo, incluso il codice sorgente, come un'immagine di macchine virtuali pre-installata sotto licenza MIT, ad eccezione di alcuni dei codici Apple originali, che sono regolati dalla licenza Apache.

Originariamente, Apple ha effettivamente rilasciato Squeak sotto una licenza denominata licenza Squeak. Mentre il codice sorgente era disponibile e la modifica è consentita, la licenza Squeak conteneva una clausola di indennizzo che impediva di qualificarsi come vero software libero e open source.

Nel 2006, Apple ha relicensato due volte Squeak. In primo luogo, nel mese di maggio, Apple ha utilizzato la propria licenza pubblica Apple Source, che soddisfa il concetto di Free Software Foundation della Free Software Foundation [9] e ha ottenuto l'approvazione ufficiale dell'Open Source Initiative [10] come licenza Open Source. La licenza pubblica di Apple, come risulta, non riesce a superare il terzo standard che le licenze Free e Open Source Software sono detenute: le Debian Free Software Guidelines promulgate dal progetto Debian, una influente distribuzione volontaria di Linux. Per consentire l'inserimento di Etoys nel progetto One Laptop Per Child, è stata eseguita una seconda relicensing utilizzando la licenza Apache. A questo punto è stato anche fatto uno sforzo per affrontare la questione del codice contribuito dai membri della comunità Squeak, che non era nel potere di Apple di relazionarsi unilateralmente.

Per ogni contributo concesso sotto la licenza Squeak dal 1996, è stata ottenuta una dichiarazione di relicensing che autorizza la distribuzione sotto la licenza MIT e, infine, nel marzo 2010, il risultato finale è stato rilasciato come Squeak 4.0, ora sotto licenze combinate MIT e Apache [11].

Squeak macchina virtuale[modifica | modifica wikitesto]

La macchina virtuale Squeak è una famiglia di macchine virtuali (VM) utilizzate nelle implementazioni di linguaggio di programmazione Smalltalk. Essi sono una parte essenziale di qualsiasi implementazione Smalltalk. Tutti sono software open-source. L'attuale VM è un sistema di traduzione dinamico ad alte prestazioni. Il codice pertinente viene mantenuto su GitHub presso OpenSmalltalk www.psykoboard.com

Note[modifica | modifica wikitesto]

  1. ^ Tim: Squeak Smalltalk, su rowledge.org. URL consultato il 28 febbraio 2016.
  2. ^ Dan Ingalls, Ted Kaehler, John Maloney, Scott Wallace e Alan Kay, Back to the Future: the story of Squeak, a practical Smalltalk written in itself, su portal.acm.org, ACM Digital Library, 1997. URL consultato il 12 giugno 2011.
  3. ^ Inside Nintendo's ES Open-Source Operating System, su gamasutra.com, Gamasutra, 4 dicembre 2007. URL consultato il 5 dicembre 2007.

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]