30

robinHood (./28) :
> pas mal de truc degeux du JS viennent du typage faible...

ça vient plutôt surtout du dev !
Le fameux adage « il n'y a pas de mauvais langage, que des mauvais dev… ». Un adage que je trouve bien étrange
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

31

./29 grin très très bonne !

les "faiblesses" ne sont pas obligatoires, loin de la, plutôt même réservées aux débutants, === existe et le test de type aussi ..
le js est un merveilleux langage, sont coté (full) asynchrone le rend unique et absolument awesome mais nécessite une très bonne rigueur smile
un mécano doit simplement connaître ses outils!
et la le mec il le pécho par le bras et il lui dit '

32

A vrai dire le fait meme qu’on faille faire des truc qu’un langage fortement type fait automatiquement (et l’existence meme de ==happy prouve que le langage n’est pas fiable à proprement parler.

Si je teste "0" == 0 et que le langage me dit « oui » ce n’est pas normal. Ce n’est pas parce que la chaîne peux être interprète comme le chiffre 0 que c’est le chiffre 0.


Quand a cette volonté de tout faire en asynchrone.... A part des maux de tète inutiles, et plein de complications pour rien...

Rappel; le coté asynchrone du JS est a la base dus a des limitation des navigateurs web qui travaillent en monothread, donc un JS qui ne s'arrête jamais == le navigateur bloqué, et rien d'autre.

L'asynchrone n'est vraiment de plus qu'un potentiel nid a problèmes et tends a rendre les choses largement plus complexes qu'elle ne devrait être dans la majorité des cas.

flanker (./30) :
robinHood (./28) :
> pas mal de truc degeux du JS viennent du typage faible...

ça vient plutôt surtout du dev !
Le fameux adage « il n'y a pas de mauvais langage, que des mauvais dev… ». Un adage que je trouve bien étrange
Yep comme "il n'y as pas de mauvais outils, que des mauvais cuisinier".
Certes un bon cuisinier ferra toujours avec ce qu'il a, mais si tu lui donne un mauvais couteau il va pas être super content, prendra plus de temps et potentiellement ratera la coupe de certaines pieces, pourtant il sait ce qu'il fait.
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

33

j'en reviens donc à la connaissance des outils et donc aux mauvais dev
le vrai test est ===, ne pas lire la doc ne rend pas l'outil "mauvais" ou non "fiable"

(mais perso je serait d'accord pour supprimer "==" smile

> Quand a cette volonté de tout faire en asynchrone.... A part des maux de tète inutiles, et plein de complications pour rien...
pour rien ? mdr tu devrais le tester pour de vrai à l'occasion alors
edit > exemple de log de sortie d'un de mes soft, ça tape en // une multitude d'apis différentes, traite les données, les exportes et les sauves soit en local soit sur du distant, moins de deux minutes pour gérer l'ensemble (sans cache une des api met deux heures à être interrogé totalement, grâce à l'async toutes les autres sont dispo dans les deux minutes plutôt que les deux heures) et faire de l'up et du down au même moment ça rulez

autre délire node possède des pipes natifs avec de beau callbacks, lire un fichier de 4Gb le compresser et le sauver est possible en moins de 10 lignes sans bouffer ta mémoire et en laissant toute la réactivité à ton soft pour foutre autre chose, est ce possible ailleurs ?

> qui travaillent en monothread
ton programme taffe en mono thread, pas tout ce que tu lance en fond (pour bosser vraiment), tout fonctionne en event et callback, c'est ce qui rend les softs écrits avec si réactifs et justement non bloquant

> donc un JS qui ne s'arrête jamais == le navigateur bloqué, et rien d'autre.
=> mauvais dev

> L'asynchrone n'est vraiment de plus qu'un potentiel nid a problèmes et tends a rendre les choses largement plus complexes qu'elle ne devrait être dans la majorité des cas.
encore une fois, rigueur ! un débutant va forcément écrire du code super imbriqué ou spaghetti oui, mais une fois bien géré ça rulez
et la le mec il le pécho par le bras et il lui dit '

34

robinHood (./33) :
j'en reviens donc à la connaissance des outils et donc aux mauvais dev
le vrai test est ===, ne pas lire la doc ne rend pas l'outil "mauvais" ou non "fiable"

(mais perso je serait d'accord pour supprimer "==" smile
Avoir un truc comme "=="
- qui existe dans tous les langages,
- qui fonctionne presque tout le temps,
- qui ne fait pas la même chose que dans les autres langages,
- qu'il ne faut pas surtout pas utiliser en pratique,

ça correspond quand même pas mal à la définition d'un piège.

Idem avec {}, qui ressemble à une hashmap, qui fonctionne presque comme une hashmap, qui a la syntaxe d'une hashmap, mais qui n'est pas une hashmap, ça ressemble à nouveau pas mal à un piège…

J'ai du mal à trouver normal de devoir lire la doc pour éviter ce genre de piège.
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

35

(et sinon, pour faire la promo du JS, il y a "Mon langage est mieux que le tien". Ici, on parle de Python embarrassed)
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

36

C'est vrai grin
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

37

Oué c'est vrai ça, si ça continue de parler de JS ici, je m'y mets, na embarrassed
avatar
<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

38

> Idem avec {}, qui ressemble à une hashmap, qui fonctionne presque comme une hashmap, qui a la syntaxe d'une hashmap, mais qui n'est pas une hashmap, ça ressemble à nouveau pas mal à un piège…

mais qu'est ce qu'une hashmap ? cheeky
jour un du js, l'objet, {}, comme les tests ==, === et typeof
je pourrais te retourner la chose et dire que les hashmap sont un piège grossier car c'est comme un objet !

regarde la démarche de folco à demander des tutos pour apprendre un nouveau langage, qu'il y ai des choses similaires est un fait mais tu ne peux pas prétendre vouloir faire comme ailleurs et tout retrouver de but en blanc sans un minimum d'efforts et de recherche

> J'ai du mal à trouver normal de devoir lire la doc pour éviter ce genre de piège.
pourtant avec php les tests c'est la même, c'est critiquable oui
l'objet lui, {}, n'est pas un piège par contre, c'est juste la base du langage, il n'y à pas 40 types non plus cheeky

> (et sinon, pour faire la promo du JS, il y a "Mon langage est mieux que le tien". Ici, on parle de Python embarrassed)
genre ça parle kernel / nostub juste dans le topic dédié :P mais j’arrête de digresser, ou on peut forker, mais de toute façon mon langage est mieux que le votre na ! chapo
et la le mec il le pécho par le bras et il lui dit '

39

Si seulement === était fiable.

Genre

typeof[] === typeof{}



Mais si seulement === etait le probleme : https://www.destroyallsoftware.com/talks/wat
(classique mais toujours aussi bon)


Edit: Cross et je n'en ajoute pas plus dans ce topic
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

40

digression :)
=== est fiable, il teste 'object' vs 'object', tu connais juste mal le langage, techniquement un array est un objet ... il possède juste quelques méthodes en sus

> typeof {}
'object'
> typeof []
'object'
> [] instanceof Object
true
> [] instanceof Array
true
> Array.isArray( [ 1, 2, 3 ] )
true
Array.isArray( { hello:"world" } )
false
> let a = [ 1,,,,,,,,42 ]
[ 1, <7 empty items>, 42 ]
> a["lol"] = "woot"
'woot'
> a
[ 1, <7 empty items>, 42, lol: 'woot' ]
> a[8]
42
> a[9]
undefined
> a["lol"]
'woot'
> a.lol
'woot'
> a.omg = "zzz"
'zzz'
> a
[ 1, <7 empty items>, 42, lol: 'woot', omg: 'zzz' ]
> a.length
9
> delete a.omg
true
> delete a.lol
true
> a.length
9
> a
[ 1, <7 empty items>, 42 ]
> a.printme = function(){ console.log("<<",this,">>"); return "trolol"; }
[Function]
> a.printme()
<< [ 1, <7 empty items>, 42, printme: [Function] ] >>
'trolol'
> a[ a.length ] = console.log.bind(null, "hello, world")
[Function: bound bound consoleCall]
> a.length
10
> a[ a.length - 1 ]()
hello, world
undefined
> a[ a.length - 1 ]( "omg", "wtf", "♥" )
hello, world omg wtf ♥
undefined
> let o = { lol:"woot" }
{ lol: 'woot' }
> o.lol
'woot'
> o["lol"]
'woot'
> let p = "lol"; o[ p ]
'woot'

ça doit vous rayer les yeux mais la liberté ça poutre et n’empêche nullement de rester clean

ton lien est certes rigolo pour la photo de l'accident puis le watman mais n'est pas un argumentaire quant au langage lui même, j'ai battis des cathédrales avec, il est fiable puissant rapide .. mon serveur est matériellement tombé avant mes scripts ..

et la le mec il le pécho par le bras et il lui dit '