Squeak: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
recupero info mancanti dalla versione inglese parte #1
FrescoBot (discussione | contributi)
m Bot: numeri di pagina nei template citazione
 
(8 versioni intermedie di 3 utenti non mostrate)
Riga 1:
{{C|chiarire e contestualizzare|informatica|maggio 2017}}
{{F|linguaggi di programmazione|maggio 2017}}
{{W|informatica|maggio 2017}}
{{S|linguaggi di programmazione}}
{{Linguaggio di programmazione
|nome = Squeak
Line 17 ⟶ 13:
È 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|HP Labs]], [[SAP (azienda)|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<ref name="miranda_2018">{{Cita libro|url_capitolourlcapitolo=https://doi.org/10.1145/3281287.3281295 |nome1=Eliot |cognome1=Miranda |nome2=Clément |cognome2=Béra |nome3=Elisa |cognome3=Gonzalez Boix |nome4=Dan |cognome4=Ingalls |titolo=Proceedings of the 10th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages |capitolo=Two decades of smalltalk VM development: live VM development through simulation tools |publishereditore=ACM Digital Library |anno=2018 |mese=11 |giorno=4 |lingua=en |paginepp=57–6657-66 |doi=10.1145/3281287.3281295 |isbn=978-14503-6071-5 |oclc=1159174710 |s2cid=53116661 |url=https://hal.archives-ouvertes.fr/hal-01883380/file/hal.pdf |urlarchivio=https://ghostarchive.org/archive/20221009/https://hal.archives-ouvertes.fr/hal-01883380/file/hal.pdf |dataarchivio=9 ottobre 2022-10-09 |urlmorto=no |accesso=9 novembre 2020-11-09}}</ref> scritto in Squeak. Per questi motivi, è facile da [[Porting|portare]] su altre piattaforme.
 
==Gli sviluppatori==
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.<ref>{{Cita pubblicazione|url=https://portal.acm.org/citation.cfm?id=263754&coll=portal&dl=ACM |nome=Dan |cognome=Ingalls |nome2=Ted |cognome2=Kaehler |nome3=John |cognome3=Maloney |nome4=Scott |cognome4=Wallace |nome5=Alan |cognome5=Kay |titolo=Back to the Future: the story of Squeak, a practical Smalltalk written in itself |rivista=ACM SIGPLAN Notices |editore=ACM Digital Library |anno=1997 |lingua=en |volume=32 |numero=10 |paginepp=318–326318-326 |doi=10.1145/263700.263754 |accesso=12 giugno 2011}}</ref>
 
Squeak comprende molti degli elementi che [[Alan Kay]] ha proposto nel concetto [[Dynabook]], formulato negli anni '60.
 
== Framework di interfaccia utente ==
Squeak include quattro [[framework]] di [[interfaccia utente]]:
 
* Un'implementazione di [[Morphic (software)|Morphic]], l'interfaccia grafica di [[manipolazione diretta]] di [[Self (linguaggio di programmazione)|Self]]. Questa è l'interfaccia principale di Squeak.
* Scripting di [[Linguaggio di programmazione visuale|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.<ref>{{Cita [4]web |url=http://tweakproject.org/ABOUT/FAQ/OriginalTweakMemo/ |titolo=Tweak: OriginalTweakMemo |data=6 luglio 2001 |lingua=en |accesso=12 giugno 2011 |urlarchivio=https://web.archive.org/web/20111002012532/http://tweakproject.org/ABOUT/FAQ/OriginalTweakMemo/ |urlmorto=sì}}</ref> 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.<ref>{{Cita [5]web |url=http://tweakproject.org/TECHNOLOGY/Whitepapers/ |titolo=Tweak: Whitepapers |data= |lingua=en |accesso=12 giugno 2011 |urlarchivio=https://web.archive.org/web/20111002012629/http://tweakproject.org/TECHNOLOGY/Whitepapers/ | urlmorto=sì}}</ref> Il suo oggettosistema di oggetti di sistema è basato su classeclassi, ma agli utenti, durante la programmazione (scripting), agisce come se fosse prototipo[[Programmazione orientata ai prototipi|basato su prototipi]]. Gli oggetti Tweak vengono creati e eseguiti innelle finestre del Windowsprogetto 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 architettonicodi architettura MVC.<ref>{{Cita [6]web |url=http://st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.html |nome=Steve |cognome=Burbeck |titolo=How to use Model-View-Controller (MVC) |sito=st-www.cs.uiuc.edu |editore= |data=4 aprile 1997 |lingua=en |accesso=12 giugno 2011 |urlarchivio=https://web.archive.org/web/20090801040629/http://st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.html |urlmorto=sì}}</ref> 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 [[Mondo virtuale|virtuale]] [[Software libero|libero]] e [[open source]] e un [[toolkit]] di costruzione che si basa su Squeak.
 
La prima versione di [[Scratch (informatica)|Scratch]] fu implementata in Squeak.<ref>{{Cita web|titolo=Scratch| url=https://wiki.squeak.org/squeak/5833| lingua=en| accesso=23 marzo 2022}}</ref>
Squeak viene utilizzato anche nel sistema operativo Nintendo ES<ref name="gamasutra">{{Cita web|titolo= Inside Nintendo's ES Open-Source Operating System |url= http://www.gamasutra.com/php-bin/news_index.php?story=16503 |editore= Gamasutra |data= 4 dicembre 2007|accesso= 5 dicembre 2007 }}</ref> 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]
 
Squeak viene utilizzato anche nel sistema operativo Nintendo ES.<ref name="gamasutra">{{Cita web|titolo= Inside Nintendo's ES Open-Source Operating System| |url= http://www.gamasutra.com/php-bin/news_index.php?story=16503| |editoresito= Gamasutra| |data= 4 dicembre 2007| lingua=en| accesso= 5 dicembre 2007 }}</ref> 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]
 
Il sistema di conferenza e collaborazione [[OpenQwaq]] è basato su Squeak.<ref>{{Cita web|url=http://teleplace.wordpress.com/2011/05/03/moving-immersive-collaboration-forward/| titolo=Moving Immersive Collaboration Forward| data=3 maggio 2011| lingua=en}}</ref>
 
==Licenza==
Squeak 4.0 e versioni successive possono essere scaricate senza alcun costo, inclusocompreso il [[codice sorgente]], come un'immagine di macchineuna virtuali[[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 lale modificamodifiche èerano consentitaconsentite, la licenza Squeak conteneva una [[Risarcimento|clausola di indennizzo]] che impediva di qualificarsi come un vero [[Free and Open Source Software|software libero e open source]].
 
Nel 2006, Apple ha relicensato[[Cambio di licenza del software|cambiato licenza]] due volte a Squeak. In primo luogo, nel mese di maggio, Apple ha utilizzato la propria licenza pubblica [[Apple Public Source License]], che soddisfa il concetto di ''Free Software FoundationLicense'' della [[Free Software Foundation]]<ref>{{Cita [9]web|url=https://www.gnu.org/philosophy/apsl.html |titolo=FSF's Opinion on the Apple Public Source License (APSL) 2.0 |lingua=en |editore=Gnu.org |data=7 maggio 2011 |accesso=12 giugno 2011}}</ref> e ha ottenuto l'approvazione ufficiale dell'[[Open Source Initiative]]<ref>{{Cita [10]web|url=http://www.opensource.org/pressreleases/osi-clarifies-APSL.php |titolo=Clarification of the APSL: Press Releases OS Clarifies The Status Of The APSL |editore=Opensource.org |data=17 marzo 1999 |lingua=en |accesso=12 giugno 2011}}</ref> come licenza [[Openopen Sourcesource]]. La licenzaApple pubblicaPublic diSource AppleLicense, come risulta, non riesce a superare il terzo standard che le licenze Free e Open Source Software sono detenutetenute 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,]] è statastato eseguitaeseguito unaun secondasecondo relicensingcambio 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 relazionarsieffettuare il cambio di licenza unilateralmente.
 
Per ogni contributo concesso sotto la licenza Squeak dal 1996, è stata ottenuta una dichiarazione di relicensingcambio 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.<ref>{{Cita [11]web|url=http://www.h-online.com/open/news/item/Squeak-4-0-released-now-under-MIT-Apache-license-956267.html |editore=The H Open |titolo=Squeak 4.0 released - now under MIT/Apache license |data=16 marzo 2010 |lingua=en |accesso=12 giugno 2011}}</ref>
 
==Squeak macchinaMacchina virtuale Squeak==
La ''macchina virtuale Squeak'' è una famiglia di [[Macchina virtuale|macchine virtuali]] (VM) utilizzate nelle implementazioni didel linguaggio di programmazione [[Smalltalk]].<ref name="miranda_2018" /> EssiEsse sono una parte essenziale di una qualsiasi implementazione di Smalltalk. TuttiTutte sono software[[Software open- source]]. L'attuale VM è un sistema di traduzione dinamico ad alte prestazioni. Il codice pertinente viene mantenuto supresso GitHubil pressorepository OpenSmalltalk wwwsu GitHub.psykoboard<ref>{{Cita web|url=https://github.com/OpenSmalltalk/opensmalltalk-vm|titolo=OpenSmalltalk/opensmalltalk-vm}}</ref>
 
== Note ==
Riga 59:
 
{{Portale|informatica}}
 
[[Categoria:Linguaggi di programmazione orientati agli oggetti]]