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

JavaScript Discussion :

La syntaxe de JavaScript est-elle adaptée aux caractéristiques du langage ? Et est-ce la faute de Java ? [Débat]


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté

    Inscrit en
    Juillet 2009
    Messages
    3 407
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 407
    Par défaut La syntaxe de JavaScript est-elle adaptée aux caractéristiques du langage ? Et est-ce la faute de Java ?
    La syntaxe JavaScript est-elle adaptée aux caractéristiques du langage ?
    Non, répond le créateur du tout nouveau CoffeeScript, qui lui reproche de venir de Java


    Le créateur de CoffeeScript, qu'il qualifie lui-même de "JavaScript pas fantaisiste", n'y va pas par quatre chemins : la syntaxe de JavaScript n'est pas adaptée. Elle est laide et en plus, elle vient de Java.

    Nombreux sont effectivement ceux qui considèrent JavaScript comme un langage raffiné mais mal servi (l'un des plus connus étant Douglas Crockford, auteur de "JavaScript : the good parts" traduit en français par "JavaScript : gardez le meilleur").

    Pour y remédier, Jeremy Ashkenas a donc eu l'idée de lancer un projet open-source baptisé CoffeeScript. Encore à ses balbutiements, il s'agit d'une variation de JavaScript avec une syntaxe qui reflèterait mieux ses caractéristiques.

    "L'idée de base c'est de dire que le noyau JavaScript ainsi que son modèle orienté objet ou fonctionnel sont vraiment très bons, mais que tout ça est caché derrière une syntaxe qui vient de Java, principalement. Le problème qui en découle c'est que cette syntaxe ne reflète pas les concepts profonds du langage" sous entendu : la syntaxe de JavaScript n'est pas aussi élégante et aussi utile que ses concepts.

    Les développeurs Java apprécieront...

    Avec un compilateur en Ruby, CoffeeScript n'apporte pas de méthode ou d'objet particuliers mais il compile directement en pur JavaScript.

    Il offre également des tableaux de compréhension similaire à ceux de Python et fait des déclarations JavaScript viables.

    Son créateur assure que son objectif est aussi de rendre JavaScript plus simple et plus sûr : "avec CoffeeScript, vous ne pouvez plus accidentellement créer une variable. Cette fonctionnalité amène plus de sureté au langage", affirme-t-il.

    Même si le projet n'est pas suffisamment avancé pour déployer des applications, la version actuelle permet de le tester en développement Web ou pour des développements coté-serveur par exemple.

    CoffeeScript 0.2.0 est disponible sur GitHub
    http://github.com/jashkenas/coffee-script

    De quoi remettre au coeur des préoccupations les bonnes pratiques JavaScript - qui serait plutôt mal loti dans ce domaine.
    http://www.developpez.net/forums/d74...es-javascript/

    Pardon... "était" mal loti ?

    Source : Le site de Douglas Crockford
    http://www.crockford.com/

    Lire aussi

    Microsoft abandonne AJAX pour Silverlight dans ses nouvelles Bing Maps : un coup de grâce avant l'heure pour le HTML 5 ?
    Firefox va-t-il disparaître au profit de Chrome ? comme l'affirme une étude pour qui le recul d'Internet Explorer est aussi très exagéré
    La pré-alpha d'Opera 10.5 est maintenant disponible, avec un nouveau moteur de JavaScript

    Le pire bout de code que vous ayez vu : Qui l'a fait ? Pourquoi ? Pourquoi était-il si horrible ?

    Les rubriques Développement Web, Java et JavaScript (news, tutos, forums) de Developpez.com


    Et vous ?

    Pensez-vous que la syntaxe de JavaScript soit laide et peu adaptée ? Quels éléments aimeriez-vous voir modifier ou disparaitre ?
    Et pensez-vous que ces défauts viennent de Java ?

  2. #2
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    "L'idée de base c'est de dire que le noyau JavaScript ainsi que son modèle orienté objet ou fonctionnel sont vraiment très bons, mais que tout ça est caché derrière une syntaxe qui vient de Java, principalement. Le problème qui en découle c'est que cette syntaxe ne reflète pas les concepts profonds du langage"
    Mouais, encore un type qui essaie de se faire sa pub a pas cher.

    CoffeeScript permet juste en gros de passer d'une syntaxe java-like (et encore...), à une syntaxe ruby-like. J'ai du mal à voir l'intérêt pratique de la chose. D'ailleurs, en parcourant la doc de CoffeeScript, on ne trouve rien de plus que ce que peut apporter un framework comme prototype.

    Si la seule plus-value de son langage est de "ne plus accidentellement créer une variable. Cette fonctionnalité amène plus de sureté au langage", il se donne bien de la peine pour pas grand chose. Il suffit de mettre un "var" devant le nom de la variable la première fois qu'on l'utilise. Une nouveauté en somme...

    Pensez-vous que la syntaxe de JavaScript soit laide et peu adaptée ? Quels éléments aimeriez-vous voir modifier ou disparaitre ?
    Entre coffeescript et javascript, je prefère de loin la syntaxe de javascript. L'indentation pour marquer les blocs, très peu pour moi surtout quand on s'est mangé des syntaxe error en python pour 2 espaces au lieu d'un tab...

    Et pensez-vous que ces défauts viennent de Java ?
    Outre historique, le lien entre java et javascript est vraiment ténu. Ca serait malhonnête d'accuser l'un pour les travers de l'autre.

  3. #3
    Inactif  
    Inscrit en
    Novembre 2008
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 255
    Par défaut
    Citation Envoyé par DoubleU Voir le message
    Outre historique, le lien entre java et javascript est vraiment ténu. Ca serait malhonnête d'accuser l'un pour les travers de l'autre.
    T'es sérieux la dessus ?


    Elle est laide et en plus, elle vient de Java
    Je dirais plutôt inspiré de java et que réellement elle ne ressemble en rien à java, et c'est vrai qu'elle laide.
    Sérieusement j'attendais que quelqu'un fasse un pas la dessus et c'est fait.

  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
    Concernant la syntaxe JavaScript, l'argument de Douglas Crockford et d'autres (argumentation à laquelle j'adhère du reste) est que JavaScript est un beau langage mais mal né, à l'époque de la guerre des navigateurs et sans standardisation. D'où des syntaxes évoluant au fur et à mesure des versions, des implémentations différentes selon les navigateurs et une quasi impossibilité d'épurer tout cela puisque JavaScript est compilé directement sur le poste client et qu'il est nécessaire d'assurer une rétro compatibilité...
    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
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Citation Envoyé par Bovino Voir le message
    ... des syntaxes évoluant au fur et à mesure des versions, des implémentations différentes selon les navigateurs et une quasi impossibilité d'épurer tout cela ...
    Totalement d'accord, c'est pourquoi je vous recommande l'usage d'une « bibliothèque » (framework) et plus particulièrement jQuery 1.4 !

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  6. #6
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par DoubleU Voir le message
    Mouais, encore un type qui essaie de se faire sa pub a pas cher.
    Il y a effectivement comme un parfum de buzz ^^

    Mais de nouvelles ramifications dans l'arbre des langages sont toujours un apport, jamais une perte. Laissons CoffeScript mûrir un peu et c'est l'épreuve du feu (en clair : l'usage) qui sera réellement décisive.

    Mais bon, cela dit, je ne la trouve pas si laide la syntaxe de js... c'est plutot le bordel de ses multiples implémentations qui pose des problèmes.

  7. #7
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    mouais je ne vois pas vraiment ce qu'apporte CoffeeScript

    ça ne change pas vraiment le langage.
    lorsqu'on utilise une bonne lib comme jQuery ou ExtJs franchement la syntaxe de js ...

    et CoffeeScript n'apporte rien de plus l'écriture de classe est quasi identique à celle qu'on a dans ExtJs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    # Document Model
    dc.model.Document: dc.Model.extend({
     
      constructor: attributes => this.base(attributes)
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Ext.app.FormController = function(cfg) {
        Ext.app.FormController.superclass.constructor.call(this);
    }
     
    Ext.extend(Ext.app.FormController, Ext.app.AbstractController, {
    }
    Ok c'est une syntaxe à la ruby

    dans le genre qui ne ma pas convaincu pour d'autres raison on a eu droit à
    http://fr.wikipedia.org/wiki/Objective-J
    http://cappuccino.org/learn/

    objective-j est au javascript ce qu'objective-c est au C c'est à dire une langage dynamique à objet orienté classe dans la lignée de smalltalk

    il ne ma pas convaincu car la seule lib qui l'accompagne est une lib type cocoa qui ne propose rien d'autre qu'un look à la MacOS
    c'est très bien sur MacOS mais moi j'ai besoin de m'adapter à l'entreprise pour laquelle je travaille et là les composant de Cappuccino ne sont pas facile facile à adapter il y aurait un couche de "skin" pourquoi pas.

    reste que le language est très bien fait. mais à part porter une approche classe à la place d'une approche prototype ...

    donc pour moi rien de neuf dans cette affaire
    A+JYT

  8. #8
    Membre chevronné

    Profil pro
    Inscrit en
    Février 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 119
    Par défaut
    Pour en savoir plus lisez les cours et tutoriels Javascript et la FAQ javascript.

  9. #9
    Membre averti
    Inscrit en
    Février 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 17
    Par défaut
    J'ai quand même l'impression que ça s'adresse principalement à ceux qui sont familiers avec la syntaxe de type python. Personnellement je ne vois pas trop où est-ce que la syntaxe Java est mauvaise. Enfin je ne vois pas de quelle partie de la syntaxe Java on parle.
    En javascript on utilise des fonctions anonymes, on définit des objets via JSON, ça n'est pas vraiment de la syntaxe Java. Oui le langage utilise des accolades pour définir les blocs, ce qui n'est pas si mal. J'ai fait un peu de Python et même si le principe de définir les blocs par indentation est sympa, ça me parait comme le dit DoubleU un bon moyen de produire des erreurs de syntaxe sans un IDE adapté.

    Je n'ai pas lu tout ce qu'a écrit Crockford, mais j'ai plutôt l'impression que les erreurs de jeunesse dont il parle se situe plus dans le typeof bizarre, le fait que les points-virgules soient ajoutés à la volée par le compilateur et certains comportements inattendus au niveau du scoping. CoffeeScript apporte une solution à certains de ces problèmes (on a plus du tout de points-virgules... pourquoi pas) mais ça implique d'apprendre une toute nouvelle syntaxe si on est pas familier avec.
    Tout ce qu'il propose me parait plus ou moins inclus dans les différents frameworks existants. Du coup je pense que si CoffeeScript peut avoir un succès certain parmi ceux qui sont familiers avec ce type de langage, il ne motive pas non plus de l'apprendre quand on est habitué à la syntaxe du C (oups pardon du Java).

    Pensez-vous que la syntaxe de JavaScript soit laide et peu adaptée ? Quels éléments aimeriez-vous voir modifier ou disparaitre ?
    Laide c'est une question de goût Je ne la trouve pas si mal adaptée. Le problème est qu'effectivement quand on lit Javascript on s'attend à voir des int, des classes, des interfaces et des extends, alors que l'héritage se fait par prototypage ce qui n'a rien à voir. Mais tous les frameworks js ont une manière ou une autre de rendre ces notions plus intelligibles.

    Et pensez-vous que ces défauts viennent de Java ?
    Java ne permet pas d'omettre les points-virgules, il oblige à bien déclarer les variables ainsi que leur type et ne permet pas de déclarer tout et n'importe quoi en global... Je trouve vraiment que ça n'a rien à voir.

Discussions similaires

  1. Réponses: 24
    Dernier message: 25/03/2010, 08h58
  2. Réponses: 2
    Dernier message: 15/01/2010, 17h52
  3. Réponses: 2
    Dernier message: 15/01/2010, 17h52
  4. Réponses: 2
    Dernier message: 15/01/2010, 17h52

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