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 version 1.0 de TypeScript
Son sur-ensemble de JavaScript

Le , par Hinault Romaric

0PARTAGES

4  0 
Microsoft a annoncé lors de la conférence Build la sortie de la version finale de TypeScript, son préprocesseur qui ajoute un typage statique et optionnel au langage JavaScript.

Après plus de trois ans de développement sous la direction d’Anders Hejlsberg, le père du langage C#, TypeScript atteint sa première version et s’ouvre aux contributions de la communauté de développeurs.

TypeScript est disponible comme un langage de première classe dans Visual Studio, et est supporté par l’EDI à même titre que C# ou encore VB.NET. Il est embarqué par défaut dans Visual Studio 2013 et Visual Studio Web Express 2013 Spring Update, dont la Release Candidate a été publiée parallèlement par Microsoft, et permet de bénéficier de Intellisense, des fonctions de navigation et de toute la productivité qu’offre l’éditeur de code de Visual Studio.


TypeScript en action dans Visual Studio 2013

Pour les utilisateurs d’autres environnements de développement, Microsoft met à disposition TypeScript comme un package NPM (Node.js) et son code source est disponible sur GitHub.



TypeScript en action dans Eclipse

Télécharger TypeScript pour Visual Studio 2012

Télécharger le package NPM de TypeScript

Le code de TypeScript sur CodePlex

Source : Microsoft

Et vous ?

Avez-vous testé TypeScript ? Qu'en pensez-vous ?

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 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 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 anthyme
Membre expérimenté https://www.developpez.com
Le 04/04/2014 à 17:11
@jojosbiz
Sauf que Typescript propose une solution aujourd'hui compatible avec l’intégralité du code js existant là ou dart est un monde a part et doit faire des connecteurs lourds à maintenir.

Je l'utilise sur 2 projets réel depuis les previews et le gain en solidité de code notamment vis a vis des refactoring est vraiment appréciable.
Ensuite vous pouvez avoir du javascript pur très solide aussi ... S'il est fortement couvert par des tests unitaires, et c'est encore rarement le cas sur les personne faisant pas mal de javascript.

Personnellement je ne mets pas des classes dans tous les sens, j'aime aussi la flexibilité de la programmation fonctionnelle de Javascript et de ses nested function.
Par contre pour ce qui est de la découverte des types dans l'IDE, la protection des erreurs à la compilation, les modules, les lambda, les interfaces c'est le top.
2  0 
Avatar de Traroth2
Membre chevronné https://www.developpez.com
Le 09/04/2014 à 10:54
Citation Envoyé par redcurve Voir le message
Coté serveur javascript n'est pas très performant puisqu'il n'est jamais exécuté ^^ . Le code JS est "transpiler" en code natif qui lui est exécuté, je te renvoi à la documentation et au code source de V8. Le javascript coté serveur ça n'existe que dans ta tête
Si on va par là, le seul code exécuté au niveau du processeur est du code machine, hein. Qu'un processeur n'est pas capable d'exécuter directement du Javascript est une évidence. Pas plus que du C ou du Java, d'ailleurs.
2  0 
Avatar de gretro
Membre actif https://www.developpez.com
Le 04/04/2014 à 15:45
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 !
Je ne suis pas d'accord avec toi pour plusieurs raisons. De un, il est bien évidemment possible de faire des applications Web (ou autre) en Javascript pur. Le problème devient cependant la maintenabilité. Pour faire un peu d'interactivité à gauche à droite, il est probablement mieux de faire du Javascript pur, à l'aide d'une librairie telle que jQuery. Cependant, quand tu commences à faire des apps avec des framework comme Angular, Ember ou Knockout (bref, avec un pattern MVC/MVVM), on se rend compte que ça devient vite un foutoir.

C'est dans ces cas où l'utilisation de Typescript, Dart ou CoffeeScript devient intéressante, car l'application devient alors structurée comme une application en POO classique. Bref, ça devient très utile et beaucoup lisible.

Bref, une bonne nouvelle pour Typescript que j'aimais bien après l'avoir essayé. Il manquait cependant le mot-clef protected et un moyen facile de faire référence à this de manière consistante (sans passer par la technique self par exemple).
1  0 
Avatar de I_Pnose
Membre chevronné https://www.developpez.com
Le 04/04/2014 à 17:01
Citation Envoyé par jojosbiz Voir le message
Mais ça n'existe pas en Javascript, alors inutile de toujours pleurer (c'est bien ce qu'il se passe chaque fois qu'il y a un article sur ce sujet) sur le fait que le langage n'est pas adapté etc...
Changez de langage s'il ne vous plait pas, ou inventez en un si vous le pouvez (aucune arrogance de ma part, moi j'en serai incapable, c'est certain...)
Il en existe plein d'autres.
Pour y être actuellement confronté, je ne peux qu'appuyer les propos de Greto (très fortement).

Et pourquoi tu veux absolument nous faire développer un nouveau langage puisqu'en l’occurrence TypeScript apporte des réponses à certains manquements de Javascript. Bref, que tu n'y vois aucune utilité, soit, mais je peux t'assurer que l'intérêt d'une telle "surcouche" n'est pas null pour tout le monde.
1  0 
Avatar de regis.portalez
Membre habitué https://www.developpez.com
Le 14/04/2014 à 13:47
Ce n'est pas taillant les oreilles en pointe à un âne qu'on en fait un cheval de course...
En fait si

J'utilise typescript depuis la version 0.8.3 (depuis à peu près un an), et je peux dire que ça change vraiment la vie.
Je suis d'accord pour dire que ça ne sert à rien pour faire un widget de 20 lignes, mais quand tu commences à avoir plusieurs dizaines de milliers de lignes et un grosse équipe (genre 6-7 devs), c'est vraiment très important d'avoir du static typing et de l'autocompletion correcte. Avant j'étais sur un gros projet en js pur, et quand tu veux refactor un truc un peu compliqué, c'est vraiment la m***... Le typing aide complètement.
Il aide aussi à la généricité (interfaces et autres).

Dart et Coffeescript sont aussi de très bonnes initiatives sur le sujet, mais l'avantage de typescript, c'est que le code génére ressemble au code que tu écris vraiment (ce qui rend le debogage plus facile, même sans sourcemap), que les types sont optionels, ce qui rend plus facile la migration d'une base de code existante.

Ce qui manque encore à typescript c'est protected (complètement d'accord), et sans doute un peu de tooling refactor/tests/coverage...
1  0 
Avatar de Paleo
Membre éclairé https://www.developpez.com
Le 25/05/2014 à 11:50
Bonjour, je me permets de signaler un projet personnel : Wot, un framework léger pour TypeScript. Je le développe depuis plusieurs mois. Il est rapide à appréhender. L'objectif est d'organiser le code de la vue afin qu'il devienne réutilisable. Avec Wot la vue est faite de composants imbriqués, par exemple un composant "List" fait de composants "Item". Chaque composant est une "boite noire" réutilisable qui encapsule du code JS (produit par TS), des templates en HTML et du code CSS. J'accueillerai avec plaisir les remarques, critiques, questions…
1  0