450

La page sur le "nojavascript" est quand meme bourre d'erreur et d'imprecision..

Le fait qu'il y ai des {} et ; rends le language plus simple a parser, moins verbeux (les begin/end sont du domaine du pascal ou de l'ada, qui veux programmer dans ces languages??)

Ne pas utiliser de return pour dire ce qu'on veux renvoyer est une heresie sans nom.. (et quid du passage de parametres dans leur truc? A moins que tout soit global en fait..

dans leur pseudo exemple

def ma_fonction
 a * b
end


hum et si je fait

def ma_fonction
 a * b
 a + c
end


qu'est-ce qui est retourne?

La syntaxe pour jquery est lourde, mais je persiste a penser que c'est de la faute a jquery, que les choses aurais pu etre faites plus simplement, et que ce n'est pas un probleme du JavaScript lui meme.

Ensuite sur "We were heading in the right direction with Ruby on Rails."

Il ne se trompe pas un peu de techno? Ruby n'a jamais ete execute cote client, tant mieux, mais il n'ont jamais ete confronte a l'installation de RoR ca se vois... On a jamais ete dans la bonne direction avec ce bousin..
Quand a node,js.. C'est je pense la pire choses que des scripteux en javascript ai pu inventer, mais c'est une autre histoire.

J'oubliait
We basically have been reliant on very few to come up with libraries and platforms like node.js, instead of building them ourselves.


