Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Microsoft dévoile la mise à jour la plus importante de TypeScript
Son alternatif au langage JavaScript se rapproche de la version finale

Le , par Hinault Romaric

42PARTAGES

9  1 
JavaScript est un langage populaire. Mais, pour certains, le langage dispose de plusieurs faiblesses.

Google s’est lancé dans le développement de Dart, son « JavaScript-killer ». La fondation Mozilla pour sa part a développé asm.js, qui est purement du code JavaScript spécialement conçu et compilé en langage natif C/C++.

Microsoft de son côté a travaillé sur TypeScript, un sur-ensemble de JavaScript. Les deux syntaxes se ressemblent fortement et tout code JavaScript est un programme TypeScript valide. Son auteur n'est autre que Anders Hejlsberg, concepteur du Framework .NET et chef de l'équipe C# chez Microsoft.




TypeScript est tout d'abord un compilateur libre d'hébergement, mais il apporte surtout des fonctionnalités supplémentaires comme un typage statique, un système de classes et d'interfaces, une division en modules, la gestion de l'importation de fichiers, ou bien la distinction entre données publiques et privées.

Microsoft vient de dévoiler une mise à jour majeure (la plus importante depuis son lancement selon la société) du compilateur TypeScript. La version 0.9 apporte un nombre important de correctifs de bogues, de nouvelles fonctionnalités et outils.




La plus grosse nouveauté est l’ajout des génériques. Cette fonctionnalité permet aux développeurs de déclarer des API utilisant des espaces réservés pour les types des arguments et des valeurs de retour. Cela permet une plus grande réutilisabilité du code avec une plus grande sécurité des types.

Le support des enums est désormais plus robuste. Les types enums apportent de nouvelles capacités de surcharge pour le retour des valeurs de différents types, sur la base des constantes spécifiques qui sont fournies en argument et une nouvelle syntaxe pour un meilleur support des modules JavaScript et TypeScript.

Le nouveau compilateur TypeScript a été presque entièrement modifié pour offrir de meilleures performances avec différents éditeurs, notamment Visual Studio, et des environnements JavaScript comme Node.js. Le compilateur fonctionne mieux sur les gros projets de 100 000 lignes de code.

TypeScript 0.9 est disponible sous les termes de la licence open source Apache 2.0 et est téléchargeable sur CodePlex.

La version 1.0 de TypeScript sortira avant la fin de l’année.

Télécharger TypeScript 0.9

Source : blog MSDN

Et vous ?

Que pensez-vous de TypeScript ?

L'avez-vous utilisé ? Est-il une alternative sérieuse à JavaScript ?

Entre Dart, TypeScript et asm.js, quel langage vous semble avoir du potentiel ?

JavaScript finira-t-il par être envoyé dans les tiroirs ou restera-t-il toujours autant populaire ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de DelphiManiac
Membre émérite https://www.developpez.com
Le 04/04/2014 à 18:27
Citation Envoyé par jojosbiz Voir le message
Totalement inutile ces histoires de Typescript, Coffeescript, Dart (sans la VM), typage fort, etc...si c'est pour pondre du javascript au final.

Cette maladie moderne de vouloir toujours rajouter des couches par dessus les couches...

Peignez des rayures sur un âne, ça restera un âne, ça ne deviendra pas un zèbre !
Totalement inutile ces C, C++, Delphi, C#, VB, Python, Php, ... (la liste pourrait être longue) si c'est pour pondre du code machine à la fin, autant coder directement en code machine et en binaire. Je ne parle même pas de l'assembleur qui n'est là que pour les fainéants qui ne mémorise pas la valeur binaire de chaque instruction processeurs. Rien ne vaut un bon JMP, JNE ou JE, oups pardon je suis trop haut niveau là (11101011, 01110101, 01110100).

