Tous contre Javascript ?

2 oct

Dart, GWT, Haxe, et maintenant Microsoft avec TypeScript, ils sont nombreux à chercher une alternative à JavaScript.
Mais pourquoi ?
JavaScript est une technologie très populaire qui, se place depuis quelques temps, comme un choix incontournable dans le développement d’application Web.
S’il ne fait aucun doute qu’elle est parfaitement adaptée à la conception d’un site internet, cela reste à prouver pour le développement d’une application.

Le développement d’application existe depuis très longtemps, et une application Web n’a que peu de choses de différent.
Les développeurs se sont appuyés sur des langages comme Java, C#, C++, qu’ils ont fait murir avec le temps. Ils ont industrialisé leur processus de développement et utilise de puissant IDE, accélérant leur productivité et améliorant la qualité de leur produit.
Si la syntaxe du JavaScript se rapproche de ces langages, il n’en est rien de ce qu’il propose en terme de features.

Dart, GWT & co, tentent de combler ce manque.
Voici ce que propose Haxe par exemple :

    - Classic Object-Oriented class + interface model
    - Strictly typed but with Dynamic support
    - Packages and modules
    - Generics (type parameters) with one or several constraints
    - Advanced Type Inference
    - Anonymous Structures with structural subtyping
    - Strictly typed function types, functions closures, partial applications
    - Polymorphic Methods (per-method type parameters), with constraints
    - Optional and constant default value function arguments
    - Explicit Inline methods and constant inlined variables
    - Local function declarations with this capturing
    - Automatic closure creation
    - Powerful Enums (with constructor parameters and pattern matching)
    - No statements : only expressions
    - Exceptions (try/catch)
    - Metadata
    - Partial function call with callback
    - Getter/Setter and more with Properties
    - Method injection with "using" mixin
    - Conditional Compilation
    - Iterators
    - Syntax shortcuts using Macros.

Si tout le monde cherche à remplacer JavaScript dans le développement d’application Web, c’est simplement parce que le langage n’est pas adapté.

5 Responses to “Tous contre Javascript ?”

  1. Eric 03. oct, 2012 at 10 h 45 min #

    David, j’ai pas vu mentionner FLASH comme seule alternative valable pour des vrais applis Web. Venant de ta part, oubli ?
    :p

  2. Aurélien Pegny 03. oct, 2012 at 23 h 58 min #

    Je crois que la conclusion ne devrait pas être « n’est pas adapté » mais « n’est plus totalement adapté »…

    En effet, on peut presque tout faire en JS, mais coder en JS natif est une horreur (déjà parce que les navigateurs ne l’interprètent pas de la même façon, de deux parce que presque rien n’est disponible de base à par les méthodes sur les string et les dates… il manque, entre autre, les méthodes des array).

    Je pense que ta conclusion aurait dû être que le JS natif est horrible, et commence à accuser le poids de l’âge en terme de features, et que l’on est obligé de passer par des framework tel jQuery désormais, ce serait moins choquant ;)

    PS : d’ailleurs il faudrait m’expliquer pourquoi quand on fait un getMonth sur une date, janvier c’est 0…

    • Jean-Pierre 04. oct, 2012 at 10 h 20 min #

      Non mais là vraiment, c’est n’importe quoi, prendre partie comme ça reviens a dire que les développeurs Français sont dépassés a cause de leur grosse tête qui ne passe plus les portes.

      a bon entendeur.

      • Aurélien Pegny 04. oct, 2012 at 12 h 36 min #

        Installez des portes-fenêtres :)

        Non, trêve de plaisanterie, le but n’est pas de se battre mais d’expliquer pourquoi tant de sociétés essaient de créer leur surcouche JavaScript. Ce ne sont pas des framework qui facilitent la vie des développeurs, mais vraiment des surcouches qui permettent de combler l’écart entre JavaScript et les langages modernes.

        Si le JS n’avait pas pris tant de retard, pourquoi Google et Microsoft chercheraient-ils à mettre en place des surcouches pour ce langage? Pour faire jolie? je ne pense pas.

        Le but n’est pas de s’affronter mais de comprendre pourquoi JavaScript n’a pas évolué aussi vite que le reste du Web, alors même qu’il en est un élément indispensable, surtout depuis l’avènement du Web 2.0, l’AJAX et l’arrivée des frameworks (comme jQuery).

        David n’a jamais dit que JS était nul ou inadapté, mais qu’il commence à avoir des lacunes, c’est tout, et que ces surcouches ne font que mettre en évidence ces lacunes. Il n’y a pas de fumé sans feu…

  3. David Bruant 16. nov, 2012 at 13 h 27 min #

    « cela reste à prouver pour le développement d’une application. »
    => J’ai travaillé pendant 8 mois sur une grosse application Node.js en équipe de 4. On a bien travaillé, pas de problème majeur lié au langage.

    « Si tout le monde cherche à remplacer JavaScript dans le développement d’application Web, c’est simplement parce que le langage n’est pas adapté. »
    => Cette remarque est malvenue pour annoncer TypeScript :-) TypeScript, c’est un superset de JS, donc tout code JS actuel est du TypeScript.

    Pour des raisons historiques et économiques, JavaScript a des problèmes et pièges au niveau du langage que l’on ne peut plus enlever.
    Pour de grosses applications, JavaScript souffre aussi d’être trop libéral. La solution, c’est de créer des outils comme JSlint, TypeScript ou autres qui ajoutent une couche de vérification comme le fait un compilateur.
    Dans cette histoire, personne n’est contre JavaScript. Tout le monde essaye d’en tirer le meilleur pour ce qui est bon et de créer de l’outillage pour les parties où il y a des lacunes.

Leave a Reply

*