Typescript, questo sconosciuto

Ultimamente ho cambiato nuovamente lavoro, e nella nuova azienda dove lavoro adesso sto facendo una interessante esperienza con Typescript.

Molti di voi (come me fino a qualche settimana fa), non sa cosa sia Typescript, e siccome sto ancora cercando di capirne qualcosa, ho pensato di condividere con voi questa mia recente esperienza, magari potrà tornare utile a qualcuno.

Cos’è Typescript

Innanzitutto, spieghiamo a grandi linee di cosa si tratta.

Typescript è un “metalinguaggio” creato da Microsoft, e reso disponibile in open source, per scrivere codice javascript avanzato e soprattutto “compilabile”.

Questa mia personalissima definizione racchiude in una sola riga un concetto di linguaggio che, una volta assimilato, si potrebbe rivelare utile in moltissime situazioni.

Ovviamente non voglio riscrivere quello che trovate sul web, che non è tantissimo (a mio modesto parere) ma è sufficiente per iniziare a studiare questo linguaggio, per cui cercherò di sintetizzare le basi “principali” su cui si fonda in pochi bullet:

  • Supporto per interfacce, classi e enum
  • Supporto per ECMAScript 6
  • Compilazione a design time
  • Tradotto in javascript standard alla compilazione

Si, lo so che qualcuno che l’ha già studiato sa che ci sono altri punti, ma per me questi sono i primi punti di forza da cui vorrei partire.

Ho sentito qualcuno definire Typescript una sorta di “C# portato nel mondo Javascript”, personalmente questa definizione non mi piace, preferisco pensare a Typescript come ad una naturale evoluzione di Javascript per scenari enterprise, ovvero la necessità primaria per cui è nato questo linguaggio.

In che scenari usare Typescript

Quanti di voi hanno perso ore ed ore nel “debuggare” javascript malfunzionanti per poi scoprire che mancava una maledetta virgola o un apice, insomma qualcosa che impediva al browser di eseguire correttamente quel blocco di codice, di cui l’ambiente di sviluppo non aveva dato alcuna notizia a design time?

E quanti di voi si sono trovati quintalate di script mischiati e ricaricati senza ritegno in ogni pagina della vostra applicazione?

Beh, è chiaro che Typescript non annullerà tutta la complessità dello sviluppo frontend, ma di sicuro allevierà buona parte delle problematiche, fosse solo per il fatto che possiamo “compilarlo” e quindi sapere subito prima dell’esecuzione se qualcosa che abbiamo scritto è formalmente sbagliato.

Come già detto, una delle necessità per cui si è pensato a Typescript è lo sviluppo in scenari “Enterprise“, in cui applicazioni molto complesse e/o basate su architetture che necessitano di una forte dose di scalabilità, spesso devono fare i conti con Javascript, che porta la sua bella dose di entropia.

Per esempio, io lo sto usando in una soluzione (o meglio, una serie di soluzioni) mirate al rifacimento dello sportello bancario di un grosso istituto di credito italiano. In questo scenario una applicazione SPA (Single Page Application) fa da frontend verso altre componenti della soluzione, e questo frontend è a sua volta molto complesso a livello architetturale.

Nella soluzione che ho io, i datacontract che vengono esposti da servizi vengono poi rimappati in Typescript per la gestione di un viewmodel con Knockout.js.

Oltre alla scalabilità, anche la manutenibilità, la testabilità e la leggibilità beneficiano di questo linguaggio, presentato ormai già da cinque anni.

Da dove partire

Sicuramente dal sito Typescriptlang.org dove tutto è spiegato e dettagliato. Ci sono tutorial, esempi, e c’è anche una sezione “play” dove si può appunto “giocare” con il codice, provando subito porzioni di script senza dover avere un progetto Visual Studio aperto.
Per chi ha delle sottoscrizioni Pluralsight, ci sono un paio di corsi online, per chi non ce l’ha, segua dotNET{podcast}, perché metteremo “in palio” anche questo tipo di regalo.

Prossimi post

Per adesso mi fermo, volontariamente, per non fare un post troppo lungo. Preferisco scriverne altri, magari meglio focalizzati su Typescript, perché può tornare molto utile, anche su progetti di dimensioni più piccole. E mentre lo imparerò (o proverò a farlo) condividerò quanto ho capito di questa “evoluzione” del linguaggio di scripting più usato per lo sviluppo web.

Typescript, questo sconosciuto

5 pensieri su “Typescript, questo sconosciuto

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...