Tu as vu, moi aussi je peut dire des grosses bêtises.
11  0 
Avatar de SylvainPV
Rédacteur/Modérateur https://www.developpez.com
Le 19/06/2013 à 20:11
Citation Envoyé par Schouss Voir le message
Javascript, pour l'utiliser tous les jours, est à vomir tant en pauvreté d'outils de dev que le language lui-même (les deux choses sont-ils liés ?).
Pour utiliser Javascript tous les jours avec une équipe qui ne connait pas le langage, je trouve à vomir l'incompétence des gens à se documenter sur les outils de développement existants. Sais-tu qu'en Javascript, on peut mettre des breakpoints, des logs de différents niveaux, des assertions, de l'introspection de variables, du monitoring de nombre d'appels de fonctions, des call stacks, du live editing et live debugging ? Et qu'il y a de bonnes chances que tu disposes d'ores-et-déjà de tous ces outils dans ton navigateur, à portée de clic ?
8  2 
Avatar de Kaamo
Membre émérite https://www.developpez.com
Le 19/06/2013 à 15:45
Quel est l'interet ?
Javascript est un langage très puissant (1), mais contenant beaucoup de choses à éviter ou très peu comprises (2) !
Du coup, plusieurs problématiques en découlent :
- Comment j'inclus mon code javascript proprement ?
- Quand est-ce que je dois exécuter mon code javascript ?
- Comment je fais pour mettre en place un héritage puissant mais malin (comprendre éviter le paradigme colporté par Java et autres consorts) ?
- Plus globalement, comment je fais pour coder et bien organiser mon code ?

(c'est réducteur, mais c'est pour donner une idée globale)

Ces Transpileurs (qui compilent en code Javascript) sont là pour répondre à ces problématiques afin de nous éviter d'aller droit dans le mur.
Ces langages alternatifs qui produisent du Javascript sont à Javascript ce qu'un traducteur est à une langue rare et complexe. Par exemple, imagine que le Javascript est un dialecte obscure. Tu peux très bien apprendre à parler le Javascript par toi même, avec tel ou tel professeur ou en autoditacte. Mais imagine que le professeur soit mauvais, ou que ta capacité d'autodidactisme soit désuète (aucune attaque personnelle là ), TypeScript, Coffee ou encore Dart sont là à la rescousse pour tout te traduire en Javascript. Toi, tu n'as qu'à apprendre à parler le TypeScript, Coffee ou encore Dart qui sont réputés pour être plus simple d'apprentissage (ou du moins, réputés pour t'éviter des pièges classiques).

Bref, soit tu préfères aller au bout des choses, tout maitriser par toi même et parler impeccablement le Javascript.
Soit tu fais confiance à un tiers qui connait déjà tous les pièges et t'a préparé un endroit douillet avec des méthodes qui ne mordent pas afin que tu puisses jouir de l'art de développer.

(1) : FCC, programmation objet orienté prototype (système de délégation pour ne pas dire héritage), utilisable dans n'importe quel navigateur (côté serveur, etc), les closures, etc
(2) : variables globales, document.write, eval, un système lourd de portée (this), des conversions implicites, closure, mauvaise utilisation de for-in, etc j'en passe
ps : je t'invite à taper "TypeScript VS CoffeeScript VS Dart" et voir quelques discussions intéressantes ici ou là qui décrivent le fonctionnement de chacun.
5  0 
Avatar de DonQuiche
Expert confirmé https://www.developpez.com
Le 04/04/2014 à 15:31
Citation Envoyé par jojosbiz Voir le message
Totalement inutile ces histoires de Typescript, Coffeescript, Dart (sans la VM), typage fort, etc...si c'est pour pondre du javascript au final.
Le typage fort réduit la fréquence des bogues et permet de meilleurs outils. Ceci est objectif, indiscutable et très significatif. On peut en revanche débattre de son impact sut la productivité, c'est une autre affaire, fonction de la taille et de la nature du projet, et sujette à débat. Mais qualifier le typage fort de "totalement inutile"... Tu parlais d'âneries il me semble ?
6  1 
Avatar de ptah35
Membre éclairé https://www.developpez.com
Le 05/04/2014 à 11:27
Citation Envoyé par jojosbiz Voir le message
Si on raisonne par l'absurde, tu as raison, c'est évident.

