Squeak

linguaggio di programmazione

Il linguaggio di programmazione Squeak è un dialetto di Smalltalk. È orientato agli oggetti, basato sulla classe e riflettente.

Squeak
linguaggio di programmazione
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/

È stato derivato direttamente da Smalltalk-80 da un gruppo di 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 si è trasferito per essere supportato da laboratori HP, SAP Labs e più di recente Y Combinator.

Squeak è cross-platform. I programmi prodotti su una piattaforma funzionano bit-identici su tutte le altre piattaforme e le versioni sono disponibili per molte piattaforme, comprese le evidenti versioni di Windows / macOS / linux. 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, è facilmente trasferito.

Gli sviluppatori

Dan Ingalls, importante contributore al progetto Squeak, ha scritto la carta su cui Squeak è costruito e costruito l'architettura per cinque generazioni del linguaggio Smalltalk.

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 modello-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

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[1] 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

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

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

Altri progetti

Note

  1. ^ Inside Nintendo's ES Open-Source Operating System, su gamasutra.com, Gamasutra, 4 dicembre 2007. URL consultato il 5 dicembre 2007.