Typescript: Javascript senza problemi by Andrea Boschin

561 views

Published on

Javascript è un linguaggio che, grazie alla sua flessibilità e disponibilità su tutte le piattaforme, sta sempre più prendendo il sopravvento, guadagnando spazio anche fuori del browser. Chi lo conosce sa che si tratta di un linguaggio completo, che può essere un potente alleato ma anche un temibile nemico. Di recente Microsoft ha presentato Typescript, un nuovo compilatore, che ha l*intento di fornire a Javascript i paradigmi classici della programmazione type-safe tipica dei linguaggi evoluti. Typescript è un superset di Javascript ma viene eseguito come Javascript, ma senza problemi

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
561
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Ricordoancoraquelgiorno in cui, seduto al binario 3 dellastazione di mestre, leggevo un articolo di unarivistacheparlava di un nuovo linguaggio di Netscape, introdotto in IE3 da Microsoft: tale Javascript. Parlo di circa 15/17 annifaperciòcapireteilmiostupore a parlarequest’oggi di un argomentochemette le sue basisuunatecnologiavecchia di un paio di ere geologiche in termini informatici. Michiamo Andrea Boschin, sono Microsoft MVP, e devo dire che a partire da quelperiodo ho da sempreapprezzatoJavascript per la enormipossibilitàche mi ha dato di arricchirel’interfacciautente.
  • In effetti, da quei giorni in cui Javascript era poco più che una bella idea, che però già due giganti si contendevano, il linguaggio ha visto alti e bassi, determinati soprattutto dal fatto che è stato oggetto di interpretazioni e incompatibilità che ne hanno condizionato il successo nei primi anni e lo hanno relegato a un secondo piano, spesso in mano ai grafici che ai programmatori. Tuttavia, oggi, dopo tre standardizzazioni e un fallimento (4.0) Javascript sta vivendo una nuova giovinezza data non solo dalle indubbie capacità, ma soprattutto dal un fatto importante:
  • Javascript oggi è a tutti gli effetti l’unica tecnologia in grado di garantire il write-once run-everywhere di Javistica memoria.Tanto è vero che a fianco all’indiscutibile «Any Browser» e «Any OS» si sta affiancando anche «Any host» individuando con questo la possibilità di eseguire anche codice server-side (es: node.js)
  • Javascript è un linguaggio che nasconde una potenza ed espressività che pochi conoscono a fondo, ha delle capacità di estensibilità invidiabili e soprattutto ad oggi gode di un numero di librerie impressionante e in continua crescita.Purtroppo Javascript tutt’ora conserva un numero di problemi che devono essere tenuti in seria considerazione da chi si debba approcciare allo sviluppo. La sua potenza ed espressività nascondono una complessità notevole che spesso si trasforma in trucchi che rendono il codice poco manutenibile. Non dimentichiamo inoltre il suo modello di OOP basato su prototipi che omette dei concetti fondamentali quali il polimorfismo e l’incapsulamento.Infine, alla base di gran parte dei problemi il fatto che Javascript non dispone di un controllo statico dei tipi, che è vitale se si vuole evitare che il codice scoppi nel momento meno opportuno e cioè davanti al cliente. Su questa base Javascript è un linguaggio poco adatto allo sviluppo di applicazioni nel mondo reale a meno che non si dispongano di forze pressochè illimitate come «Google» o «Microsoft».
  • E’ sostanzialmente per questi motivi che Microsoft sta tuttora lavorando su un linguaggio nuovo che mantenga l’espressività di Javascript senza perdere i numerosi vantaggi.Typescript è il nome di questo linguaggio, di cui oggi vi volglio parlare, giunto alla versione 0.8.2. E’ un linguaggio che è un superset di javascript, il cui compilatore stesso è open source e sviluppato in Typescript. Tanto è vero che il compilatore è in grado di essere eseguito nel browser, ma dobbiamo considerare questa una pura curiosità perché, non c’è davvero alcuna necessità che questa compilazione avvenga all’interno del browser:
  • Vediamo di chiarire:Il primo assunto è ce qualunque codice Javascript è un sorgente Typescript perfettamente valido. Se prendete un codice esistente e lo passate al compilatore esso verrà digerito senza alcun errore.Typescript, in quanto superset vi consente di aggiungere a Javascript una serie di costrutti tipici della programmazione ad oggetti. Tipi, classi, moduli, interfacce. Tutto questo consente di scrivere codice molto manutenibile, riutilizzabile, etc..Una volta che il compilatore ha elaborato questo codice vi darà in output nuovamente del Javascript che può essere eseguito in qualunque host che supporti Javascript: => Any…Any…Any…
  • Quindi…. Pochi secondi per questa slide….
  • Typescript: Javascript senza problemi by Andrea Boschin

    1. 1. Typescript: Javascript senza problemi.Andrea Boschinadam|factoryandrea@boschin.it
    2. 2. 2013json html5Typescript: Javascript senza problemi.andrea boschinJavascript Storyandrea@boschin.it – adam|factory1995rel. 1.0Netscape 2.0IE 3.01998rel. 1.3ECMA 1 e 2.0IE 4.02000rel. 1.5ECMA 3.0IE 5.0 (jscript)2005rel. 1.6ECMA 4.0(ritirato)2010rel. 1.8.2ECMA 5.0????rel. ?ECMA 6.0
    3. 3. Typescript: Javascript senza problemi.andrea boschin andrea@boschin.it – adam|factoryJavascript TodayAny BrowserAny HostAny OS
    4. 4. Typescript: Javascript senza problemi.andrea boschin andrea@boschin.it – adam|factoryJavascript Developmentpro• potente• estensibile• molte libreriecontro• difficile• poco manutenibile• type unsafe• oop incompletopoco adatto ad applicazioni reali
    5. 5. Except where otherwise noted, this work is licensed under: http://creativecommon.org/licenses/by-nc-sa/3.0/Typescript: Javascript senza problemi.andrea boschin• E un superset tipizzato di Javascript• E Open Source!• il compilatore stesso è scritto in Typescriptandrea@boschin.it – adam|factory
    6. 6. Except where otherwise noted, this work is licensed under: http://creativecommon.org/licenses/by-nc-sa/3.0/Typescript: Javascript senza problemi.andrea boschin• starts with javascript• tutto il codice javascript è anche codice typescript• optional static types, classes and modules• migliora leggibilità e manutenibilità del codice• supporta sviluppo di applicazioni scalabili• tutto il codice sparisce a runtime• ends with javascript• la compilazione genera Javascriptandrea@boschin.it – adam|factory
    7. 7. Except where otherwise noted, this work is licensed under: http://creativecommon.org/licenses/by-nc-sa/3.0/Typescript: Javascript senza problemi.andrea boschinAny Browser!Any Host!Any OS!andrea@boschin.it – adam|factory
    8. 8. Except where otherwise noted, this work is licensed under: http://creativecommon.org/licenses/by-nc-sa/3.0/Typescript: Javascript senza problemi.andrea boschin andrea@boschin.it – adam|factory• allineato agli standard emergenti• la sintassi è allineata con la proposta di Ecmascript 6.0• output in Ecmascript 3.0/5.0• è possibile scegliere loutout mediante switch di compilazione
    9. 9. Except where otherwise noted, this work is licensed under: http://creativecommon.org/licenses/by-nc-sa/3.0/Typescript: Javascript senza problemi.andrea boschin andrea@boschin.it – adam|factoryace | amcharts | angularjs | async | backbone | bootbox | bootstrap | box2d | breezecasperjs | cheerio | chosen | chrome | codemirror | commander | d3 | domo | durandaleaseljs | ember | express | fabricjs | fancybox | filesystem | flexslider | flot | foundationgamepad | globalize | google | hammerjs | history | i18next | impress | jake | jasmine | jquer| jqueryui | knockout | kolite | linq | marked | modernizr | mousetrap | mustache | nodepreloadjs | phonegap | platform | quinit | raphael | requirejs | restify | rxjs | scroller | signalrsinon | spin | storejs | sugar | swipeview | threejs | teechart | toastr | tween | underscoreunity | urijs | videojs | winjspuò usare qualunque libreria esistente!https://github.com/borisyankov/DefinitelyTyped
    10. 10. Except where otherwise noted, this work is licensed under: http://creativecommon.org/licenses/by-nc-sa/3.0/DEMO
    11. 11. Except where otherwise noted, this work is licensed under: http://creativecommon.org/licenses/by-nc-sa/3.0/Typescript: Javascript senza problemi.andrea boschin andrea@boschin.it – adam|factory• play• http://typescriptlang.org/playground• download & docs• http://www.typescriptlang.org/• plugin Visual Studio 2012• http://www.microsoft.com/en-us/download/details.aspx?id=34790• source code• http://typescript.codeplex.com/
    12. 12. Typescript: Javascript senza problemi.andrea boschinContact me:Company: adam | factoryUG http://xedotnet.org XeDotNet (Venezia Mestre)email andrea@boschin.ittwitter @aboschinfacebook http://www.facebook.com/thelittlegroveblog http://blog.boschin.itsite http://xamlplayground.orgxbox codeblock68andrea@boschin.it – adam|factory

    ×