Mais comparer Typescript (c'est le sujet, je le rappelle) avec des langages à part entière, c'est une ânerie au moins aussi grosse que la mienne...
Même si je concède qu'il faut bien qu'un langage soit écrit avec un autre (PHP est écrit en C par exemple).

Donc puisque tu compares TypeScript à des langages et pour rester dans le Javascript, tu vas p-e finir par dire que JQuery est un langage ?

Moi aussi, je peux faire des raisonnements par l'absurde
Je ne pense pas qu'il ait là un raisonnement par l'absurde. La comparaison me parait pertinente. Javascript, qu'on le veuille ou non est le seul langage supporté par la quasi-totalité des navigateurs et comme il est peu probable que cela change dans un avenir proche, il faut bien faire avec. Mais "faire avec" signifie seulement que le programme téléchargé par le navigateur doit être écrit en Javascript, cela ne signifie pas que le développeur de ce programme soit obligé de le rédiger dans ce langage.

Typescript, Coffeescript, Java (avec GWT) sont des langages de programmation à part entière qui peuvent être compilés en Javascript (un autre langage de programmation à part entière). La compilation en Javascript n'a d'ailleurs rien de particulier et ces langages peuvent --- et de fait, certain le sont --- être compilés dans d'autres langages. La compilation consiste à utiliser un programme pour traduire un programme écrit dans un langage source en un programme équivalent écrit dans un langage cible; le langage cible ne doit pas forcément être un langage machine. (A ce propos, le PHP qui est écrit en C n'est pas le langage, mais le programme de traduction et/ou d'exécution.)

Je n'ai rien contre Javascript et j'ai plaisir à développer avec ce langage, mais je conçois volontiers que d'autres aient un avis différent et il n'y a aucune raison pour que ceux-ci soient obligés d'utiliser ce langage. En outre, même lorsque le développement se fait en Javascript, le programme source (écrit pour être lu par des humains) est rarement le même que celui qui est exécuté par le navigateur qui aura très probablement subit, au moins, une "minification". Si on peut faire confiance à un programme qui transforme un programme Javascript en un programme Javascript "minifié", pourquoi ne pas faire confiance à un programme qui transforme un programme en langage X en un programme Javascript ("minifié" ou non).
5  0 
Avatar de SylvainPV
Rédacteur/Modérateur https://www.developpez.com
Le 19/06/2013 à 17:22
La guerre du néo-JS

Cela me donne quand même un sacré arrière-goût du JScript de Microsoft cette histoire. Si c'est ça le futur du développement web front, ça me fait mal aux fesses d'abandonner un langage standardisé au profit d'un langage propriétaire. Javascript n'est pas parfait, mais il a quand même réussi à se populariser grâce à son omniprésence. Si Google décide de mettre une VM spéciale Dart dans Chrome, Microsoft va sans doute faire la même chose avec TypeScript dans IE, et Mozilla n'aura plus qu'à secouer le drapeau du libre au milieu. Brendan Eich a d'ores-et-déjà exprimé ses craintes à ce sujet.

Rien à dire sur la techno, Dart/TypeScript/CoffeeScript enrichissent beaucoup le développement comme pré-compilateurs JS. Mais le monde ne s'en porterait que mieux si ces messieurs décidaient de se mettre autour d'une table pour bosser ensemble. Il y a des intérêts derrière qui sont beaucoup moins avouables que celui d'aider les développeurs...

Citation Envoyé par Lutarez Voir le message

Plus sérieusement, je ne comprends pas vraiment ta crainte de voir de nouveaux langages dédiés au Web naître. Dans le monde natif, on dispose d'une flopée de langage, chacun ayant bien souvent sa spécialité. Certains langages servent également les mêmes intérêts, mais ceux-ci se mettent également directement en concurrence et favorise leur évolution (je pense notamment à Java vs .Net pour ce cas précis).

A mon sens, voir apparaître de nouveaux "langages" dédiés au Web serait une bonne chose : cela permettrait déjà aux plus réfractaires du Javascript (j'en fais partie, je ne m'en cache pas ) de mieux découvrir ce type de développement. Et peut-être même que cela pousserait le W3C à se motiver pour que le web avance plus vite.

Restera toujours le même problème : le support des différents langages par les différents acteurs. C'est d'ailleurs pour ça que tous ces langages "alternatifs" pondent du Javascript en arrière-boutique.
Peut-être que si tu as l'habitude de bosser avec des technos natives, tu réalises moins toutes les implications. Ce qui a fait le succès du Web, c'est son ubiquité. C'est la seule raison qui pousse aujourd'hui les technologies web dans des domaines auxquels on ne penserait pas forcément, comme dans les voitures, les bornes interactives, les TV connectées...

Je bosse comme expert web mobile, et la bonne parole que je prêche à tous mes clients pour qu'ils choisissent du Web plutôt que du natif, c'est : le Web est un standard universel et pérenne. On ne fait pas le poids avec les performances et les fonctionnalités des SDK propriétaires, mais on vous donne l'assurance que votre site web sera utilisable à l'avenir qu'importe comment évolue le marché (et bigre qu'il a évolué depuis 2007). Que se passera-t-il le jour où Microsoft ou Google dévoilera la feature exclusive de son méta-langage, et ne prendra pas la peine de l'adapter en Javascript car sa VM est déjà suffisamment implantée sur le marché pour tenter un putsch marketing ? Cela s'est déjà vu plusieurs fois...

