IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

TypeScript Discussion :

Pourquoi utiliser TypeScript - Une introduction � TS [Tutoriel]


Sujet :

TypeScript

  1. #1
    Membre exp�riment�
    Avatar de Paleo
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Septembre 2013
    Messages
    242
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : B�nin

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Septembre 2013
    Messages : 242
    Par d�faut Pourquoi utiliser TypeScript - Une introduction � TS
    � TypeScript, le langage compil� en JavaScript ? Mais pourquoi faudrait-il quitter JavaScript ? �

    Le langage JavaScript ne manque pas d'atouts et le mieux est souvent l'ennemi du bien. D�laisser ce qui fonctionne est un risque. Et puis il existe de solides arguments en d�faveur des langages construits sur JavaScript, examinons-les :

    • la question de la p�rennit� des syntaxes non standard ;
    • la probl�matique de l'int�gration avec l'existant ;
    • la difficult� de former ou de trouver les d�veloppeurs.

    Je r�pondrai � ces trois questions au fil de l'expos� tout en situant TypeScript par rapport aux technologies concurrentes. Je tenterai ensuite de donner envie au lecteur d'essayer.
    Lisez la suite de l'article : Pourquoi utiliser TypeScript.

    Voici le sommaire :

    I. TypeScript est un choix sans risque
    II. Faire coop�rer TypeScript et JavaScript ?
    III. La syntaxe TypeScript est p�renne
    IV. TypeScript et Microsoft ?
    V. La programmation orient�e objets et TypeScript
    VI. Les interfaces TypeScript
    VII. Typage statique ?
    VIII. Comment d�marrer avec TypeScript
    IX. Remerciements
    Vos r�actions seront les bienvenues.

  2. #2
    R�dacteur/Mod�rateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par d�faut
    +1 pour l'excellent IDE qu'est WebStorm. Mais c'est amusant que tu le mentionnes, car c'est aussi la raison pour laquelle je n'ai pas essay� TypeScript pour l'instant. En effet, pour peu qu'on ait pris la bonne habitude de documenter ses fonctions, WebStorm se charge de v�rifier les types : http://blog.jetbrains.com/webide/201...s-annotations/

    Du reste, je pr�f�re les prototypes aux classes et aux interfaces, donc TypeScript ne m'apportait finalement rien. Mais je pense que �a doit attirer beaucoup plus les d�veloppeurs Java.

  3. #3
    Membre exp�riment�
    Avatar de Paleo
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Septembre 2013
    Messages
    242
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : B�nin

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Septembre 2013
    Messages : 242
    Par d�faut
    Citation Envoy� par SylvainPV Voir le message
    Mais je pense que �a doit attirer beaucoup plus les d�veloppeurs Java.
    Et les d�veloppeurs PHP aussi.

  4. #4
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Article int�ressant et tr�s clair !



    N�anmoins, je trouve que certains points sont sujets de d�bat...

    D'une part, je rejoins SylvainPV concernant les prototypes, mais c'est peut-�tre l'habitude de les utiliser.

    Ensuite
    Un m�canisme sert � �muler un comportement de classe : le prototype dont l'usage est malheureusement verbeux, affreusement moche et incomplet.
    Trouver le mod�le de POO par prototype de JavaScript moche et incompl�te, c'est un avis et tu as raison de donner ton avis (et je suis conscient que tu n'es pas isol� ) mais je vois mal en quoi il te parait verbeux...
    Peut-�tre veux-tu juste parler de certains de ses aspects, comme par exemple l'h�ritage o� effectivement, en plus d'�tre lurd et verbeux, c'est surtout fastidieux !
    Surtout, il n'est pas destin�, sauf erreur grossi�re de ma part, � �muler un comportement de classe, au contraire, il propose une autre fa�on de consid�rer la POO.
    Impossible en particulier de d�clarer des membres priv�s dans le prototype.
    Effectivement, �a n'aurait d'ailleurs pas de sens puisqu'un prototype est un objet commun � toutes les instances de l'objet, d'ailleurs, toute modification du prototype impacte toutes les instances de l'objet, y compris celles d�j� existantes. Pour cr�er des membres priv�s, il faut le faire au niveau de l'instance.

    Mais encore une fois, ces consid�rations sont sujettes � d�bat !

    EDIT :
    Citation Envoy� par SylvainPV
    +1 pour l'excellent IDE qu'est WebStorm.
    +2 alors !
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  5. #5
    Membre exp�riment�
    Avatar de Paleo
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Septembre 2013
    Messages
    242
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : B�nin

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Septembre 2013
    Messages : 242
    Par d�faut
    Citation Envoy� par Bovino Voir le message
    Trouver le mod�le de POO par prototype de JavaScript moche et incompl�te, c'est un avis et tu as raison de donner ton avis (et je suis conscient que tu n'es pas isol� ) mais je vois mal en quoi il te parait verbeux...
    Peut-�tre veux-tu juste parler de certains de ses aspects, comme par exemple l'h�ritage o� effectivement, en plus d'�tre lurd et verbeux, c'est surtout fastidieux !
    L'h�ritage non et d'ailleurs le plus souvent l'h�ritage est une fausse bonne id�e ().

    C'est juste que, lorsqu'on raisonne sur des classes (c-�-d des objets faits dans le m�me moule), on doit �crire le prototype puis une �ventuelle fonction "factory" qui produit l'instance en lui affectant le prototype, en JS il y a mille mani�res de le faire alors qu'il devrait y en avoir z�ro puisque c'est au langage de faire �a. Plus les r�p�titions des ".prototype." pour d�clarer les membres, je sais, c'est �vitable mais en pratique on n'�vite pas. Comparez dans le Playground le code TS au code JS g�n�r� : malgr� les informations de typage en plus, dont une interface, le code TS est plus court et plus lisible.

    De toute mani�re ES6 r�glera ce point.

    Citation Envoy� par Bovino Voir le message
    Surtout, il n'est pas destin�, sauf erreur grossi�re de ma part, � �muler un comportement de classe, au contraire, il propose une autre fa�on de consid�rer la POO.
    Tiens c'est vrai �a, c'est une erreur de ma part. J'aurais d� �crire qu'il "peut servir" et non qu'il "sert".
    Tout � fait juste.

    Citation Envoy� par Bovino Voir le message
    Effectivement, �a n'aurait d'ailleurs pas de sens puisqu'un prototype est un objet commun � toutes les instances de l'objet, d'ailleurs, toute modification du prototype impacte toutes les instances de l'objet, y compris celles d�j� existantes. Pour cr�er des membres priv�s, il faut le faire au niveau de l'instance.
    Des m�thodes priv�es auraient pourtant du sens.

  6. #6
    R�dacteur/Mod�rateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par d�faut
    Citation Envoy� par Tarh_ Voir le message
    De toute mani�re ES6 r�glera ce point.
    Tu veux parler du keyword "class" ? De mon point de vue, il ne r�gle rien du tout, au contraire il ajoute une �ni�me fa�on de faire de la programmation objet en JavaScript, en perdant les avantages des prototypes.

    Le code pr�sent� sur le typescript playground reprend le pattern classique (fonctions et op�rateur new) et non le pattern prototype pur (objets et Object.create). Voil� ce que �a donnerait en prototypes :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var Greeter = {  
      greeting: "anonymous",
      greet: function () {
        return "Hello, " + this.greeting;
      }
    };
     
    var greeter = Object.create(Greeter);
    greeter.greeting = "world";
    Personnellement je trouve �a tout aussi clair. Mais �a reste un d�bat

  7. #7
    Membre exp�riment�
    Avatar de Paleo
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Septembre 2013
    Messages
    242
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : B�nin

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Septembre 2013
    Messages : 242
    Par d�faut
    Merci pour l'exemple, je n'ai encore jamais utilis� Object.create(), compatibilit� avec IE8 oblige. Mais � mort IE8 ! N�anmoins je trouve peu �l�gante la double existence de la variable "greeting" au niveau du prototype et au niveau de l'instance.

    Par certains c�t�s ce d�bat me fait penser � celui du C versus le C++.

  8. #8
    Membre averti
    Homme Profil pro
    ing�nieur IT
    Inscrit en
    Ao�t 2014
    Messages
    29
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : ing�nieur IT

    Informations forums :
    Inscription : Ao�t 2014
    Messages : 29
    Par d�faut Pas besoin d'un IDE
    Bon article,

    par contre je rebondis sur un point.

    Pas besoin d'un IDE pour coder en TypeScript.

    Perso j'avais commenc� � coder en TypeScript en 2013 avec Vim et la ligne de commande. Pour Vim, Emacs, Notepad++ et sans doute d'autres simple �diteurs de texte, il existe des plugins pour avoir la coloration syntaxique de TypeScript.
    D'ailleurs pour bien se familiariser avec la compilation de TypeScript vers JavaScript, je recommande de commencer par la ligne de commande sans utiliser de fichier de configuration comme tsconfig.json.

    Sinon, un bon IDE gratuit, l�ger et multiplateforme supportant tr�s bien le TypeScript est Visual Studio Code, je le recommande grandement.

  9. #9
    Membre exp�riment�
    Avatar de Paleo
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Septembre 2013
    Messages
    242
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : B�nin

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Septembre 2013
    Messages : 242
    Par d�faut
    Bonjour jolt-counter, merci pour le retour positif.

    Je suis �galement pass� � Visual Studio Code pour les projets TypeScript et/ou JavaScript. Mon article date un peu. En 2014, cet excellent �diteur n'existait pas.

Discussions similaires

  1. Architectures de datawarehouse - Pourquoi utiliser l'une plus que l'autre ?
    Par caballero dans le forum Conception/Mod�lisation
    R�ponses: 1
    Dernier message: 30/05/2007, 09h57
  2. [C#]Pourquoi utiliser une structure plut�t qu'une classe?
    Par egoom dans le forum Windows Forms
    R�ponses: 2
    Dernier message: 30/10/2006, 09h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo