Squeak
Squeak linguaggio di programmazione | |
---|---|
Logo originale del 1996 disegnato da Tim Rowledge[1] | |
Autore | Alan Kay, Dan Ingalls, Adele Goldberg |
Data di origine | 1996 |
Ultima versione | 6.0-22104 (6 giugno 2022) |
Utilizzo | linguaggio general-purpose |
Paradigmi | Programmazione procedurale ad oggetti |
Tipizzazione | debole |
Influenzato da | Self, Smalltalk, Simula, Lisp e Logo |
Implementazione di riferimento | |
Licenza | licenza MIT |
Sito web | squeak.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 Labs, SAP 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[2] 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 è basato e costruito l'architettura per cinque generazioni del linguaggio Smalltalk.[3]
Squeak comprende molti degli elementi che Alan Kay ha proposto nel concetto Dynabook, formulato negli anni '60.
Framework di interfaccia utente
[modifica | modifica wikitesto]Squeak include quattro framework di interfaccia utente:
- Un'implementazione di Morphic, l'interfaccia grafica di manipolazione diretta 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 il limite di 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 sistema di oggetti di sistema è basato su classi, ma agli utenti, durante la programmazione (scripting), agisce come se fosse basato su prototipi. Gli oggetti Tweak vengono creati e eseguiti nelle finestre del progetto 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 di architettura 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.
La prima versione di Scratch fu implementata in Squeak.[7]
Squeak viene utilizzato anche nel sistema operativo Nintendo ES.[8]
Il sistema di conferenza e collaborazione OpenQwaq è basato su Squeak.[9]
Licenza
[modifica | modifica wikitesto]Squeak 4.0 e versioni successive possono essere scaricate senza alcun costo, compreso il codice sorgente, come un'immagine di una macchina virtuale 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 propria licenza denominata licenza Squeak. Mentre il codice sorgente era disponibile e le modifiche erano consentite, la licenza Squeak conteneva una clausola di indennizzo che impediva di qualificarsi come un vero software libero e open source.
Nel 2006, Apple ha cambiato licenza due volte a Squeak. In primo luogo, nel mese di maggio, Apple ha utilizzato la propria Apple Public Source License, che soddisfa il concetto di Free Software License della Free Software Foundation[10] e ha ottenuto l'approvazione ufficiale dell'Open Source Initiative[11] come licenza open source. La Apple Public Source License, come risulta, non riesce a superare il terzo standard che le licenze Free e Open Source Software sono tenute a rispettare: 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 è stato eseguito un secondo cambio di licenza utilizzando la licenza Apache. A questo punto è stato anche fatto uno sforzo per affrontare la questione del codice contribuito dai membri della comunità di Squeak, visto che non era nel potere di Apple di effettuare il cambio di licenza unilateralmente.
Per ogni contributo concesso sotto la licenza Squeak dal 1996, è stata ottenuta una dichiarazione di cambio di licenza 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.[12]
Macchina virtuale Squeak
[modifica | modifica wikitesto]La macchina virtuale Squeak è una famiglia di macchine virtuali (VM) utilizzate nelle implementazioni del linguaggio di programmazione Smalltalk.[2] Esse sono una parte essenziale di una qualsiasi implementazione di Smalltalk. Tutte sono Software open source. L'attuale VM è un sistema di traduzione dinamico ad alte prestazioni. Il codice pertinente viene mantenuto presso il repository OpenSmalltalk su GitHub.[13]
Note
[modifica | modifica wikitesto]- ^ Tim: Squeak Smalltalk, su rowledge.org. URL consultato il 28 febbraio 2016.
- ^ a b (EN) Eliot Miranda, Clément Béra, Elisa Gonzalez Boix e Dan Ingalls, Two decades of smalltalk VM development: live VM development through simulation tools, in Proceedings of the 10th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages (PDF), ACM Digital Library, 4 novembre 2018, pp. 57–66, DOI:10.1145/3281287.3281295, ISBN 978-14503-6071-5, OCLC 1159174710. URL consultato il 9 novembre 2020 (archiviato il 9 ottobre 2022).
- ^ (EN) 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, in ACM SIGPLAN Notices, vol. 32, n. 10, ACM Digital Library, 1997, pp. 318–326, DOI:10.1145/263700.263754. URL consultato il 12 giugno 2011.
- ^ (EN) Tweak: OriginalTweakMemo, su tweakproject.org, 6 luglio 2001. URL consultato il 12 giugno 2011 (archiviato dall'url originale il 2 ottobre 2011).
- ^ (EN) Tweak: Whitepapers, su tweakproject.org. URL consultato il 12 giugno 2011 (archiviato dall'url originale il 2 ottobre 2011).
- ^ (EN) Steve Burbeck, How to use Model-View-Controller (MVC), su st-www.cs.uiuc.edu, 4 aprile 1997. URL consultato il 12 giugno 2011 (archiviato dall'url originale il 1º agosto 2009).
- ^ (EN) Scratch, su wiki.squeak.org. URL consultato il 23 marzo 2022.
- ^ (EN) Inside Nintendo's ES Open-Source Operating System, su Gamasutra, 4 dicembre 2007. URL consultato il 5 dicembre 2007.
- ^ (EN) Moving Immersive Collaboration Forward, su teleplace.wordpress.com, 3 maggio 2011.
- ^ (EN) FSF's Opinion on the Apple Public Source License (APSL) 2.0, su gnu.org, 7 maggio 2011. URL consultato il 12 giugno 2011.
- ^ (EN) Clarification of the APSL: Press Releases OS Clarifies The Status Of The APSL, su opensource.org, 17 marzo 1999. URL consultato il 12 giugno 2011.
- ^ (EN) Squeak 4.0 released - now under MIT/Apache license, su h-online.com, The H Open, 16 marzo 2010. URL consultato il 12 giugno 2011.
- ^ OpenSmalltalk/opensmalltalk-vm, su github.com.
Altri progetti
[modifica | modifica wikitesto]- Wikimedia Commons contiene immagini o altri file su Squeak
Collegamenti esterni
[modifica | modifica wikitesto]- Sito ufficiale, su squeak.org.
- (EN) Squeak, su GitHub.
- Repository sorgenti di Squeak, su github.com.