Bref mettre des technos en concurrence est sans doute très profitable pour une application et des utilisateurs ciblés. Mais quand il s'agit de délivrer un service au monde entier sur des tas de périphériques différents, c'est extrêmement dangereux. Certes TypeScript se compile en JS, mais je reste pour autant très méfiant ; surtout avec ces histoires de VM tierces sur les navigateurs.
6  2 
Avatar de nevada51
Membre du Club https://www.developpez.com
Le 20/06/2013 à 0:12
Citation Envoyé par faucheuse Voir le message
Quel est l'interet ?
Deux mots: typage fort.
6  2 
Avatar de yahiko
Rédacteur/Modérateur https://www.developpez.com
Le 25/10/2013 à 0:57
Juste à titre informatif, j'ai rédigé une introduction succincte sur ce langage ici : http://www.developpez.net/forums/d13...ge-typescript/
3  0 
Avatar de tomlev
Rédacteur/Modérateur https://www.developpez.com
Le 05/04/2014 à 10:59
Citation Envoyé par jojosbiz Voir le message
Donc puisque tu compares TypeScript à des langages et pour rester dans le Javascript, tu vas p-e finir par dire que JQuery est un langage ?
Je ne vois pas le rapport. TypeScript est un langage (qui est "transpilé" en JS, au même titre que CoffeeScript par exemple), alors que jQuery est une bibliothèque.
3  0 
Avatar de Lutarez
Membre chevronné https://www.developpez.com
Le 19/06/2013 à 16:01
Citation Envoyé par malkav1978 Voir le message
Il y a une langage qui existe, JavaScript, et tout le monde se met à faire sa petite cuisine dans son coin. La seul chose que je craint c'est que la démultiplication de langages JavaScript-killer ne rende les choses que plus compliquée...
Ils ont toujours tout faire dans leur coin, pas seulement la cuisine

Plus sérieusement, je ne comprends pas vraiment ta crainte de voir de nouveaux langages dédiés au Web naître. Dans le monde natif, on dispose d'une flopée de langage, chacun ayant bien souvent sa spécialité. Certains langages servent également les mêmes intérêts, mais ceux-ci se mettent également directement en concurrence et favorise leur évolution (je pense notamment à Java vs .Net pour ce cas précis).

A mon sens, voir apparaître de nouveaux "langages" dédiés au Web serait une bonne chose : cela permettrait déjà aux plus réfractaires du Javascript (j'en fais partie, je ne m'en cache pas ) de mieux découvrir ce type de développement. Et peut-être même que cela pousserait le W3C à se motiver pour que le web avance plus vite.

Restera toujours le même problème : le support des différents langages par les différents acteurs. C'est d'ailleurs pour ça que tous ces langages "alternatifs" pondent du Javascript en arrière-boutique.
3  1