Ce langage me donne envie de vomir ! - Histoire de Javascript

Поделиться
HTML-код
  • Опубликовано: 8 фев 2025
  • Formations: cours.cocadmin...
    Newsletter: cours.cocadmin...
    Rejoignez le discord: / discord
    Twitter: / cocadmin
    Instagram: / cocadmin

Комментарии •

  • @cocadmin
    @cocadmin  3 года назад +49

    Pour ceux que ca interessent je vais poster d'autres exemples bizarre avec leurs explications dans ma newletter : mailchi.mp/280eeb9f0080/cocadmin

    • @hegelmotokoua
      @hegelmotokoua 3 года назад +5

      J'aime beaucoup ta manière d'expliquer correctement les choses.

    • @xxx.xxx.xxx.xx1joker706
      @xxx.xxx.xxx.xx1joker706 3 года назад

      Il y a l'histoire de Python aussi. Tout ce merdier pour finalement faire le language le plus bâtard du monde, venant du monde de Linux. Ils sont forts ces anti-Microsoft dans la connerie.

    • @briepeterson9718
      @briepeterson9718 2 года назад

      tu n as pas dit combien aol a racheté netscape...j me dmande si cetait bien moins que billou ne proposait qq annees plus tot. 😅😅

    • @Titank_Production
      @Titank_Production 2 года назад

      Hello, je viens de découvrir ta chaîne; J'aime beaucoup le style et le thème ! Clair, pas de fioriture, pas de comédie > abonné :)

    • @dAvid3_f
      @dAvid3_f 8 месяцев назад +1

      404 - page not found 😢

  • @evancastel1021
    @evancastel1021 3 года назад +105

    Il n'existe aucune façon de représenter les chiffres à virgule en machine de façon exacte. 0,1 + 0,2 donne 0,300....4 dans tous les langages. Du moins ceux répondant à la norme IEEE 754 de représentation des nombres à virgules en machine, nombres appelés flottants. Cette norme s'appuie sur l'écriture scientifique du nombre en base 2.
    Il faut se rappeler que le fait qu'un nombre aie une infinité de chiffres dépend de la base. Par exemple "un tiers " a une infinité de 3 après la virgule en base 10 : 0,333333.... En base 3 c'est simplement 0,1. De même 'un dixième' s'écrit simplement 0,1 en base 10 mais 0.0001100110011001100... avec 1100 qui se répète, en base 2. Pour stocker un nombre sur 32 ou 64 bits l'ordi est donc obligé de stocker des valeurs approchées . Puis la conversion en base 10 pour écriture à l'écran ne tombe plus juste. Voici d'autres résultats surprenants :
    (a + b) + c n'est pas toujours égal à a + ( b + c)
    a * (b + c) n'est pas toujours égal à a * b + a * c
    (log(a**n) / log(a)) n'est pas toujours égal à n

    • @issamelsayd
      @issamelsayd 3 года назад +2

      Merci pour ton commentaire édifiant

    • @DoubleCiao
      @DoubleCiao 3 года назад +3

      Bon complément à la vidéo , merci.

    • @mrkanata7696
      @mrkanata7696 3 года назад +4

      Exactement, même en Java tu obtiens la même chose, pour le coup, l'exemple dans la vidéo n' est pas significatif. Par contre additionner des number avec des strings, c'est une autre histoire 😁

    • @user_R8pQm3XzY6v2jN7fDkW
      @user_R8pQm3XzY6v2jN7fDkW 3 года назад +1

      Merci pour ton commentaire. Très bon complément à la vidéo en effet.

    • @FerasOfficiel
      @FerasOfficiel 2 года назад

      Exact, j'ajouterai qu'il existe des langages pour le calcul formel qui permettent de palier à toutes les erreurs d'approximations/représentations qui s'accumulent dans les programmes écrits dans les majorité des langages. Par exemple Geogebra utilise giac/xcas pour éviter ces problèmes et bien d'autres. Giac, le moteur de calcul formel (qui donne bien "true" à 0.1 + 0.2 == 0.3) a été créé en parti dans le cadre d'un projet universitaire grenoblois

  • @consensai
    @consensai 3 года назад +189

    * 3 > 2 > 1
    Pas certain, mais 3 > 2 est d'abord interprété, ce qui donne true
    Puis true > 1 = false parce que true équivaut à 1
    * [] = []
    Les tableaux sont considérés comme des objets en JS
    Et chaque objet étant unique, chaque tableau l'est aussi
    Mis à part ces bizarreries, avec suffisemment de recul j'aime bien ce langage
    Belle syntaxe, évolution régulière des standards, facilement modulable & extensible, full stack, prototypage rapide, pour les prijets sérieux y'a Typescript

    • @murphyromain3915
      @murphyromain3915 3 года назад +6

      Je me disais bien que y'avais une logique derrière ça, merci pour cette précision

    • @luffystars3841
      @luffystars3841 3 года назад +13

      Il n'y a rien de bizarre... il suffit de savoir que c'est un langage a typage dynamique... 10 + "1" donne 101 car le 10 de type Number est dynamiquement changer en type string... et le + en javascript entre deux chaînes de caractères sert à la concaténation tout simplement.... donc bizarre oui si on utilise pas l'outil pour ce qu'il est ....utilisez un tournevis pour enfoncer des clous et dites que ce marteau est bizarre.....

    • @baratexor7459
      @baratexor7459 2 года назад

      merci ! j'ai été provoqué par ce titre et cette miniature car je trouve le js super, que ce soit en web client ou même avec node.

    • @baratexor7459
      @baratexor7459 2 года назад

      @@luffystars3841 tout ce qu'il a montré me paraît plutôt logique, et même plus qu'en java:
      > "string" == "string" //false
      et au final au vu de la base du language, c'est plutôt logique

    • @Feyli
      @Feyli 2 года назад +2

      Après vérification, ta théorie sur les comparaisons est complètement vraie puisque 3>2==0 donne false et 3>2==1 donne true, le booléen étant fondé sur true et false, mais aussi sur 1 et 0

  • @PaulTheEldritchCat
    @PaulTheEldritchCat 3 года назад +68

    Sympa cette histoire ! Alors il y a bien un lien entre Java et JavaScript, c'est juste un lien historique et pas un lien logiciel :) On en apprend tous les jours ! Merci.

    • @TheAcidPrank
      @TheAcidPrank 3 года назад

      ce que je trouve marrant c'est que Lars Bak s'est barré quand Sun micro system a été racheté par Oracle. C'est marrant si on connait l'histoire qu'il y a eu avec MySQL et MariaDB lorsqu'Oracle a pointé le bout de son nez. Décidément, y'a des développeurs qui n'aiment pas du tout travailler pour Oracle. Je me demande bien pourquoi ^^

  • @aurelienllorca
    @aurelienllorca 3 года назад +74

    0.1 + 0.2 renvoie ça pour beaucoup de langage ^^ Dès qu'on stocke les nombres en virgules flottantes on doit faire des approximations

    • @Manon-4096
      @Manon-4096 3 года назад +2

      genre en python

    • @aurelienllorca
      @aurelienllorca 3 года назад +3

      @@Manon-4096 Dans des centaines de langages mais oui ;)

    • @MegaBaye
      @MegaBaye 3 года назад

      la reponse de python ma surppris 0.1+0.2 = 0.30000000000000004
      !! pourtant un vrai langage de calcul scientifique...!!! Guindo nous dois des explication aussi

    • @bilalemohmadian8611
      @bilalemohmadian8611 3 года назад

      @@Manon-4096 Ouais mais ils ont créer une bibliothèque nommée "Decimal" avec la classe Decimal pour mettre en base 10 directement pour éviter cette erreur :p

    • @Manon-4096
      @Manon-4096 3 года назад +3

      @@MegaBaye la faute au calcul en virgule flottante. plus rapide que si on devait faire un type décimal basé sur l'arithmétique en base 10.

  • @inazumaeleven9102
    @inazumaeleven9102 3 года назад +35

    J'adore les histoires de technos raconté par toi, ce format est génial man 👍

  • @t1rke
    @t1rke 3 года назад +14

    Mais tu vises juste des cotes nuls pr dire que c'est un language bizzare genre ? 123 == '123' tu peux juste faire === ca va renvoyer faux, pour un array vide t'as pas besoin de mettre [] == [] tu peux juste faire [].length === 0 parce que sinon c'est quoi l'utilite de [] == [] et pr la virgule flottante c'est pas a cause de javascript c'est a cause de la facon dont le pc calcule ya ca sur python et dautre language aussi et il y'a toujours de la vix avec une fonction maths basique et pr le 3>2>1 c'est parce que 3>2 ca renvoie true ducoup ca devient true>1 ce qui est faux tu peux juste mettre 3>2 && 2>1... il y'a pratiquement solution pour tous, faut juste respecter la syntaxe et le fonctionnement du language

    • @Farah28100
      @Farah28100 6 месяцев назад +2

      C'est globalement des moyens de contournements bateaux face a des vrais problèmes cachés dans JavaScript à cause de son développement foireux

  • @ChristopheCasalegno
    @ChristopheCasalegno 3 года назад +21

    Petit rappel utile pour la fin de l'histoire : c'est suite à la libération du code de Netscape qu'est né Mozilla qui deviendra plus tard Mozilla Firefox. Enjoy!

    • @Galileo51Galilei
      @Galileo51Galilei 2 года назад +1

      En effet,et c'est un gros deal, c'est le projet qui va porter l'open source avec GNU/Linux. Heureusement que Netscape a fini par ouvrir ses sources, sans cela Microsoft aurait bouffé le web et mis sous clefs ses standards

  • @azertty3302
    @azertty3302 3 года назад +57

    Cette vidéo est incroyable, pour un passionner de programmation comme moi c’est du pur plaisir chaque seconde ta vidéo !

    • @maesmm
      @maesmm 3 года назад +5

      Ce que cet homme dit est faux, le JS est un langage digne des dieux. N'écoutez pas les sataniques qui tentent de le discréditer

    • @Vincent_A.Freeman
      @Vincent_A.Freeman 2 года назад

      @@maesmm Inventé par Dieu lui même.

  • @Syroco18
    @Syroco18 3 года назад +5

    Franchement mec n'hésite pas à étoffer tes vidéos, aller dans le technique etc c'est trop intéressant. La j'ai l'impression que tu limites pour des vidéos grand publique mais ces sujets méritent tellement plus.
    Gg quand même t'es un vrai crac comme on en fait plus.

    • @GamingDesCavernes
      @GamingDesCavernes 3 года назад +3

      Faire une chaîne réellement technique, c'est l'assurance de ne pas avoir de vue...

  • @primfxdesign
    @primfxdesign 3 года назад +8

    Excellente cette vidéo !
    Intéressant aussi de mentionner l'ECMA, puisque quelques années après avoir été développé (un peu à la va vite), JavaScript avait quand même été standardisé, donnant naissance à ECMAScript (si j'ai bien suivi)
    Et pour les personnes qui confondent Java et JavaScript, n'oubliez pas que "Java is to JavaScript what Car is to Carpet" 😉

  • @MrgnUTube
    @MrgnUTube 3 года назад +8

    Super intéressant comme d'habitude mais très court, j'espère que tu approfondiras!
    Javascript a eu plusieurs vies, celle que tu as présenté qui introduit l'ère des incompatibilités entre les navigateurs, l'ère JQuery qui a permis de compenser ça... à sa manière, l'ère post ES6 qui a ouvert la porte à de gros projets grâce à l'arrivée des classes... Et depuis, NodeJS, le Typescript et tout ce qui permet aujourd'hui de faire du Fullstack uniforme et solide basé sur JS).
    Vidéo excellente par le contenu, l'humour et le montage, merci :)

    • @sam0621
      @sam0621 2 года назад

      Il n'y a pas réellement de classe en JS, c'est juste un raccourci pour faire la même chose qu'avant.

  • @shunji3641
    @shunji3641 7 месяцев назад +1

    La comparaison des 2 tableaux vides qui donnent false, c'est parce que tu compares 2 objets, et dans javascript les arrays sont des objets.
    Or, également les objets sont stockés (et donc également comparé) par référence dans la stack (plutôt heap, les objets sont stockés dans la heap en JS, la stack ne stock que la référence à l'adresse dans la heap), et vu qu'ils ont 2 références différentes car grossomodo tu déclares 2 tableaux différents, ils ne sont pas égaux pour JS.
    Il y a d'autres techniques pour comparer des tableaux en JS (notamment en détournant un peu via JSON.stringify..)
    J'ai remarqué seulement à la fin en écrivant que la vidéo date d'il y a 2 ans, mais maintenant que j'ai écrit ça, je vais quand même poster :D !

  • @Tigrou7777
    @Tigrou7777 2 года назад +2

    Beaucoup de comportements bizarres en JS viennent du fait qu'il n'est pas typé, et donc quand on fait des comparaisons entre données de types différents (ex : float vs string) le language fait des conversion à sa sauce, ce qui donne parfois des résultats bizarres.

  • @baptiste_parmantier
    @baptiste_parmantier 3 года назад +27

    C'est impressionnant la quantité de bêtises racontées en seulement 30 secondes (sans parler du reste).
    0:07 : Tu demande une addition entre un nombre et un string, le langage étant en incapacité de le faire, il strigify les deux partis et les assemble avec un comportement tout à fait logique.
    0:12 : On voit tout de suite que tu ne sais pas utiliser un opérateur Javascript correctement.
    0:18 : Tu compares 2 objets qui POUR TOI sont identiques sauf que d'un point de vue machine, tu as 2 instance d'un Objet (ici un tableau) vide donc ayant 2 instances différentes, il te renvoie false.
    0:26 : Tu connais les arrondis ? Tu sais, le fameux 1/3 qui vaut 3.3333333333....................................................4 ?
    0:29 : "Et ce ne sont que 2 exemple parmi tannnnnnnt d'autres" : Tu es là pour assassiner un langage ou pour raconter l'histoire de celui-ci ?
    3:10 On ne "programme pas un navigateur" : Ça ne veut juste rien dire.
    • Toutes tes "petites anecdotes" (à 6:14 par exemple) sur le créateur de Javascript me font bien rire dans la mesure où elles ne relèvent que et uniquement de ton interprétation, à moins peut-être que tu as rencontré son créateur et que tu le côtoyais en 1995 !
    6:30 A quel moment tu peux affirmer que ce langage, aussi minimaliste pouvait-il être à sa création, ai été créé en 10 jours ? Je suis en train de créer avec un ami un langage de programmation, nous avons commencé il y a 2 mois et il n'arrive toujours pas à la cheville de la première version du Javascript. Non pas parce qu'on n'avance pas mais uniquement parce que cela relève d'une complexité de compréhension juste... énorme. A noter que les ressources dont nous disposons aujourd'hui n'existaient pas en 1995 donc chapeau au créateur pour ce qu'il a créé.
    Tu ne peux pas affirmer qu'il a été créé et 10 jours et lui cracher dessus 3 secondes plus tard en citant tous les problèmes liés à la sécurité.
    D'autant plus que la notion de sécurité dans le web a énormément évolué et que les besoins de l'époque n'ont absolument rien à voir avec ceux de 1995.
    7:50 (à peut prêt) tu dis que même il n'y a pas si longtemps, il était compliqué d'avoir une bonne compatibilité entre les navigateurs : c'est effectivement vrai.
    Sauf que tu balance cette information juste après avoir mis en avant que le problème lié à la compatibilité avait pour cause : 2 langage différents.
    Ça fait extrêmement longtemps que le problème ne vient plus de ces deux langage puisque l'un a totalement été dégagé au profit de l'autre.
    Ici encore une fois, ton script est très mal agencé, mal organisé.. A moins que ta volonté de guillotiner le Javascript est réelle...
    Ce qui est amusant d'ailleurs c'est que tu ne montre quasiment aucun code en Javascript dans ta vidéo de fond... (au mieux on a vu du WebAssembler.. mais qui n'est toujours pas du Javascript..)
    Tout le discours que tu emplois est orienté pour dévaloriser, dénigrer le Javascript. Ce langage qui est omniprésent sur tous les supports, desktop, mobile, web, micro-logiciels embarqués (et j'en passe).
    Qui es-tu pour affirmer que le Javascript "est un langage claqué au sol" ? Es-tu son créateur ?
    Ta vidéo est mal montée, son storytelling aurait pu être sympa si tu ne racontais pas autant de bêtises à la minute.
    Dès le début, tu assassine le langage en citant des exemples qui POUR TOI ne sont pas logiques, TOI qui est un SYSTADMIN et non un DEVELOPPEUR.
    Ta vidéo est orientée, sans aucune impartialité, (presque) sans aucune recherche.
    Elle est décevante en comparaison de ton contenu habituel.
    Et c'est vraiment dommage parce que le concept, celui de raconter des histoires autours des langages est très intéressante.. s'il n'y avait pas cette orientation malsaine.

    • @nathaelbonnal8898
      @nathaelbonnal8898 3 года назад +4

      Je reconnais, il l'aurait eu 2/20 à l'exam Web de ma promo x)

    • @yassinedamiri1063
      @yassinedamiri1063 3 года назад

      Force a toi pour ton complio 😂. La THL (Théorie des Langages) qui revient en force tout un coup...

    • @Laiteux
      @Laiteux 3 года назад +5

      rah ouais ta meuf t'a quitté ou quoi?

    • @baptiste_parmantier
      @baptiste_parmantier 3 года назад

      @@yassinedamiri1063 en soit la compréhension des étapes est assez logique mais la mise en place, c’est autre chose 😅

    • @toubippc
      @toubippc 3 года назад +1

      Wahh, je viens de perdre 5 min a lire un commentaire qui éclate un gars qui met a disposition une video gratuite et dont le titre est explicite !
      Alors j'en prend 5, juste pour te dire d'aller ... essayer d'autres languages pour comprendre le sens de la video.
      Et les exemples cités ne sont pas faux... juste illogique de certains points de vue.
      Si il «strignifie» dans un sens pourquoi pas dans l'autre ?
      Un tableau = objet JS = instances ... sans rien demandé .. normal ?
      Tu sais ce que c'est un tableau en C ?
      Les perfs, la sécurité, compatibilité, .. sont toujours des problèmes actuels..
      Faut avouer JS veut tout faire a ta place mais si tu ne connais pas le comportements de son «runtime» c'est très abstraits et illogique !
      C'était juste pour faire un commentaire de plus pour cette excellente video. 😂

  • @leshommesdupilly
    @leshommesdupilly 3 года назад +1

    C++: "Tu sais, interrompre le programme en cas d'erreurs, c'est bien"
    JS: "NOOOONNNN !!!"

  • @citoyennumero4434
    @citoyennumero4434 2 года назад +1

    J'ai fais un mois de Javascript, mais venant du C/C++, j'ai eu envie de m'émasculer avec les dents dés les premières lignes de code !! Je suis heureux de ne plus avoir besoin d'utiliser celui-ci, mais ceux qui utilisent ce langage, ont tout mon respect

    • @pandojotv1440
      @pandojotv1440 8 месяцев назад

      Après le langage a énormément évolué depuis l'ES6 et aussi avec l'arriver de Typescript

  • @cobaltdupont2537
    @cobaltdupont2537 2 года назад +2

    Juste pour le [] == [] c est parce que javascript ne regarde pas le contenus des tableaux, chaque tableaux js a une addresse memoire qui correspond a l endroit ou il est stocké sur l ordinateur.
    Js compare ensuite si le tableau1 EST le tableau2, or les deux contienne les memes choses, mais ne sobt pas la meme entitée
    Exemple plus simple, si j ai deux sacs remplis de 3 oranges, je ne peux pas dire que ce sont les memes sacs, ce sont deux sacs differents qui contiennent les memes chose

  • @ANGENOIRLDDO
    @ANGENOIRLDDO 3 года назад +1

    ça fait un an exactement que je fais du NodeJs / Javascript pour mon entreprise et du coup vidéo très intéressante du point de vue historique. J'avais fait beaucoup de C avant du coup les bizarreries j'en ai vu assez peu. Il faut juste penser à bien cast les variables dans le type souhaité quand on est pas sur plutôt que de tout laisser en automatique et avoir des surprises plus tard. (ou faire du typescript ça marche aussi)
    La gestion d'erreur via try catch est du coup un point essentiel dans le langage ça permet de gérer les bizarreries sans faire crash le programme.
    Le garbage collector existe maintenant, une fois qu'une variable n'a plus de référence ou qu'on sort du scope actuel la mémoire est libérée.
    Le language est très plaisant à utiliser (on fait beaucoups en codant peu) et surtout très facile à prendre en main pour des débutants, le plus important étant de ne pas coder en mode YOLO car le language est assez permissif.

    • @ANGENOIRLDDO
      @ANGENOIRLDDO 3 года назад

      et l'ES6 dispo depuis 2015 un pur plaisir

  • @HellolifeH
    @HellolifeH 2 года назад

    J'adore ta façon de raconter des histoires. C'est très intéressant et j'ai appris plein de choses. Le montage est top. Continue comme ça !

  • @vinception777
    @vinception777 3 года назад

    Hey ça fait un moment que j'étais pas passé, c'est vraiment stylé comme vidéo, j'aime beaucoup le rythme et le format, il y a pleins d'infos sans ce que soit trop dur à encaisser!
    Tu t'es grave fait à RUclips c'est cool haha :)

  • @Le_Grand_Rigatoni
    @Le_Grand_Rigatoni 3 года назад +3

    0:25 Alors ça, c'est simplement parce qu'aucun de ces nombres en binaire ne sont finis (0.1=0.0001100110011... et 0.2=0.001100110011...), donc pour pouvoir les stocker, il faut le faire sous forme d'arrondis. Et forcement, après, quand on fait des calculs avec, il y a des erreurs. Beaucoup de langages on ce problème.

  • @ggousier
    @ggousier 3 года назад +1

    Le Js est certainement le langage de haut niveau le plus permissif qui existe. Possibilité de faire des opérations entre integer et string sans déclencher une erreur. Possibilité d'appeler une fonction sans l'avoir déclarée au préalable, le fameux hoisting. :) Netscape mon premier navigateur. Tu me rajeunis pas. Il y a 25 ans, je n'aurai pas misé un bouton de culotte sur le JS ^^. Aujourd'hui avec l'explosion du web, et surtout de Google c'est devenu un incontournable. Ceci dit il a sacrément évolué ^^.
    PS : dans ton titre une petite coquille. Langage s'écrit sans le "u" en bon françois :) . Sinon comme d'hab, gg à toi.

  • @iancdp9
    @iancdp9 3 года назад

    C'était vachement sympa ! Des petites histoires comme ça liées à l'IT ça fait toujours plaisir :D Hâte d'en voir d'autres

  • @bougatayaabdoullah
    @bougatayaabdoullah 2 года назад +1

    Il ne faux pas oublier que Microsoft a crée Typescript au 9 février 2012

  • @pazka
    @pazka 3 года назад

    Très intéressant, je m'était déjà renseigné un peu sur l'histoire de JS et j'ai bien aimé ta description ! Comme un pote qui te file ça entre deux anecdotes :)
    Un point d'amélioration selon moi : Les cuts en plein milieu des phrases m'ont pas mal écorché l'oreille niveau auditif ça m'a un peu gâché le plaisir d'écouter l'histoire. Plutôt essayer de refaire toute la phrase que de la couper / remonté ce qui casse ton flow de parole ( qui est cool pourtant ! )
    Bonne continuation !

  • @RoiDrag0n
    @RoiDrag0n 3 года назад +2

    C'est sans compter les développeurs extrêmement talentueux qui font de JS un langage qui est maintenant sur tous les fronts et dans toutes les stacks

  • @jonathankabaso8237
    @jonathankabaso8237 3 года назад +3

    Quelle belle histoire 😄 en tant que développeur on dirait qu'on passe une bonne soirée je dirais

  • @ta9sas
    @ta9sas 3 года назад +6

    sinon t'a essayer de faire 0.1 + 0.2 sur d'autres langages de programmation?

  • @YannAriell
    @YannAriell 3 года назад +1

    Ce format de vidéos est juste génial , est ce qu'il y aura d'autres ?

    • @cocadmin
      @cocadmin  3 года назад

      si la vidéo marche bien oui :)

  • @DjSwiti
    @DjSwiti 2 года назад +1

    2 + '1' == 21 car le + est considéré comme une concaténation
    2 - '1' == 1 car le moins est une opération mathématique, c'est la seule chose possible ici
    [] == 0 car [] c'est un tableau vide, qui n'est pas nul (c'est pourquoi vous pouvez faire "if (tableauVide)")
    "" == 0 c'est un peu la même histoire, et c'est pourquoi [] == ""

    • @nomnom9110
      @nomnom9110 Год назад

      Exactement, mais bon il le sait il veut juste faire du buzz

  • @gigazman
    @gigazman 3 года назад

    Excellente histoire! C’est cool de connaitre ce genre de chose!
    Mais du coup quelle est la version de javascript aujourd’hui?
    Il y a-t-il toujours une différence entre jscript et javascript? Qu’il y a-t-il dans edge, firefox ou chrome? Cela mériterai un autre episode :)

    • @cocadmin
      @cocadmin  3 года назад +1

      jscript n'existe plus. la derniere version de javascript s'apelle ecmascript 2022 mais tout le monde dit javascript :)

  • @matmat6888
    @matmat6888 3 года назад +4

    Bah quitte à être à contre courant, j'ai passé des bons moments avec javascript (sous angular 1/nodejs sur des grosses applications web) et justement son coté non typé. Ca m'a rarement fait défaut. Pour moi les langages objets sont fait pour prendre par la main et rassurer le développeur mais rallonge le temps de développement.

    • @qzerqzefr2860
      @qzerqzefr2860 3 года назад +2

      le problème de l'objet c'"est que beaucoup ne savent pas l'utilisé et font n'importe quoi (sur-heritage par exemple, une vrai catastrophe)

  • @testostador5450
    @testostador5450 3 года назад

    Yo ! Super vidéo ! Quel certification d’après toi tu recommande de passer en ce moment chef ?

  • @KaSSa__
    @KaSSa__ 3 года назад +7

    Heureusement, en 2022, on a TypeScript 😍

    • @yayel59
      @yayel59 3 года назад +2

      Enfin un truc pas trop mal de Microsoft, justement.

  • @obsasew972
    @obsasew972 3 года назад

    Magnifique , je visionnais la video sur ma télé je suis allé sur mon téléphone juste pour liker et commenter, tes vidéos sont tjr aussi passionnantes et cool a regarder ! Keep it up 👍🏽

  • @pandaDotDragon
    @pandaDotDragon 3 года назад +18

    Tu as oublié un petit détail: JS c'est le seul langage de développement dont le créateur a demandé qu'il ne soit pas reconnu comme tel. Ca montre l'ampleur du désastre...

  • @_misterwhy
    @_misterwhy 3 года назад +4

    Raconte nous comment créer un langage coca ! ^^
    Petite pépite cette chaîne !

    • @cocadmin
      @cocadmin  3 года назад +1

      c'est une bonne idée de video haha

    • @_misterwhy
      @_misterwhy 3 года назад

      @@cocadmin Bon après on sait que le titre sera : j'ai créé un langage de programmation ... pour miner des bitcoins :D

  • @cool.guy.
    @cool.guy. 3 года назад +3

    roh mais javascript c un langage fun, il a du charme, une vrai personalité
    pas comme C++ que personne n'invite au soirée

  • @Akhulud
    @Akhulud 3 года назад +2

    Pour le coût 0.1+0.2 ça fait 0.300000...0004 sur quasi tout les languages

  • @Tom-rq9sz
    @Tom-rq9sz 3 года назад

    Merci pour cette vidéo très cool ! Ça fait du bien de faire un petit bond dans le passé pour mieux comprendre ce qu’on utilise aujourdhui
    Est ce que tu envisagerait faire une vidéo sur PromQL? Ca serait super utile :)

  • @ence7846
    @ence7846 3 года назад +5

    Énorme malaise ce titre et les premières secondes. On sent bien le mec qui n'a d'expérience qu'avec très peu de langages. Absolument tous les points énoncés sont logiques et faut vraiment faire aucun effort pour ne pas les comprendre. Je crois que le pire de tous c'est quand tu parles de 0.1 + 0.2 != 0.3, c'est à se demander si t'as déjà utilisé des flottants une fois dans ta vie.
    Enfin de toute façon vu le titre j'imagine que le but de cette vidéo c'est juste de faire des clics avec du "sensationnel" auprès de débiles.

  • @SteamDeckGameplay
    @SteamDeckGameplay 3 года назад +10

    Les exemples que tu donnes, c'est juste parce que tu connais pas le langage, que tu comprends pas et que tu penses que c'est de la merde.
    10 - '1' ça fait un cast implicite, donc ça fait 9.
    10 + '1' par contre tu utilises l'opérateur de concaténation, donc ça cast 10 en string implicitement aussi.
    3 > 2 > 1 c'est l'ordre d'interprétation, ce genre de code tu devrais jamais le faire en fait
    [] == [] tu compares pas les valeurs, mais les instances qui sont pas les même, c'est comme si tu faisais new Object() == new Object(), c'est deux instances différentes
    0.1 + 0.2 c'est la gestion des chiffres à virgule, qui est pareil dans plein de langages mais qu'on te cache souvent mais c'est inhérent à la manière dont sont stockés les float

    • @evds3941
      @evds3941 3 года назад

      " 10 - '1' ça fait un cast implicite, donc ça fait 9. " c'est pas censé faire de cast de 1 , même si c'est effectivement le cas .
      "10 + '1' par contre tu utilises l'opérateur de concaténation, donc ça cast 10 en string implicitement aussi." c'est quand même illogique.
      pour le reste je suis d'accord

    • @the_csb
      @the_csb 3 года назад

      Evan, l'opérateur "-" est un opérateur arithmétique seulement donc les caste se feront toujours vers des nombre

    • @evds3941
      @evds3941 3 года назад

      @@the_csb Oui cela est évident , dans ce cas je vois pas pourquoi JS s'autorise à le faire

  • @makidoko
    @makidoko Год назад +1

    10 - '1' (un nombre moins une chaîne) n'a aucun sens, donc c'est interprété comme 10 - 1 = 9... Correct.
    10 + '1' (un nombre plus une chaîne) n'a toujours aucun sens, et l'opération "+ chaîne" est une opération de concaténation, donc interprété comme "10" + "1" = "101"... Correct
    3 > 2 > 1 enchaîne deux comparaisons booléenne : 3 > 2 = vrai... (pour rappel "vrai" = 1, "faux" = 0) donc 3 > 2 = true = 1 ... 1 > 1 = false... Correct.
    [] == [], tu compare deux objets dont on ne connaît rien (ni type ni contenu) qui sont à des adresses différentes... Ce sont donc deux objets différents, donc la comparaison ne peut être que fausse... Correct
    0.1 + 0.2 donne un résultat en virgule flottante à la précision douteuse.... Comme dans tous les langages... Correct.
    Donc résumé : dans tes exemples, rien n'est pété, mis à part tes exemples. Tu n'est pas dév, mais un dév qui se poserait les mêmes questions que toi sur ces points, serait juste incompétent (et hélas il y en a énormément).
    Cela dit, je déteste JS, c'est un langage dégueulasse, mais tellement pratique.

  • @iwokssama4772
    @iwokssama4772 3 года назад +3

    Très bonne vidéo ! J'ai aimé le racontage d'histoire.
    En résumé, ce n'est pas des comportements "bizarres".
    Mais chaque moteur d'exécution à ses particularités.
    Par exemple
    En LUA, les tableaux commence à 1.
    En Python : False or "coacadmin" donne 'cocadmin'
    Ces comportements sont des contraintes spécifiques.
    Une bel anecdote (qui prouve que je suis vieux) la calculatrice Windows qui renvoyait 0.9999999 au lieu de 1 à certains calculs
    Haaaaa! Je sais pas quel mot tu as bloqué. Du coup, mon 1er comment passe pas. Haaaaaa! 🤣🤣🤣🤣

  • @tibo1890
    @tibo1890 3 года назад +1

    Tes vidéos storytelling sont des MASTERCLASS !

  • @Watcha93
    @Watcha93 3 года назад +1

    J'en pris un coup de vieux en voyant Netscape mdr je me revois au collège. Merci pour l'histoire en tout cas très intéressant.

  • @IdrissNeumann
    @IdrissNeumann 3 года назад +13

    J’adore ta manière de raconter notre histoire! GG

    • @artanis_
      @artanis_ 3 года назад

      Notre histoire ?

  • @Panopticonae
    @Panopticonae 2 года назад +1

    Pour le l'histoire de 10 + '1' et 10 - '1'
    Tout simplement car le + est prioritairement un "attacheur" de string
    Donc en gros ca va transformer le dernier nombre en string et le rattacher au 10
    Tantdis que le - n'est pas un "attacheur" de string
    Et puis j'ai envie de dire, qui veut additioner les int et les str dans le but d'avoir un résultat xD
    Pour les tableau c simple chaque tableau c'est considéré comme object et vu que les object c unique bah voila

    • @nomnom9110
      @nomnom9110 Год назад

      Exactement ça s'apprend d'ailleurs dans les premiers cours javascript

  • @elsombrero306
    @elsombrero306 4 месяца назад

    Moi je peux expliquer
    Parce que + c’est un operateur de concatenation et d’addition 😕
    - c’est un operateur de soustraction
    Du coup quand tu fais un - '1537' il va implicitement faire un parse de ta chaine pour que ça soit un nombre
    Ce n’est pas bizarre si tu lis biens les specs du langage

  • @imbwbl
    @imbwbl 3 года назад

    Il y a des solution a tout par exemple le 10 - '1' le moins sert a soustraire alors que le plus dans une string sert a les mettre ensemble

  • @christophebrunel7106
    @christophebrunel7106 3 года назад

    Du coup la suite m'intéresse alors je viens de m'abonner à ta newsletter. 👍
    Après, on n'est pas obligé non plus d'utiliser ces bizarreries. Quand on est habitué à des langages plus rigoureux, n est aussi habitué à faire attention aux types des variables. 😉
    En tout cas quand j'ai découvert Javascript, c'est la première chose qui m'a étonnée de pouvoir comparer des choux à des carottes! 😀

  • @MrNiuxe
    @MrNiuxe 3 года назад +1

    En ce qui concerne [] == [] => false, c'est normal. new Array() != new Array() parce que tu crées 2 instances (donc 2 adresses mémoires différentes ==> références différentes) ! Pour les autres bizarreries, ouais le JS est un langage à typage faible...... Mélanger les légumes et le dessert, ça ne peut que donner un plat inconsistant ;) Si le langage était mieux élaboré, il devrait remonter une exception !

  • @bikotchotcho8262
    @bikotchotcho8262 3 года назад

    Le résultat 0.1 + 0.2 est partagé par presque tous les langages, cela vient de l'implémentation de l'IEEE 754 donc Java, Python, JavaScript ont tous ce défaut.

    • @ChesterKea
      @ChesterKea 3 года назад

      T as un lien pour expliquer ? Merci

  • @abdelbakibendahou6833
    @abdelbakibendahou6833 2 года назад

    T as un site de tous les logiciels super a la mode en société de codage ?

  • @cainabel2553
    @cainabel2553 2 месяца назад

    Pardon mais le pseudo terminal type Minitel n'a AUCUN rapport avec la ligne de commande. C'est un mode texte, par op. au mode graphique. On a des lignes commandes dans des outils comme Google Chrome (dans le debugger).

  • @michelberkane2379
    @michelberkane2379 2 месяца назад

    Netscape a ete fabriqué par celui qui avait crée mosaic qui est a l'origine le premier navigateur . C'était un devoir de master . L'univ la empêché de faire un produit conçurent pendant plusieurs année . Une fois le délai fini il a sortie netscape .

  • @ultra-epic-kiwi
    @ultra-epic-kiwi 2 года назад +1

    0.1 + 0.2 = 0.30000000000000004 c'est une question de virgule flottante. C'est le cas sur tous les langages.

  • @saucisse_dev
    @saucisse_dev 3 года назад

    Très bien raconté ! Du coup la version qu'on utilise actuellement découle du reverse engineering de Microsoft ?

  • @esaiemuhasa4135
    @esaiemuhasa4135 3 года назад

    Je ne suis pas fane de JavaScript, mais essayons de voir les choses de plus près.
    Quand à ce qui concerne la comparaison des tableaux, cela n'est pas directement lié à JavaScript mais plutôt à la logique par défaut de comparaison des tableaux.
    En plus pour le 0.1 + 0.2, même en C si tu fait printf("valeur: %f", (0.1+0.2)); tu auras un truc du genre 0.30000 dans la console. Je pense que cela est due à la manière dont le processeur exécute les opérations arithmétique sur le nombre à virgule.

  • @Niyo1877
    @Niyo1877 3 года назад

    Très intéressant ! De nos jours, que l'on souhaite ou non Javascript est devenu incontournable dans le Web.
    Avec tous les frameworks (react js, vue js, angular) basés sur Javascript c'est devenu un incontournable

  • @philippelaurent835
    @philippelaurent835 2 года назад

    Bill Gates en septembre 95 croyait plus en MSN qu'en internet.
    En 1995, j'avais acheté un pc sous Windows 95 et l'on pouvait se connecter au réseau propriétaire de microsoft MSN avec une communication par modem ( couts de téléphone).
    Cela faisait penser à FirstClass. Cela marchait bien mais fut doublé par internet. Vu les investissements, Microsoft insista, mais les actionnaires, ou le bon sens, incitèrent Microsoft a rejoindre la vague internet. En fait, internet était trop bien pour que l'on se confine à du Microsoft, et B.Gates à mis du temps à l'admettre.A cette époque on disait "tu crois en internet ?".....

  • @rpgamer1002
    @rpgamer1002 3 года назад +1

    Ça serait pas très compliqué de faire du versionning de JavaScript et de le faire évoluer vers un langage moins sale, sans casser le legacy code. Il suffirait de se référer à la version déclarée dans le code moderne.

    • @cocadmin
      @cocadmin  3 года назад +1

      pas bete. J'imagine qu'il y a une raison technique qui l’empêche mais je ne la connais pas

    • @florianm22
      @florianm22 3 года назад +1

      @@cocadmin À mon avis c’est juste que le TC39 ne veut pas diviser la communauté entre deux versions.

    • @gronono
      @gronono 3 года назад

      C'est déjà ce qu'on fait un peu avec les transpileurs comme Babel; On spécifie la version de Javascript en entrée (normalisé par ECMAScript) et on donne la version voulue en sortie. Babel fait la conversion. Souvent on dit qu'on veut la dernière version et on transpile vers la version ES5 pour plus de compatibilité avec les navigateurs et on rajoute un tas de polyfill pour ajouter des fonctionnalités non supportés par les anciens navigateurs.

  • @ducassoulet
    @ducassoulet 3 года назад

    Juste, le == n'est pas la même chose que le === . En effet, le === signifie strictement égal exemple:
    1 === "1" // false
    1 == "1" // true

  • @transformizem
    @transformizem 3 года назад

    c'est quoi la musique en arriere plan ? merci d'avance

  • @anthony_issa
    @anthony_issa 3 года назад

    Quel plaisir ce genre de format

  • @jamalse6684
    @jamalse6684 3 года назад

    Salut et bravo pour tes vidéos de (très) bonne qualité 😁. J’ai une question indirectement liée à la programmation et à laquelle je n’arrive malheureusement pas à trouver de réponse.
    Tu parle souvent de Linux et ma question est Pourquoi utiliser Linux? Y a t’il VRAIMENT un avantage? Par rapport à Windows? Mac? 🙄.
    Une explication de ta part serait très intéressante je pense…

    • @cocadmin
      @cocadmin  3 года назад

      pour une utilisation de tous les jours non pas vraiment.
      Pour un developeur ou un sysadmin il y a plein d'outils qui ne marchent que sous linux

  • @samas92i71
    @samas92i71 3 года назад

    Dommage que tu ne parle pas de l'histoire après Netscape et comment tous les navigateurs on fait pour utiliser la même version de JS, ...

  • @babycodeur5594
    @babycodeur5594 3 года назад

    Salut j’ai pas encore regardé la vidéo, mais j’ai lu le titre. Tu viens de te faire un ennemi puissant Coca. Très puissant .

    • @babycodeur5594
      @babycodeur5594 3 года назад

      Bon ok 30 secondes de videos je retire ce que j’ai dis .t’as raison …

  • @whilechannel
    @whilechannel 3 года назад

    J’aimerais savoir ça fait combien de temps que tu fais du JS ?

  • @michelmenard67
    @michelmenard67 2 года назад

    J'adore ces petits vidéo sur l'histoire de l'informatique. Merci 👍🏽👍🏽

  • @Zaphispo
    @Zaphispo 3 года назад +1

    Techniquement 0.30000000000000004 c'est égale 0.3 avec la double precision.

  • @Ashenroger
    @Ashenroger 3 года назад +1

    Hé ben maintenant, il va falloir poursuivre avec ce format super intéressant.

  • @CameleonGamer
    @CameleonGamer 3 года назад

    Tu peux expliquer l'histoire de forge (installer de mod Minecraft)

  • @simonlelamer9885
    @simonlelamer9885 2 года назад

    pour le premier c'est simple, c'est parce que le signe plus a deux fonctionnalités : additioner et concaténer

  • @youssoufarsawi9028
    @youssoufarsawi9028 3 года назад

    et comment chrome est passé devant explorer ?

  • @Alorsondev
    @Alorsondev 3 года назад

    Mdr comment l'affichage le merveilleux typage de JS dès la 1re seconde xd
    J'avais lu un article qui retraçait l'histoire de JS et you know what? J'en n'avais rien retenu parce que boring
    Grâce à toi c'est maintenant bien gravé dans mon cerveau 🙏🏾
    Et quelque part, MS aura quand même réussi à fourrer son nez dans js avec typescript 😏

  • @JambonBeurre83
    @JambonBeurre83 3 года назад

    Ça me fait tellement plaisir de lire le titre de cette vidéo ! Merci ! Et bravo :-)

  • @stephane-lopez
    @stephane-lopez 3 года назад

    Que de bons souvenirs JavaScript dans les années 2000 ! 😀

  • @hb8527
    @hb8527 3 года назад

    j'adore !! cette histoire je l'ai lu dans un bouquin et j'en avais parlé en cours l'année dernière ^^

  • @Coni128
    @Coni128 10 месяцев назад

    4:40 petite erreur. Lorsqu'il s'enferme durant 10 jours ce n'est pas "babababa" qu'il a fait. Il avait démenti cette rumeur durant un interview.

  • @dsebzz6553
    @dsebzz6553 3 года назад

    Une vidéo qui mérite 1 million de vues ! On adore !

  • @motyakskellington7723
    @motyakskellington7723 3 года назад

    3 > 2 > 1 retourne faux parce que ça fait (3 > 2) > 1 soit true > 1 soit 1 > 1, comme dans beaucoup de langages ça traite les opérateurs de gauche à droite (exception pour opérateurs mathématiques où on respecte la priorité des opérateurs). 0 est considéré comme faux, tout ce qui n'est pas faux est considéré comme true donc 1 se convertit en true.

  • @sebastienrohaut5195
    @sebastienrohaut5195 3 года назад +1

    Je n'aime pas JavaScript. Pas tant à cause du langage, qu'à cause du fait qu'on a fait croire à des devs frontend qu'ils pouvaient devenir des devs backend avec nodejs parcequ'ils savaient déjà coder en javascript. Dans plein de cas, c'est un désastre.
    Cependant, la plupart des exemples que tu donnes s'expliquent parfaitement. Et il est bien souvent le même dans d'autres langages. Les crochets définissent une liste, qui est un objet. TU compares deux objets, ils sont différents. Tes comparaisons suivent une précédence des opérateurs, et les calculs sur les réels (float), c'est ralant mais le comportement est le même en Python.
    Cependant, ceux avec qui j'ai travaillé (comme Ops) connaissent bien une phrase que je sortais régulièrement (par rapport à Javascript ou pire, Scala) : "tout ça ne serait pas arrivé en PHP". :)

  • @fitagaming457
    @fitagaming457 3 года назад +4

    mais !! tes vidéos sont aussi douces que du miel, t’es un génie !

  • @tcgvsocg1458
    @tcgvsocg1458 3 года назад

    Ou est la video sur minecraft?
    (Je suis pas fan de ce jeu tu a juste dit que tu ferait une injection en python et je suis chaud pour voir ça

  • @legrandtiasma
    @legrandtiasma 2 года назад

    J'aime bien les vidéos comme ca ou tu juges les langages de prog tu pourras en faire avec un autre stp ?

  • @edera.2011
    @edera.2011 3 года назад

    J’aime bien “sentir les flairons” aussi 🤣 GG la video 🙌🏾

  • @sebastienmartinez6249
    @sebastienmartinez6249 3 года назад

    j'adore le js mais je connaissais pas son histoire, vachement intéressante comme video,
    j'aime bien ta manière de raconter l'histoire de cette techno, je vais guetter voir si t'en a fait d'autre

    • @cocadmin
      @cocadmin  3 года назад +1

      les videos sur linux et sur git sont similaire ;)

    • @sebastienmartinez6249
      @sebastienmartinez6249 3 года назад

      @@cocadmin je vais voir ça merci

  • @lukjk3457
    @lukjk3457 3 года назад +1

    J’imagine bien que tu le sais en tant que senior 😂 mais il faut utiliser « === » au lieu de « == » qui fonctionne comme le == en C par exemple.
    Sans oublier Typescript qui vient donner un peu d’ordre et de rigueur

    • @gronono
      @gronono 3 года назад

      Tout à fait. Comme on évite maintenant d'utiliser le mot clé var, de déclarer des fonctions avec le mot clé function (sinon on peut l'utiliser avant de l'avoir déclarée comme pour var), .... On utilise maintenant du JS moderne et normalisé (ECMAScript)

    • @kurusanyasuke2853
      @kurusanyasuke2853 3 года назад

      Je cherchais le commentaire avant de taper 😉

  • @Jerem92iz
    @Jerem92iz 3 года назад +1

    On veut la suite sur Firefox!

  • @schblu
    @schblu 3 года назад

    Elles sont top tes vidéos ! Et merci pour le son modem 56 k ... toute mon adolescence !!!

  • @lapcyagi9465
    @lapcyagi9465 3 года назад +1

    "It's not a bug, it's a feature." - Brendan Eich

  • @LiorCHAMLA
    @LiorCHAMLA 3 года назад

    Super vidéo bro

  • @kevindiallo5235
    @kevindiallo5235 2 года назад

    ducoup j'apprends JavaScript ? ou je me lance direct back end avec php. et apres je me consacre au langage script C et python

    • @nomnom9110
      @nomnom9110 Год назад +1

      Du coup t'as fais quoi ?
      C'est le problème avec ce genre de vidéo mensongère faîtes par des aigris qui veulent restreindre et décourager ceux qui veux être developpeur
      Javascript est très populaire et demandé pour travailler dans le dev front end et back end
      C'est un très bon langage, et très utiles pour le taff.
      Le mieux est d'apprendre front end et back end
      Et de ce que je vois on commence souvent par le front end qui permet de t'initialiser a la programmation
      Courage

  • @Ab_maker-vm6qm
    @Ab_maker-vm6qm Месяц назад

    Le problème avec le 0.00000000000...3 c'est pas de la faute de javascript mais c'est a cause du binaire c'est la même sur tout les autres langages

  • @clement1370
    @clement1370 3 года назад +1

    Sympa mais je trouve que ça se termine vraiment d'une manière inachevée. J'imagine que continuer l'historique avec firefox/chrome et les standards EcmaScriptde aurait demandé encore de nombreuses minutes de vidéo mais c'est dommage de terminer comme ça...

  • @amaninyumu385
    @amaninyumu385 3 года назад

    La vidéo est intéressante. Mais vous devez comprendre que en JS une variable est considéré comme un objet. Donc dans la comparaison il faut essayer avec trois égalité. "123"==123 réponse true mais avec "123"===123 réponse false.

  • @azzaell
    @azzaell 4 месяца назад

    C'était trop bien nets ape. Le meilleur navigateur que j'ai jamais eu.

  • @Pizatol
    @Pizatol 3 года назад +3

    ouah ce fou rire en début de vidéo, j'étais pas prêt . Quel formidable conteur tu fais ! Accessoirement, le fond est très intéressant et instructif. Peut être pas autant que miner des crypto sur des Tamagotchi, mais très intéressant tout de même !