Pourquoi utiliser TypeScript ?
TypeScript est un choix sans risque
Avant toute chose, TypeScript n'est pas un choix dangereux pour l'équipe de développeurs qui envisage de l'adopter.
En effet, le nouveau langage fait sien le slogan de CoffeeScript : « It's just JavaScript ». Le compilateur TypeScript n'ajoute aucune dépendance à une bibliothèque JavaScript. Voilà qui contraste avec la solution proposée par Traceur dont le code compilé s'appuie massivement sur un runtime en JavaScript.
Plus encore, le développeur TypeScript se repère sans effort dans son propre code traduit en JavaScript. En vérité le code JavaScript après compilation est impeccable et pourrait être repris comme base de travail JavaScript s'il fallait un jour quitter le navire.
Faire coopérer TypeScript et JavaScript ?
TypeScript est un surensemble de la syntaxe JavaScript. Autrement dit, à peu de choses près, tout code JavaScript compilera en TypeScript.
TypeScript s'intègre alors naturellement dans l'écosystème JavaScript. Les bibliothèques de programmation JavaScript comme jQuery ou Modernizr sont appelées normalement depuis du code TypeScript. Et dans l'autre sens, le code TypeScript, une fois compilé, s'utilise aisément depuis du code écrit directement en JavaScript. Ainsi, les frameworks AngularJS et consorts travaillent sans faire d'histoire avec du code TypeScript compilé.
Cette intégration de TypeScript avec le Web existant est à mettre en opposition avec le langage Dart conçu comme un environnement autonome en rupture avec JavaScript et dans lequel tout est à refaire. La syntaxe de TypeScript, quant à elle, est en continuité avec celle du JavaScript. Aucun travail d'adaptation de l'existant n'est à faire et la baisse de productivité due à l'effort d'apprentissage est limitée à quelques jours, surtout si le développeur a déjà de l'expérience dans d'autres langages à objets.
La syntaxe TypeScript est pérenne
JavaScript a évolué depuis son invention en 1995. Le langage fut normalisé par Ecma International en 1997 sous le nom de ECMAScript. Internet Explorer 8 par exemple comprend l'ECMAScript 3. Le JavaScript interprété par les navigateurs en 2014 est ECMAScript 5.1.
Certains ajouts syntaxiques apportés par TypeScript sont une implémentation de fonctionnalités prévues dans le prochain ECMAScript 6. Par rapport aux fonctionnalités de ECMAScript 6 listées par Luke Hoban, TypeScript implémente les suivantes : Arrows, Classes, Default + Rest + Spread et Modules. Cela fait de TypeScript un langage essentiellement normalisé ce qui, au passage, lui donne l'avantage sur CoffeeScript pour ce qui est de la pérennité.
Cela implique également que le compilateur TypeScript est destiné à être simplifié. Lorsque les navigateurs implémenteront nativement ECMAScript 6, le compilateur se repliera sur les seules fonctionnalités non normalisées de TypeScript.