Elm (linguaggio di programmazione): differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
|  così forse è leggermente più chiaro |  Funzionalità collegamenti suggeriti: 3 collegamenti inseriti. | ||
| Riga 16: }} '''Elm''' è un [[linguaggio di programmazione]] ___domain-specific per creare [[GUI|interfacce utente grafiche]] di tipo declarativo basate su [[browser web]]. Elm è puramente [[funzionale]], ed è sviluppato dando priorità all'[[usabilità]], alle prestazioni, e alla [[Robustezza (informatica)|robustezza]]. Sostiene di evitare praticamente qualunque eccezione in fase di esecuzione <ref>{{Cita web|url=https://elm-lang.org/|titolo=Elm home page}}</ref>, grazie alle verifiche statiche del [[compilatore]] Elm. == Storia == Elm è stato progettato inizialmente da Evan Czaplicki come progetto di tesi nel 2012.<ref>[https://elm-lang.org/assets/papers/concurrent-frp.pdf Elm: Concurrent FRP for Functional GUIs]</ref> I primo rilascio di Elm era accompagnato da molti esempi e da un editor online che rendeva facile provare il linguaggio in un browser Web.<ref>{{Cita web |url=https://elm-lang.org/try# |titolo=Elm's Online Editor |accesso=4 gennaio 2017 |urlarchivio=https://web.archive.org/web/20170521144831/http://elm-lang.org/try# |dataarchivio=21 maggio 2017 |urlmorto=sì }}</ref> Evan Czaplicki è entrato a far parte di [[Prezi]] nel 2013 per lavorare su Elm,<ref>{{Cita web |url=https://elm-lang.org/blog/announce/Elm-and-Prezi.elm |titolo=Elm joins Prezi |accesso=1 maggio 2019 |urlarchivio=https://web.archive.org/web/20150524043516/http://elm-lang.org/blog/announce/Elm-and-Prezi.elm |dataarchivio=24 maggio 2015 |urlmorto=sì }}</ref> e nel 2016 si è spostato in [[NoRedInk]] come ingegnere [[Open source|Open Source]], dando inoltre vita alla Elm Software Foundation.<ref>[https://elm-lang.org/blog/new-adventures-for-elm New Adventures for Elm]</ref> L'implementazione iniziale del compilatore Elm genera codice HTML, CSS, e JavaScript.<ref>[https://github.com/elm-lang/Elm Elm compiler source code]</ref> L'insieme di strumenti di base si è continuato a espandere, e adesso comprende un [[interprete interattivo]],<ref>{{Cita web |url=https://elm-lang.org/blog/announce/Repl.elm |titolo=Elm REPL announcement |accesso=1 maggio 2019 |urlarchivio=https://web.archive.org/web/20150531012310/http://elm-lang.org/blog/announce/Repl.elm |dataarchivio=31 maggio 2015 |urlmorto=sì }}</ref> un gestore di pacchetti,<ref>{{Cita web |url=https://elm-lang.org/blog/announce/PackageManager.elm |titolo=Elm Package Manager announcement |accesso=1 maggio 2019 |urlarchivio=https://web.archive.org/web/20160313050335/http://elm-lang.org/blog/announce/packagemanager.elm |dataarchivio=13 marzo 2016 |urlmorto=sì }}</ref> un debugger che consente viaggi nel tempo,<ref>{{Cita web |url=http://debug.elm-lang.org/# |titolo=Elm's Time-Traveling Debugger |accesso=4 gennaio 2017 |urlarchivio=https://web.archive.org/web/20170503192633/http://debug.elm-lang.org/# |dataarchivio=3 maggio 2017 |urlmorto=sì }}</ref> e degli installatori per Mac e Windows.<ref>[https://github.com/elm-lang/elm-platform Elm Platform]</ref> Inoltre, Elm ha un ecosistema di librerie create dalla comunità di utenti.<ref>[https://package.elm-lang.org/packages/ Elm Public Libraries] {{webarchive|url=https://web.archive.org/web/20150211183935/http://package.elm-lang.org/packages/ |data=11 febbraio 2015 }}</ref> Riga 43: === Sistema di moduli === Elm ha un sistema di moduli che consente ai programmatori di suddividere il loro codice in parti più piccole, chiamate "moduli". I programmatori possono importare ed esportare simboli, rendendo possibile nascondere i dettagli implementativi che non sono necessari agli altri moduli. I moduli formano la base del [[Sito web|sito Web]] della libreria della comunità di Elm, la [https://web.archive.org/web/20150211183935/http://package.elm-lang.org/packages/ Elm Public Library]. === Interoperabilità con HTML, CSS, e JavaScript === | |||