Vous travaillez dans le domaine du développement web? De près ou de loin, vous avez eu à développer quelque chose avec JavaScript. Ce langage de programmation est à la base même de nos interactions avec une page web.
Il y a de ces moments où je me dis que le web sans JavaScript est comme imaginer la vie sans électricité. Remarquez que s’il n’y avait pas d’électricité, il n’y aurait pas de JavaScript non plus. Certains avancent même que le JavaScript est ni plus ni moins l’équivalent du langage assembleur du web.
C’est peu dire!
Là où je veux en venir, est que, à l’époque où nous nous trouvons, JavaScript est utilisé à toutes les sauces. Il y a des engins vous permettant de faire du raytracing, des librairies vous permettant de manipuler le DOM avec un API funky et même de piloter la navigation de votre site.
Une nouvelle tendance avec JavaScript est de développer de nouveaux langages en créant un surensemble de celui-ci. Ces langages sont dits des surensembles, car ils ont une sémantique qui, pour certains, est totalement différente de JavaScript tout en pouvant générer une source totalement compatible.
Un exemple populaire de la mise en oeuvre de cette technique est le langage CoffeeScript. Toutefois, ce n’est pas un billet à ce sujet. Un autre jour, peut-être!
Présentation de TypeScript
À la mi-2012, Microsoft a décidé d’y mettre son grain de sel et d’offrir aux développeurs une plateforme permettant le développement d’applications web de grande échelle. Le nom de cette technologie est TypeScript.
À vue d’oiseau, les principaux arguments de vente sont les suivants :
- Typage statique en permettant de typer les valeurs de retour de fonctions.
- Classes et fichiers de déclaration agissant comme des interfaces.
- Support de fonctionnalités tirées d’ECMAScript 6.
- Compatibilité entière avec JavaScript.
Un exemple typique de TypeScript (tiré de l’exemple fourni dans Visual Studio) prend la forme suivante :
// Interface | |
interface IPoint { | |
getDist(): number; | |
} | |
// Module | |
module Shapes { | |
// Class | |
export class Point implements IPoint { | |
// Constructor | |
constructor (public x: number, public y: number) { } | |
// Instance member | |
getDist() { return Math.sqrt(this.x * this.x + this.y * this.y); } | |
// Static member | |
static origin = new Point(0, 0); | |
} | |
} | |
// Local variables | |
var p: IPoint = new Shapes.Point(3, 4); | |
var dist = p.getDist(); |
Ceux qui, tout comme moi, viennent du monde C# et Java vont probablement se reconnaître un peu plus dans ce langage de programmation. La beauté dans tout cela est (je me répète) que cela va se traduire entièrement en JavaScript.
Se procurer TypeScript
On a bien beau en parler. Après tout, il faut bien l’expérimenter!
La bonne nouvelle, au sujet de TypeScript, est que le langage est supporté à travers différentes plateformes et éditeurs texte. Dans cette liste, il y a Sublime Text, Emacs et Vim. Alors, il n’y a pas d’excuses pour ne pas lui donner une chance.
Bien évidemment, Visual Studio 2012 bénéficie d’un outillage complet. Vous pouvez ajouter des fichiers TypeScript à même votre solution et même profiter de la compilation côte à côte.
En guise de fin
Vous n’êtes pas convaincus? Peut-être!
Sans vous lancer, tête première, avec TypeScript, vous pouvez lui donner une chance directement en ligne grâce au Playground qui est laissé à votre disposition. Vous pouvez aller y exécuter vos propres essais de TypeScript directement à même votre navigateur.
Besoin d’arguments un peu plus solide? Comment se débrouille TypeScript dans le « vrai monde »? Il y a des exemples de code entièrement fonctionnels laissés à votre disposition. Il y a des exemples utilisant la librairie jQuery et même la librairie de visualisation D3.
Besoin de sensations fortes? Il y a toujours la spécification écrite du langage (PDF). Toutefois, cela est à vos risques et périls!
Amusez-vous!