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 :

JavaScript : la risée des langages de programmation ?


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Philippines

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2005
    Messages : 244
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (now != now2) { alert('WAT... ;_;?') }
    Euh... fail...

    Dans quel langage une instance d'un objet est égale à une autre instance ???
    c#, c++, ruby, python, tout les langages qui reimplementent les opérateurs. Et optionnellement une grande partie des langages de scripts modernes.

    D'ailleurs date1 > date2 fonctionne, va comprendre ils ont implémenté les opérateurs less_than, greater_than mais pas equals. Dans ce cas autant rien implémenter, non? ;-)

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 19
    Par défaut
    Tant de passion pour un langage qui a eu Lisp comme nourrice et Java comme couturière ...

    Les seuls vrais erreurs du langage sont les choix marketing et stylistique, le reste n'a aucun intérêt tant il suffit de changer de point de vue et d'usage pour trouver des choses imbuvables dans TOUS les langages.

    Et la grosse blague Javascript n'a pas de classes, il faudrait un peu se renseigner sur la programmation par prototype avant de sortir ce genre d'ânerie en 2013.

  3. #3
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par défaut
    @anykeyh

    Pour vérifier si deux dates sont égales : dt1.getTime() === dt2.getTime()
    Ou aller voir la FAQ Javascript : Comment comparer deux dates ?

  4. #4
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Philippines

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2005
    Messages : 244
    Par défaut
    Citation Envoyé par Kaamo Voir le message
    @anykeyh

    Pour vérifier si deux dates sont égales : dt1.getTime() === dt2.getTime()
    Ou aller voir la FAQ Javascript : Comment comparer deux dates ?
    Bien sur, je sais, je pointe juste des choses qui m'hérissent les poils

    En fait le problème de javascript, c'est que c'est un langage "opportuniste", comme php, je m'explique (et désolé si je prend des raccourcis):

    D'un coté on a des langages de "recherches", partant d'un postulat ou d'une philosophie.
    Par exemple, java la philosophie de depart c'est "write once run everywhere", et un code clair et facilement maintenable (pas de surcharge d'opérateurs, typage fort, contrat d'interfaces etc...)

    Haskell le postulat c'est "lazy evaluation" et "lambda calcul"

    Ruby c'est "tout est objet", "on veut faire lisp en plus lisible et plus clair"

    On peut en trouver tout un tas de langages qui ont été développés car les auteurs on voulu travailler sur une nouvelle philosophie.
    Et les applications technique sont venues après.

    À l'inverse, on a des langages developpé pour une application: javascript a été developpé par netscape, pour animer les pages web. Bref la philosophie ici c'est "on fait un truc qui anime les pages web".
    Idem pour PHP, "on fait un truc coté serveur pour gerer les formulaires et l'affichage de page dynamique".

    Après coup, faut pas s'étonner que beaucoup de monde tapent sur ces langages; même hors du champ de l'informatique, dans tout les domaines c'est la même chose. En archi, une barre HLM c'est purement fonctionnel, comme javascript ou PHP quoi.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 91
    Par défaut
    <HS>
    Citation Envoyé par anykeyh Voir le message
    En archi, une barre HLM c'est purement fonctionnel.
    Heureusement qu'on est sur une forum d'info parce que v'la le beau gros troll à 2 balles...
    </HS>

  6. #6
    Membre actif
    Inscrit en
    Juin 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 50
    Par défaut
    Heu, c'est quoi un "WAT"?

  7. #7
    Membre confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2013
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 88
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ZJP972 Voir le message
    Heu, c'est quoi un "WAT"?
    Un WAT est une phénomène étrange d'un langage (pas forcément Javascript) où "wat" (pour "what" = "quoi" en anglais) serait la première expression qui sortirais de ta bouche en l'observant.

    Citation Envoyé par s4mk1ng
    Il faut avouer que c'est un langage étrange
    Il est possible de recréer la majorité des particularités du javascript avec tout autre langage même objet.

    Un "objet" javascript est une Map de String vers d'autres objets
    Une fonction est un "executable" isolé à qui il peux lui être donné un contexte. J'entends par "executable", quelquechose de similaire au Runnable de Java.
    L'opérateur "new" est une copie simple du prototype donné avec l'application de la fonction à l'origine du prototype sur la copie.

  8. #8
    Membre éclairé Avatar de s4mk1ng
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2008
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2008
    Messages : 535
    Par défaut
    Il faut avouer que c'est un langage étrange par rapport aux autres langages courremment utilisé, le fait qu'il ne fonctionne pas en objet mais en prototype est à lui seul déroutant(à moins qu'il y en ai qui utilisent Self ).

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 28
    Par défaut quand on joue sur des règles
    implicites, il faut pas s'attendre à quelque chose de logique. Ce type d'opération sont à éviter, il en est de même pour tout langage dans les priorités des opérateurs, si on utilise pas les parenthèses, on laisse le parseur faire l'évaluation lui même des groupes, * et / ayant une priorité plus grande sur - et +...

    Par exemple par rapport à ce qui a été dit

    "1" + "2" = "12"
    car le plus est un opérateur de concaténation pour les chaînes

    "1" - "2" = -1
    car le moins est un opérateur pour les nombres, l'analyseur convertit "1" en 1 et "2" en 2. Ce qui est assez logique.

    Par contre ce qui l'est moins, c'est d'avoir ce type de séquence dans son code, preuve qu'il y a surtout un problème dans la maîtrise du langage.

    Bref, on peut faire dire n'importe quoi en zoomant sur des faux problèmes d'écriture qui ne concernent pas vraiment un développement "normal".


  10. #10
    Membre éclairé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2005
    Messages : 464
    Par défaut
    Le problème des langages faiblement typé : souvent tu ne sais pas comment ta variable sera traitée, et tu passes ton temps à faire des conversions pour éviter les ambiguités.

  11. #11
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 223
    Par défaut
    Je n'avais jamais entendu parler de ces "WAT" mais ce que la vidéo me donne à penser c'est que ceux qui en font sont apparemment encore plus débiles que ce qu'ils essaient de mettre en évidence! En tout cas, rien de constructif. Plus ça va et plus je me dit qu'il y a des gens qui s'ennuient vraiment dans la vie.

    En voyant la vidéo et en entendant les rires des gens j'ai surtout l'impression qu'ils n'avaient rien compris à ce qu'est la programmation objet ou le typage fort. Alors on va éviter de leur parler en plus de la surcharge des opérateurs...

    Bref, pour apporter ma petite pierre à l'édifice, je peux témoigner que dans un langage de preuve formelle (dont je tairai le nom parce qu'il ne mérite pas d'être conspué de la sorte), il m'a été possible il y a une dizaine d'année de prouver que 0=1 et par conséquence de prouver n'importe quoi. Cela dit, je l'ai fait exprès et en exploitant malicieusement un problème connu qui a sans doute été corrigé depuis.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Ce genre d'articles à trolls est lassant. On pourrait dire de n'importe langage qu'il est "la risée" à partir du moment où il ne plaît pas à au moins un programmeur qui l'expose ainsi publiquement sur le net. C'est bien simple pour moi : AUCUN langage n'est meilleur que l'autre car cela dépend de si nombreux facteurs, à commencer par la nature d'un projet par exemple.

  13. #13
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 657
    Par défaut
    Ce genre d'articles à trolls est lassant. On pourrait dire de n'importe langage qu'il est "la risée" à partir du moment où il ne plaît pas à au moins un programmeur qui l'expose ainsi publiquement sur le net. C'est bien simple pour moi : AUCUN langage n'est meilleur que l'autre car cela dépend de si nombreux facteurs, à commencer par la nature d'un projet par exemple.
    La seule raison pour laquelle les programmeurs codent en javascript est parce qu'ils n'ont pas le choix.

    C'est une chose unique dans l'histoire de l'informatique qu'un langage de haut niveau soit "non négociable".

    Donc forcément , il est extrêmement critiqué. Et il n'évoluera que très peu pour ne pas casser la compatibilité avec d'anciens scripts.

  14. #14
    Invité
    Invité(e)
    Par défaut
    Ben tout dépend le point de vue, il y en a qui par exemple passent du temps à chercher des défauts à un langage et n'avancent pas (terme suggéré = "masturbation mentale") et puis d'autres qui codent dans ce langage, ont appris à contourner les défauts, à maîtriser certains aspects, et réussissent à produire des projets qui rapportent de l'argent.

    Prenons par exemple un site Web à forte affluence qui a misé à fond sur AJAX (et par conséquent sur du Javascript). Pensez-vous que ses concepteurs passent du temps à se prendre la tête sur "oui mais en Javascript on a ce défaut, et bla bla bla..."?

  15. #15
    Membre très actif
    Profil pro
    Développeur indépendant
    Inscrit en
    Août 2004
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur indépendant
    Secteur : Transports

    Informations forums :
    Inscription : Août 2004
    Messages : 374
    Par défaut
    c'est symptomatique d'une faineantise generalisée que de toujours vouloir retrouver les concepts de son langage dans d'autres.(j'ai fait pareil..)
    Mais,
    le c n'est pas du c++, ni du java, ni du javascript. les concepts ne sont pas les memes.
    il faut arreter de croire qu'on peut apprendre javascript en 2 jours juste en appliquant quelques paralleles avec son langage d'origine. il est beaucoup plus profond et puissant que ca.
    le prototypage de js remplace la notion de classes . c'est pas le meme mot, pas non plus le meme concept, il faut analyser et apprendre les specificites de ce langage avant de croire le maitriser ou le critiquer.
    c'est pas non plus une raison de cracher sur le typage fort.
    chaque langage a une raison d'exister. ne fut-ce que parce que son createur voulait le créer et l'a fait.
    respectez au moins ca. eux l'ont fait, et vous.?
    Si un langage ne vous plait pas, inventez mieux.

  16. #16
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 623
    Par défaut
    Le problème de Javascript n'a jamais été le fait qu'il n'y a pas de classe. Cette question, c'est un membre du forum qui l'a posée, mais ça n'apparait ni dans le WAT, ni dans wtfjs...

    Et puis si énormément de projets (sites, ou APIs) se base sur JQuery et si des grands éditeurs comme Microsoft, Google ou Mozilla, cherchent à le remplacer, c'est qu'il y a un vrai problème avec ce langage

  17. #17
    Membre éprouvé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2009
    Messages
    1 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 030
    Par défaut
    Oui, le Javascript a été fait selon la vision de son créateur et il n'en sera pas autrement.
    Oui ce n'est pas un langage objet mais un langage de prototypage.
    Oui, il peut être très puissant quand maîtrisé. Il suffit de voir ceux qui arrivent à programmer des Diablo-Like avec ou encore WebGL. Il est également très performant et l'absence de compilation peut être avantageuse pour certains.

    Mais n'empêche que si on ne connaît pas toutes ses subtilités (par exemple au niveau des conversions implicites), il reste très difficile à appréhender et à débugguer (fonctionnalité qui ne fait rien et message d'erreur souvent sans rapport avec l'erreur dans la console), et excessivement énervant. Surtout quand les navigateurs n'utilisent pas tous la même implémentation de celui-ci.

    Si le Javascript est si intuitif aux dires de certains, pourquoi tous ces frameworks (mootools, jquery, dojo,...) ? De ce que je connais, il s'agit du langage possédant le plus de Frameworks à ce jour. Et contrairement par exemple à PHP, Java ou .NET, la plupart de ces Frameworks sont là pour modifier et simplifier le langage, pas pour mettre en place des design patterns.

    A l'école, est-ce qu'on nous enseigne le Javascript et ses paradigmes ? Mouais, 2 TP d'une heure sur du DOM... En 7 ans d'études (IUT et FAC confondus (et 2 Master de 2 sections différentes dont 1 Multimédia) !!!
    Par contre on va passer 6 mois à faire de l'ADA, du PovRay ou du Scilab...

    Quand je vois des SSII qui demandent des juniors avec FORTE EXPERIENCE en Javascript, ça me fait doucement rigoler. A mon avis, pour maîtriser un minimum Javascript, il faut passer au moins 1 an à ne faire que ça ! Et je sens qu'il faut au moins 5 ans d'expérience professionnelle pour réussir à accumuler 1 an de Javascript, et encore...

    Le langage a des défauts voire des malfaçons ? Sans doute. Mais je pense qu'une bonne partie de ceux qui en parlent ou se moquent sont ignorants. Je suis moi même ignorant (en 3 ans d'expérience pro, j'ai dû accumuler 1 mois de Javascript, tout simplement parce qu'on essaie de l'utiliser le moins possible).

    Bref, Javascript est pour le moment le seul langage client pour le web, pouvant s'interfacer à un serveur. Il est performant, sûrement bien fait pour qui le maîtrise, mais reste difficile d'approche et fait peur aux développeurs d'aujourd'hui tel l'assembleur. Il demande des compétences qui ne nous sont pas enseignées correctement.
    Des Frameworks sont nés pour le rendre plus accessible, mieux organisé, au détriment des performances.
    Maintenant, une première alternative au javascript émerge enfin : le Dart. Pour la plupart des navigateurs (pour le moment), on perdra en performances, par contre sous ceux supportant la VM native, elles seront supérieures au JS.

    Je suis en train d'utiliser Dart pour mon projet personnel actuel et il est appréciable d'avoir enfin le choix !

  18. #18
    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
    Citation Envoyé par Farid63
    si énormément de projets (sites, ou APIs) se base sur JQuery et si des grands éditeurs comme Microsoft, Google ou Mozilla, cherchent à le remplacer, c'est qu'il y a un vrai problème avec ce langage
    De la même manière, on pourrait aussi dire que si des grands éditeurs s'investissent tant dans HTML5 et ses API JavaScript, ce n'est peut-être pas pour le remplacer... Et si beaucoup de projets se basent sur jQuery, c'est effectivement parce que jQuery permet de simplifier le code que l'on écrit (pas celui qui est réellement exécuté...) mais aussi parce que de nombreux développeurs Web ne connaissent pas JavaScript ! Quand on voit des projets utiliser jQuery uniquement pour remplacer la notation document.getElementById() (j'exagère à peine...), ça en dit long sur les compétences...

    Citation Envoyé par LSMetag
    Oui ce n'est pas un langage objet mais un langage de prototypage.
    Bien sûr que si JavaScript est un langage objet ! On ne cesse de le répéter : la programmation objet ne se limite pas à la POO par classes !
    En JavaScript, tout est objet justement.
    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

  19. #19
    Membre éprouvé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2009
    Messages
    1 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 030
    Par défaut
    Citation Envoyé par Bovino
    Bien sûr que si JavaScript est un langage objet ! On ne cesse de le répéter : la programmation objet ne se limite pas à la POO par classes !
    En JavaScript, tout est objet justement.
    Mea culpa. Je me suis mal exprimé.
    Je voulais dire Programmation Orientée Objet et Programmation Orientée Prototype qui reste de l'orienté objet, mais pas comme on a l'habitude d'utiliser (pas de classes,...). Ca reste malgré tout une philosophie différente.

  20. #20
    Membre extrêmement actif
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Farid63 Voir le message
    Le problème de Javascript n'a jamais été le fait qu'il n'y a pas de classe. Cette question, c'est un membre du forum qui l'a posée, mais ça n'apparait ni dans le WAT, ni dans wtfjs...

    Et puis si énormément de projets (sites, ou APIs) se base sur JQuery et si des grands éditeurs comme Microsoft, Google ou Mozilla, cherchent à le remplacer, c'est qu'il y a un vrai problème avec ce langage
    Je comprends pas....

    jQuery est une librairie JavaScript : ou est le problème ??

    Donc, toi tu va faire du C/C++/C#/java from scratch ? bon courage hein, essaye de faire un programme sans importer une seule librairie.

    Celons ta logique, si on est obligé d'importer math.h dans un programme C c'est que le langage C à donc un vrai problème ?

    Franchement je ne suis pas du tout d'accord avec ta logique. Les libs sont des briques à utiliser pour ne pas ré-inventer la roue et elles existent dans tous les langages.
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

Discussions similaires

  1. JavaScript en tête du classement des langages de programmation
    Par Hinault Romaric dans le forum Actualités
    Réponses: 31
    Dernier message: 07/08/2014, 12h45
  2. JavaScript : la risée des langages de programmation ?
    Par Cedric Chevalier dans le forum Actualités
    Réponses: 22
    Dernier message: 20/06/2013, 06h54
  3. Parts de marchés des langages de programmation
    Par Marc Lussac dans le forum Langages de programmation
    Réponses: 51
    Dernier message: 21/05/2013, 13h51
  4. L'avenir des langages de programmation
    Par LordBob dans le forum Langages de programmation
    Réponses: 14
    Dernier message: 02/04/2006, 23h03

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