PDA

View Full Version : [JavaScript] - Microsoft presenta TypeScript, parliamone.


Kralizek
03-10-2012, 16:09
Articoli:

1) http://www.tomshw.it/cont/news/microsoft-typescript-mette-i-super-poteri-a-javascript/40047/1.html

2) http://channel9.msdn.com/posts/Anders-Hejlsberg-Introducing-TypeScript

TypeScript is a programming language that makes it easier to write cross-platform, application scale, JavaScript that runs in any browser or in any host. Microsoft Technical Fellow Anders Hejlsberg explains how TypeScript, which is a typed superset of JavaScript that compiles to idiomatic (normal) JavaScript, can dramatically improve your productivity by enabling rich tooling experiences, all while maintaining your existing code and continuing to use the same JavaScript libraries you already love.

The TypeScript language specification is available under Open Web Foundation and the compiler implementation is available as Open Source.

Consiglio a tutti di vedere il video presente nel secondo articolo.

Kralizek
03-10-2012, 16:13
premesso che giá dalla presentazione di Script# mi ero interessato alla problematica di utilizzare JavaScript in un contesto piú "safe" ed adatto allo sviluppo su larga scala.

L'integrazione di framework come jQuery e Knockout.JS spingono al massimo le potenzialitá di un linguaggio di per sé nato per gestire piccoli script.

Il problema di Script#, CoffeeScript ed altri, é che non puoi usare librerie esterne.

Con questo TypeScript, credo che Microsoft abbia trovato la quadratura del cerchio.

Dopotutto basta aggiungere un task allo script di build prima di minificare e creare i bundles per compilare i file .ts in .js.

Il resto é come svegliarsi da un lungo brutto sogno.

arcer
03-10-2012, 17:14
premesso che giá dalla presentazione di Script# mi ero interessato alla problematica di utilizzare JavaScript in un contesto piú "safe" ed adatto allo sviluppo su larga scala.

L'integrazione di framework come jQuery e Knockout.JS spingono al massimo le potenzialitá di un linguaggio di per sé nato per gestire piccoli script.

Il problema di Script#, CoffeeScript ed altri, é che non puoi usare librerie esterne.

Con questo TypeScript, credo che Microsoft abbia trovato la quadratura del cerchio.

Dopotutto basta aggiungere un task allo script di build prima di minificare e creare i bundles per compilare i file .ts in .js.

Il resto é come svegliarsi da un lungo brutto sogno.
Hai avuto modo di provarlo? pareri?

Kralizek
04-10-2012, 09:29
non lo abbiamo ancora provato in produzione perché siamo impegnati nello switch a .NET 4.5 ed MVC4, ma credo che proveremo ad utilizzarlo nel ciclo di sviluppo.

La cosa bella é che é un tool per lo sviluppatore totalmente trasparente all'utente.

arcer
04-10-2012, 10:12
non lo abbiamo ancora provato in produzione perché siamo impegnati nello switch a .NET 4.5 ed MVC4, ma credo che proveremo ad utilizzarlo nel ciclo di sviluppo.

La cosa bella é che é un tool per lo sviluppatore totalmente trasparente all'utente.

Quindi fondamentalmente l'utente vedrà il risultato finale senza nessun plug-in o roba varia....non è "invasivo" come i vari flash/silverlight/air....non ho capito bene una cosa: il compito di "tradurre" lo script sarà lato browser?

Kralizek
04-10-2012, 11:16
no, semplicemente in fase di build esegui il compilatore tsc che compila i file .ts in file .js

ad esempio per MSBuild, https://gist.github.com/3818423

wingman87
04-10-2012, 13:37
Grazie per la segnalazione, sto scrivendo una app per W8 in js ed è un vero incubo non poter specificare il tipo delle variabili (per intellisense e per gli errori non segnalati prima dell'esecuzione).
Anche le altre feature (classi e moduli) rendono il codice molto più leggibile.

Kralizek
04-10-2012, 14:15
Grazie per la segnalazione, sto scrivendo una app per W8 in js ed è un vero incubo non poter specificare il tipo delle variabili (per intellisense e per gli errori non segnalati prima dell'esecuzione).
Anche le altre feature (classi e moduli) rendono il codice molto più leggibile.

OT:

2 domande

1) perché in JS?
2) in JS per windows 8 si possono/ha senso usare framework come jQuery e knockout.js?

