Smalltalk: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m →Programma di esempio: tag source deprecati, replaced: <source lang= → <syntaxhighlight lang=, </source> → </syntaxhighlight> |
Recupero di 1 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0.9.5 |
||
(7 versioni intermedie di 6 utenti non mostrate) | |||
Riga 14:
== Storia ==
Sviluppato allo [[Xerox PARC]] da [[Alan Kay]], [[Dan Ingalls]], [[Ted Kaehler]], [[Adele Goldberg]], e altri durante gli [[Anni 1970|anni settanta]], Smalltalk ha pesantemente influenzato altri linguaggi come [[Objective C]], [[Linguaggio C Sharp|C#]], [[Actor (linguaggio)|Actor]], [[Java (linguaggio di programmazione)|Java]], [[JavaScript]] e [[Ruby (linguaggio di programmazione)|Ruby]]. Molti concetti attualmente impiegati nello sviluppo del software (es. ''[[design patterns]]'', ''[[extreme programming]]'', ''[[refactoring]]'') derivano dalla comunità Smalltalk.
Smalltalk ha rappresentato un autentico cambio di paradigma rispetto al tradizionale modello procedurale, sostituendo al paradigma tradizionale di [[John von Neumann|Von Neumann]] (basato sulla separazione dati/programmi) un nuovo paradigma basato sul concetto di oggetto, che contiene, in modo inscindibile, sia dati che programmi. L'elaborazione quindi non è più descritta da una procedura, ma è ottenuta da una "simulazione" del mondo, di cui gli oggetti sono un modello.▼
Questo cambio radicale non è stato facilmente assimilato dai programmatori tradizionali, abituati a linguaggi come il [[COBOL]] o il [[FORTRAN]]. I linguaggi derivati sopracitati hanno provveduto a creare un ponte tra il vecchio ed il nuovo paradigma. Tuttavia, questa mediazione ha avuto un costo sulle caratteristiche dei linguaggi stessi, che non raggiungono
▲Smalltalk ha rappresentato un autentico cambio di paradigma rispetto al tradizionale modello procedurale, sostituendo al paradigma tradizionale di Von Neumann (basato sulla separazione dati/programmi) un nuovo paradigma basato sul concetto di oggetto, che contiene, in modo inscindibile, sia dati che programmi.
Questa difficoltà di passaggio da un paradigma all'altro (peraltro ben nota: si pensi, come esempio estremo, al passaggio dai numeri romani a quelli arabi), unitamente al fenomenale sviluppo delle [[applicazione web|applicazioni Web]] (alle quali Smalltalk non era particolarmente orientato) ha fatto ritenere a molti che Smalltalk fosse un linguaggio morto. Nella realtà non è così: la comunità degli utenti Smalltalk è certamente ridotta ma molto attiva e continua a sviluppare applicazioni innovative sfruttando al meglio le caratteristiche di Smalltalk. Si guardino, ad esempio, i [[framework per applicazioni web]] Seaside<ref>{{cita web|url=http://www.seaside.st|titolo=Seaside|sito=Seaside|lingua=en}}</ref>, AIDA<ref>{{cita web|url=http://www.aidaweb.si/|titolo=Aida|sito=Aidaweb|lingua=en|accesso=18 luglio 2020|dataarchivio=28 novembre 2017|urlarchivio=https://web.archive.org/web/20171128180906/http://www.aidaweb.si/|urlmorto=sì}}</ref> o applicazioni futuristiche come Scratch<ref>{{cita web|url=https://www.scratch.mit.edu/|titolo=Scratch|sito=Scratch|lingua=en}}</ref>, Sophie<ref>{{cita web|url=http://opensophie.org/|titolo=Sophie|sito=Open Sophie|lingua=en|accesso=19 maggio 2018|dataarchivio=5 maggio 2009|urlarchivio=https://web.archive.org/web/20090505005034/http://opensophie.org/|urlmorto=sì}}</ref> o Cobalt<ref>{{cita web|url=http://www.opencobalt.net/|titolo=Cobalt|sito=Open Cobalt|lingua=en|accesso=18 gennaio 2019|dataarchivio=19 gennaio 2019|urlarchivio=https://web.archive.org/web/20190119174337/http://www.opencobalt.net/|urlmorto=sì}}</ref>.
▲Tuttavia, questa mediazione ha avuto un costo sulle caratteristiche dei linguaggi stessi, che non raggiungono certamente le caratteristiche di eleganza, semplicità ed efficienza di Smalltalk di cui hanno, più o meno, saccheggiato i concetti innovativi.
▲Inoltre, dal 2008 è iniziato il progetto di creazione del nuovo ambiente DNG (Dolphin Next Generation) [https://web.archive.org/web/20130601003806/http://dng.st/] destinato ad unificare due dialetti Smalltalk (VSE di Digitalk e Dolphin di Object Arts) e creare un nuovo ambiente di sviluppo adatto ai prevedibili sviluppi informatici dei prossimi anni.
== Descrizione ==
Smalltalk è stato creato come un linguaggio per sostenere "un nuovo mondo" di [[programmazione (informatica)|programmazione]], ovvero come "la simbiosi dell'umano con il calcolatore", come chiaramente espresso in questo passaggio:
{{Q|[...] Chiunque vorrebbe poter programmare utilizzando un dispositivo alla stregua di un libro/foglio per gli appunti in un modo non certo possibile su un sistema di terminali collegati ad un grosso sistema di calcolo; milioni di potenziali utenti avrebbero il desiderio che l'interfaccia utente potesse trasformarsi in un ambiente autoapprendente, seguendo le linee educative ideate da [[Maria Montessori|Montessori]] e da [[Jerome Bruner|Bruner]]; per le grosse attività di programmazione, la riduzione della complessità, l'utente finale vorrebbe che i dati e le relative strutture di controllo, fossero letteralmente eliminate, in favore di uno schema più simile a quello biologico ove tutte le cellule sono tra di loro separate, con l'unica possibilità di interagire tra di loro solo tramite messaggi, in modo da imitare qualsiasi comportamento richiesto.<br />Le prime versioni di Smalltalk volevano essere la prima risposta completa a questo nuovo paradigma, legato anche alle caratteristiche dell'hardware, dei linguaggi e delle interfacce utente in quel momento disponibili. È diventato un primo esemplare del nuovo modo di programmare, in parte perché stavamo provando per una variazione nel nuovo paradigma di [[Thomas Kuhn|Kuhn]] sulle strutture-a, in quello stesso spirito di chi ha inventato la stampa e quindi generando una posizione di estremismo che quasi ha forzato questo nuovo stile.|Traduzione non ufficiale da ''{{cita|The Early History of Smalltalk}}''}}
Line 47 ⟶ 34:
Transcript show: 'Hello World!'
</syntaxhighlight>
==Note==
<references/>
== Bibliografia ==
* {{RivistaVG|mc|105|292-295|3|1991|titolo=Smalltalk/V: aspetti sintattici}} La rubrica sullo Smalltalk continua nei numeri successivi fino al n° 110.
== Altri progetti ==
{{interprogetto}}
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC}}
*{{en}} [http://www.esug.org ESUG] European Smalltalk User Group
*{{en}} [http://www.stic.st/ STIC] Smalltalk Industry Council
|