Typescript: Javascript senza problemi. Andrea Boschin adam|factory andrea@boschin.it
2013 json html5 Typescript: Javascript senza problemi. andrea boschin Javascript Story andrea@boschin.it – adam|factory 1995 rel. 1.0 Netscape 2.0 IE 3.0 1998 rel. 1.3 ECMA 1 e 2.0 IE 4.0 2000 rel. 1.5 ECMA 3.0 IE 5.0 (jscript) 2005 rel. 1.6 ECMA 4.0 (ritirato) 2010 rel. 1.8.2 ECMA 5.0 ???? rel. ? ECMA 6.0
Typescript: Javascript senza problemi. andrea boschin andrea@boschin.it – adam|factory Javascript Today Any Browser Any Host Any OS
Typescript: Javascript senza problemi. andrea boschin andrea@boschin.it – adam|factory Javascript Development pro • potente • estensibile • molte librerie contro • difficile • poco manutenibile • type unsafe • oop incompleto poco adatto ad applicazioni reali
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 Typescript andrea@boschin.it – adam|factory
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 Javascript andrea@boschin.it – adam|factory
Except where otherwise noted, this work is licensed under: http://creativecommon.org/licenses/by-nc-sa/3.0/ Typescript: Javascript senza problemi. andrea boschin Any Browser! Any Host! Any OS! andrea@boschin.it – adam|factory
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 l'outout mediante switch di compilazione
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 ace | amcharts | angularjs | async | backbone | bootbox | bootstrap | box2d | breeze casperjs | cheerio | chosen | chrome | codemirror | commander | d3 | domo | durandal easeljs | ember | express | fabricjs | fancybox | filesystem | flexslider | flot | foundation gamepad | globalize | google | hammerjs | history | i18next | impress | jake | jasmine | jquer | jqueryui | knockout | kolite | linq | marked | modernizr | mousetrap | mustache | node preloadjs | phonegap | platform | quinit | raphael | requirejs | restify | rxjs | scroller | signalr sinon | spin | storejs | sugar | swipeview | threejs | teechart | toastr | tween | underscore unity | urijs | videojs | winjs può usare qualunque libreria esistente! https://github.com/borisyankov/DefinitelyTyped
Except where otherwise noted, this work is licensed under: http://creativecommon.org/licenses/by-nc-sa/3.0/ DEMO
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/
Typescript: Javascript senza problemi. andrea boschin Contact me: Company: adam | factory UG http://xedotnet.org XeDotNet (Venezia Mestre) email andrea@boschin.it twitter @aboschin facebook http://www.facebook.com/thelittlegrove blog http://blog.boschin.it site http://xamlplayground.org xbox codeblock68 andrea@boschin.it – adam|factory

Typescript: Javascript senza problemi by Andrea Boschin

  • 1.
    Typescript: Javascript senzaproblemi. Andrea Boschin adam|factory andrea@boschin.it
  • 2.
    2013 json html5 Typescript: Javascriptsenza problemi. andrea boschin Javascript Story andrea@boschin.it – adam|factory 1995 rel. 1.0 Netscape 2.0 IE 3.0 1998 rel. 1.3 ECMA 1 e 2.0 IE 4.0 2000 rel. 1.5 ECMA 3.0 IE 5.0 (jscript) 2005 rel. 1.6 ECMA 4.0 (ritirato) 2010 rel. 1.8.2 ECMA 5.0 ???? rel. ? ECMA 6.0
  • 3.
    Typescript: Javascript senzaproblemi. andrea boschin andrea@boschin.it – adam|factory Javascript Today Any Browser Any Host Any OS
  • 4.
    Typescript: Javascript senzaproblemi. andrea boschin andrea@boschin.it – adam|factory Javascript Development pro • potente • estensibile • molte librerie contro • difficile • poco manutenibile • type unsafe • oop incompleto poco adatto ad applicazioni reali
  • 5.
    Except where otherwisenoted, 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 Typescript andrea@boschin.it – adam|factory
  • 6.
    Except where otherwisenoted, 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 Javascript andrea@boschin.it – adam|factory
  • 7.
    Except where otherwisenoted, this work is licensed under: http://creativecommon.org/licenses/by-nc-sa/3.0/ Typescript: Javascript senza problemi. andrea boschin Any Browser! Any Host! Any OS! andrea@boschin.it – adam|factory
  • 8.
    Except where otherwisenoted, 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 l'outout mediante switch di compilazione
  • 9.
    Except where otherwisenoted, 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 ace | amcharts | angularjs | async | backbone | bootbox | bootstrap | box2d | breeze casperjs | cheerio | chosen | chrome | codemirror | commander | d3 | domo | durandal easeljs | ember | express | fabricjs | fancybox | filesystem | flexslider | flot | foundation gamepad | globalize | google | hammerjs | history | i18next | impress | jake | jasmine | jquer | jqueryui | knockout | kolite | linq | marked | modernizr | mousetrap | mustache | node preloadjs | phonegap | platform | quinit | raphael | requirejs | restify | rxjs | scroller | signalr sinon | spin | storejs | sugar | swipeview | threejs | teechart | toastr | tween | underscore unity | urijs | videojs | winjs può usare qualunque libreria esistente! https://github.com/borisyankov/DefinitelyTyped
  • 10.
    Except where otherwisenoted, this work is licensed under: http://creativecommon.org/licenses/by-nc-sa/3.0/ DEMO
  • 11.
    Except where otherwisenoted, 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.
    Typescript: Javascript senzaproblemi. andrea boschin Contact me: Company: adam | factory UG http://xedotnet.org XeDotNet (Venezia Mestre) email andrea@boschin.it twitter @aboschin facebook http://www.facebook.com/thelittlegrove blog http://blog.boschin.it site http://xamlplayground.org xbox codeblock68 andrea@boschin.it – adam|factory

Editor's Notes

  • #2 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.
  • #3 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:
  • #4 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)
  • #5 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».
  • #6 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:
  • #7 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…
  • #8 Quindi…. Pochi secondi per questa slide….