wingman87
04-10-2012, 14:43
Non so come mai è stato scelto js, probabilmente per la possibilità di scrivere l'interfaccia in html5+css3 che effettivamente è molto comodo, inoltre abbiamo potuto riutilizzare delle parti di codice perché ciò che stiamo sviluppando è la versione app di un sito.
Sulla possibilità di utilizzare framework esterni: sì. Includi il js di jquery come in una qualunque pagina web e sei a cavallo. Inoltre intellisense per quello che può ti aiuta.

marco.r
06-10-2012, 17:40
Articoli:

1) http://www.tomshw.it/cont/news/microsoft-typescript-mette-i-super-poteri-a-javascript/40047/1.html

2) http://channel9.msdn.com/posts/Anders-Hejlsberg-Introducing-TypeScript



Consiglio a tutti di vedere il video presente nel secondo articolo.

Secondo me il problema principale di JavaScript non sta tanto nella tipizzazione dinamica.
Trovo sia piu' problematica la tipizzazione debole, e tutte quelle altre caratteristiche che erano state pensate a suo tempo per renderlo piu' "facile" ( ; automatici, conversioni automatiche, gestione delle variabili globali/locali e altre cosette).

Aggiungerei pure che non ho visto anche grande integrazione tra IDE e browser (anche se non ho esperienza di VS + JavaScript, per cui magari mi perdo qualcosa) per cui alcune cose che rendono produttivo lo sviluppo con linguaggi dinamici (editing e debug interattivo, soprattutto) sono piu' problematiche.

marco.r
06-10-2012, 17:56
CoffeeScript ed altri, é che non puoi usare librerie esterne.

Non ho mai usato CoffeeScript, ma mi risulta che compili in JavaScript al pari di TypeScript, per cui al di la' della sintassi differente non dovrebbe avere questi problemi. O mi sfugge qualcosa ?

Kralizek
07-10-2012, 12:07
Non ho mai usato CoffeeScript, ma mi risulta che compili in JavaScript al pari di TypeScript, per cui al di la' della sintassi differente non dovrebbe avere questi problemi. O mi sfugge qualcosa ?

il problema non è l'output finale, ovvero javascript puro, come anche Script# tra l'altro, ma il fatto che, avendo una sintassi differente, non si può importare una libreria javascript "as-is" ma bisogna attendere che venga tradotta in CoffeeScript ed in Script# (a quanto ne so).

TypeScript invece, seppur lavorando meglio con librerie esterne che provvedono al file di definizione (*.d.ts), può importare tranquillamente i normali file *.js.
Ovviamente si perde la tipizzazione perchè tutte le variabili saranno marcate come Any, ma almeno si può utilizzare la libreria così com'è sin da subito.

pabloski
07-10-2012, 13:04
Secondo me il problema principale di JavaScript non sta tanto nella tipizzazione dinamica.
Trovo sia piu' problematica la tipizzazione debole, e tutte quelle altre caratteristiche che erano state pensate a suo tempo per renderlo piu' "facile" ( ; automatici, conversioni automatiche, gestione delle variabili globali/locali e altre cosette).

Hai centrato il problema del perchè queste alternative a javascript non prenderanno mai piede.

Il programmatore javascript è abituato al "facile", è cresciuto in quell'ambiente e per lui, tipizzazione debole e compagnia, sono feature e non limitazioni.

Mi è capitato tante volte di leggere sui forum proprio cose riguardo le alchimie che si possono fare grazie a questi "difetti" di javascript. Negli stessi luoghi ho potuto toccare con mano l'avversione che c'è nei confronti dei sostituti di javascript. Dart è stato letteralmente preso a calci in bocca, Typescript farà una fine simile.

gugoXX
07-10-2012, 15:00
Bene, buona idea.
Il Javascript dovrebbe essere considerato l'assembly del web.
Tutti dovrebbero usarlo, ma nessuno dovrebbe scriverne una riga di codice.