En gros ils aiment reinventer la roue quoi vu qu'ils ne veulent pas "dependre" d'autre pour leur fournir un framework (aussi bon ou mauvais soit-il ce n'est pas la question)
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.

451

Ouais c'est la même chose avec coffeescript, tu retournes la dernière valeur d'expression (un peu comme la TI89 par défaut, ou alors un registre r0 qui contiendrait par hasard un truc utile à la fin d'une fonction en ASM).
Perso j'ai du mal à voir l'utilité mais ça fait plus "fonctionnel" donc bon c'est le futur, toussa…
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

452

En-dehors du fait que c'est moins clair, il reste un problème : contrairement au "vrai" return, on ne peut pas avoir plusieurs points de sortie, parce que l'exécution ne s'arrête pas.
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

453

D'aucuns te diraient que c'est très bien comme ça, n'est-ce pas Ximoon ? cheeky

454

(j'ai pensé très fort à lui, ouais ^^)
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

455

(les returns multiples c'est effectivement pas très beau tongue)

456

(on ne va pas relancer le troll, mais je maintiens que dans certains cas, c'est bien plus propre que les alternatives)
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

457

(Mmmm embarrassed)

458

Avoir quelques early return, par exemple pour les paramètres invalides, puis un seul return à la fin, se défend largement, en effet. Ca limite la profondeur d'indentation ou l'usage du goto.
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

459

(oui, les early à la rigueur, je suis d'accord que c'est plus clair, d'où le mmm grin)

460

Godzil (./450) :
Le fait qu'il y ai des {} et ; rends le language plus simple a parser, moins verbeux
Erreur, très cher !
Les ; ne sont pas (toujours) obligatoires en JavaScript, donc c'est pas "si simple" à parser. smile

Sinon pour le reste dans l'ensemble, je suis d'accord avec toi ^^
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

461

GC: je ne pensais pas forcement au JS en parlant des {} et ; tongue

Pour les ; soit c'est obligatoire, soit ca ne l'est pas. On ne fait pas entre deux.


Sinon un seul return et goto FTW tongue

(rien de mieux qu'un seul point de sortie facilement identifiable, qu'on peux facilemetn hooker ou surveiller a coup de printf... smile)
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.

462

Zeph (./430) :
Ben non, en l'occurrence c'est simplement que Object est une structure qui n'accepte que des strings comme clé, c'est sa définition. N'importe quelle surcouche typée se basera là-dessus et n'utilisera Object que dans ce cas (ce qui n'empêche par ailleurs pas qu'utiliser n'importe quoi d'autre, comme par exemple des nombres, soit quand même défini par le standard).

Mais Object est aussi la seule structure qui ressemble vaguement à une table de hash en JS…
Mais bon, une table de hash dont certaines clefs sont accessibles directement (table.my_key), d'autres uniquement avec des [] (table['my key']), et qui ne possède pas de méthodes extrêmement complexes telles que .size().

Ça ressemble à une table de hash, ça a l'odeur d'une table de hash, c'est vendu comme une table de hash, ça se comporte presque comme une table de hash, il n'y a pas d'autre structure de table de hash, mais ce n'est pas une table de hash… Et après, on s'étonne qu'on l'utilise comme une table de hash embarrassed

Le JS pousse à l'erreur de tous les côtés. Certes, on peut les éviter quand on connaît toutes les subtilités du langages et en sachant qu'il ne faut surtout pas faire confiance à 99% des sites web qui parlent de JS. Perso, j'appelle ça un mauvais langage. Le seul disponible, mais mauvais quand même.
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

463

Ça n'est à aucun moment vendu comme une table de hash, ça c'est ton interprétation grin

C'est précisément pour cette raison que JS te fournit un autre objet "Array" qui est une extension de "Object" et fournit les mécanismes habituels d'un tableau. Si tu veux une table de hash rien de plus facile que de procéder exactement de la même façon. Premier lien que je trouve sur Google à ce sujet, et qui semble correspondre à ce que tu veux : http://www.mojavelinux.com/articles/javascript_hashes.html.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

464

Tu es quand même subtilement de mauvaise foi embarrassed

D'une part, 99% des sites web qui parlent de JS vont te dire d'utiliser object comme une table de hash embarrassed
D'autre part, object a une méthode keys() qui fournit la liste des attributs (mais la méthode s'appelle keys), les valeurs des attributs sont accessibles par [] (comme pour les tables de hash dans 99% des langages de programmation).
D'ailleurs, même le site que tu proposes :
A short example of an associative array (hash table) in JavaScript is as follows:
var h = new Object(); // or just {}


Et pour avoir une structure qui donne la taille, on refait une « classe », qui va stocker les propriétés… dans un Object.

Sinon, petite citation trouvée sur un blog amateur (la doc JS chez Mozilla) :
Les objets en JavaScript sont simplement des collections de paires nom-valeur. Dans ce sens, ils sont similaires aux :

dictionnaires en Python,
hashs en Perl et Ruby,
tables de hashing en C et C++,
HashMaps en Java,tableaux associatifs en PHP.


Mais non, c'est uniquement mon interprétation grin


Et je reprends mon argument plus haut : un langage qui pousse à l'erreur 99% des gens *est* un mauvais langage.
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

465

flanker (./464) :
Et pour avoir une structure qui donne la taille, on refait une « classe », qui va stocker les propriétés… dans un Object.

Bah oui, c'est bien le but. Après je ne sais pas ce que tu appelles "hash table" exactement, tu semblais partir du principe que c'est une structure qui propose une méthode "size()". Ça n'est pas le cas de Object, donc si tu veux cette propriété tu dois implémenter ton type et l'appeler HashMap si ça te chante. Ou bien tu n'en as pas besoin, une simple association clé/valeur te convient, et dans ce cas Object est là.

Je ne vois pas franchement ce qu'il y a de confus ici, ni d'où sortent tes 99% de gens perdus ? Si je reprends ton argument, la seule chose qui te déplait c'est qu'il n'y ait pas de méthode "size()" par défaut sur Object ? Quelle serait la justification de ce cas particulier ? Au contraire je trouve plutôt sensé d'avoir un type racine réellement vide. Le terme "similaire" de ta citation a un sens assez large, puisqu'il s'agit comme c'est indiqué d'une collection de paires nom-valeur et rien de plus.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

466

oh non : il n'y a pas de méthode size, certains attributs sont accessibles directement mais pas tous, on ne peut utiliser que des string comme clef, … Et dès qu'on veut une vrai hashtable, il faut le faire à la main vu que la lib standard est moisie (franchement, quel autre langage ne propose pas de table de hash ?).

(puis je croyais que ce n'était jamais vendu comme une table de hash ? tongue)
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

467

Il n'y a pas de lib standard en JS en-dehors des quelques types builtin (string, array, regex), ça fait partie des choix de design du langage, entre autres parce qu'il est difficile d'en définir une en-dehors de tout contexte. À quoi doit ressembler la lib standard de quelque chose qui sert d'interface pour MongoDB, de langage de script dans des pages web, de techno serveur-side et d'outil pour faire des macros dans OpenOffice ? jQuery est un outil très pratique pour faire du web par exemple, mais n'aurait aucun sens dans node.js.

Sinon pour "table de hash", comme je viens de le dire ça dépend de ta définition. Si pour toi une table de hash est quelque chose d'autre que des clé/valeurs, alors Object n'est pas une table de hash. Comme il est trivial d'implémenter ce que tu appelles une table de hash avec Object, je ne vois pas en quoi c'est un problème.

De même je ne comprends pas ta fixation sur les clés des Object qui doivent être des strings. Il est défini comme ça, à quel moment est-ce quelqu'un t'a laissé croire qu'il en serait autrement ? Tu as déjà hurlé au scandale parcequ'utiliser des lists en tant que clés dans des dictionnaires en Python ne faisait pas ce à quoi tu t'attendais alors que ça fonctionne très bien avec des tuples ? Pourtant je ne vois pas en quoi ça serait une convention plus légitime.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

468

avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

469

(je vais arrêter vu que de toute façon, on n'arrivera jamais à se convaincre mutuellement grin)

rien à voir, mais je suis tombé sur un LinuxMag récent, avec un article qui compare les perfs de différents langages sur des algos complexes (le quicksort, en l'occurrence).
Pour bencher, l'auteur prend 1 000 mesures de l'exécution (sur un petit jeu de données).

Mais pour Java (au moins, je n'ai pas tout lu), il lance 1 000 fois le programme couic
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

470

471

./469 : si, il faut continuer jusqu'à ce que l'un de nous deux soit convaincu sinon c'est pas un vrai troll !!1 hum2 (grin)
./470 : c'est TypeScript le langage dans lequel on fait le moins d'erreur ? voilà de quoi alimenter encore le débat pendant un moment grin
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

472

flanker (./466) :
(franchement, quel autre langage ne propose pas de table de hash ?).
Mmm... Le C ? #modfus#

473

Va pas chercher loin : le 68k embarrassed

474

Si, c'est dans gtools embarrassed

475

Oui, écrit par un membre d'honneur d'une team célèbre pour son infatigable travail

476

grin

477

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

478

Mouarf
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.

479

C'est pas cool, ouais… Je retiens pour le jour où je serais confronté au même problème.
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

480

c526dadfc4_643x500.png
Non, je n'ai pas d'explication grin
Ça ne semble pas être un fake, ç'a été posté par un habitué des forums de TheDailyWTF.
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