Un développeur sans solides connaissances en anglais est un développeur mal barré...
Un développeur sans solides connaissances en anglais est un développeur mal barré...
Merci pour l'information, je ne m'en serais jamais douté...
En quoi la JVM est adaptée au mobile et à l'embarqué ? C'est plutôt l'inverse : l'embarqué qui s'est adapté à la JVM. Avant les systèmes étaient optimisés pour être utilisable avec des ressources limitées. Maintenant pour supporter la JVM, on est obligé de mettre du matériel plus puissant. Et si micropython existe, c'est peut-être aussi parce que la JVM n'est pas si adaptée que ça...
Complètement subjectif. Perso, je suis bien plus géné par la syntaxe verbeuse de Java.
Les performances de V8 sont très correctes. Sur du front, la performance dépend beaucoup de la qualité de la connexion et de la qualité du code. Si un dev a choisi un algo pourri, aucun langage ne le rendra efficace par magie.
Cet article n'a aucune valeur : il présente des points de détail ou de syntaxe comme si c'était d'une importance capitale, il ne prend pas vraiment en compte les normes récentes, certains arguments sont justes des préférences personnelles de l'auteur et beaucoup de critique ne sont pas des critiques du langage mais de mauvaises pratiques de développement qui auraient aussi lieu avec un autre langage.
mais encore ?
Pas vraiment : JS est apparu à peu près en même temps que VBScript. Et je ne vois pas en quoi c'est un défaut.
Non, il pointe des subtilités absurdes qui peuvent mener à des bugs difficiles à résoudre, une syntaxe difficile à écrire et à comprendre et surtout non standardisée puisqu'il y a souvent quatre ou cinq façon d'arriver à un même résultat. Quand il faut connaître 300 subtilités pour être sûr du résultat d'une égalité, je n'appelle pas ça un point de détail.
L'appréciation personnelle de JavaScript est subjective, ses faiblesses évidentes sont objectives.
Si ton seul argument est de sortir 6 mots de leur contexte pour jeter en bloc toutes mes remarques alors effectivement il vaut mieux "en arrêter là".
Sinon, j'attends avec impatience tes arguments montrant que la JVM est adaptée au mobile et à l'embarqué, que JS est moins adapté au backend que Python ou Ruby, que des features importantes manquent dans JS, que JS donne une importance particulière aux variables globales (point 5 de ton article), que les prototypes ne scalent pas (point 7), que JS n'a rien de commun avec lisp (point 9), etc, etc.
Je suis surpris que la côte d'Angular dégringole à ce point !
C'est que c'est un framework exigeant qui demande beaucoup de temps et d'efforts avant de commencer à travailler avec. J'ai d'ailleurs renoncé à l'imposer au sein de mon équipe pour ne pas gréver le projet, on est plutôt parti sur une solution bateau : Spring Java + Thymeleaf + Bootstrap + JQuery. Le projet terminé on ne regrette pas ce choix car tous le monde s'y est senti très à l'aise dès le départ et dans ce cas de figure c'est le prinicpal. Après même si les autres frameworks JS sont plus intéressants sur le papier il manquera toujour les nombreuses bibliothèques de composants dédiés de qualité pro dont Angular est richement doté et ça celà n'a pas de prix lorsqu'on developpe pour les entreprises.
le probleme c'est que javascript doit évoluer en gardant une compatibilité avec l'ancien et oui javascript est devenu complexe a cause de personnes comme toi qui veulent le beurre et l'argent du beurre deux exemples setTimeout qui servait a faire le l'asynchrone pour faire bien on a ajouter les promise et comme sa suffisait pas on a rajouter async await. Le deuxieme exemple c'est la poo on avait new une_class puis on a ajouter objet.create et enfin on a ajouter les class et tous ça pour ce retrouver avec du code qui mélange les class et les prototype (une nouvelle façon de faire de la poo qui melange les class et les prototype trop fort) et du coup quand tu veut faire un cours c'est le casse tête tous çà pour satisfaire la majorité des gens. J'aime pas les épinards et les pâtes c'est pas pour autant que je vais dire que c'est de la merde et que l'on doit pas en manger.Non, il pointe des subtilités absurdes qui peuvent mener à des bugs difficiles à résoudre, une syntaxe difficile à écrire et à comprendre et surtout non standardisée puisqu'il y a souvent quatre ou cinq façon d'arriver à un même résultat. Quand il faut connaître 300 subtilités pour être sûr du résultat d'une égalité, je n'appelle pas ça un point de détail.
bonne année.
Les mots en question étaient simplement le résumé de ta persistance à ignorer aveuglement tous les problèmes de JavaScript. L'article en question est factuel point par point, avec des exemples concrets et ne contient pas grand-chose qui puisse être attaquable.
Donc il faut accabler les utilisateurs pour les errance d'un langage qui ne sait ni d'où il vient, ni où il est, ni où il va ?
Quand le code est dégueulasse, c'est bien que le langage évolue pour rendre le code plus lisible. Je vais copier-coller des codes de l'article Asynchronous JavaScript: From Callback Hell to Async and Await
que j'aime bien citer.
Code dégueulasse avec le continuation-passing style :
Code moins dégueulasse avec les promesses :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 const verifyUser = function(username, password, callback){ dataBase.verifyUser(username, password, (error, userInfo) => { if (error) { callback(error) }else{ dataBase.getRoles(username, (error, roles) => { if (error){ callback(error) }else { dataBase.logAccess(username, (error) => { if (error){ callback(error); }else{ callback(null, userInfo, roles); } }) } }) } }) };
Code lisible avec async et await :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 const verifyUser = function(username, password) { database.verifyUser(username, password) .then(userInfo => dataBase.getRoles(userInfo)) .then(rolesInfo => dataBase.logAccess(rolesInfo)) .then(finalResult => { //do whatever the 'callback' would do }) .catch((err) => { //do whatever the error handler needs }); };
Le code souffre toujours du problème décrit dans l'article What Color is Your Function? mais, au moins, par rapport au continuation-passing style, il y a eu du progrès.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 const verifyUser = async function(username, password){ try { const userInfo = await dataBase.verifyUser(username, password); const rolesInfo = await dataBase.getRoles(userInfo); const logStatus = await dataBase.logAccess(userInfo); return userInfo; }catch (e){ //handle errors as needed } };
Non pas du tout, c'est un ramassi d'inepties et d'arguments fallacieux. Déjà l'article est publié sur le blog "JavaScript Non Grata, Just say no to this abomination" par un fanboy de Smalltalk. Autant dire que niveau impartialité on va être servi...
Point 1 : JS n'a pas de type entier. Et alors ? Les flottants ne sont pas suffisants ? Bash ne gère pas les flottants de base, et c'est bien plus génant. Le C gère des entiers et des flottants : résultat quand on travaille avec des entiers les comparaisons ne posent pas de problème mais il faut faire attention lors des divisions, mais avec les flottants c'est l'inverse, mais parfois il y a des conversions implicites, et le type int peut être 32 bits ou 64 bits selon l'architecture... c'est effectivement beaucoup mieux que JS...
Point 2 : typage faible et conversions automatiques. Ce sont des choix de conception dont je ne suis pas fan personnellement mais qui se retrouvent dans pas mal de langages dynamiques. Une bonne partie des exemples est assez discutable voire franchement malhonnête. Je vous conseille l'exemple de "arr" qui mérite à lui seul l'oscar de la mauvaise foi.
Point 3 : ajout automatique du ";". Ok, un débutant fera l'erreur une fois dans sa vie, et ensuite ? En Python aussi il faut faire attention au découpage des lignes... et également à l'indentation. Et à peu près tous les langages ont leurs pièges de syntaxe.
Point 4 : JS est mal utilisé, "Much of the code in the wild, especially those in commonly used libraries, are very badly written". D'où vient cette affirmation ? Quelles sont ces libs ? Des stats d'utilisation ? Des rapports d'analyse de code ? Non, il faut croire l'auteur sur parole et admettre que c'est la faute de JS. Avec un autre langage on n'aurait certainement que du code propre et même l'ado qui se prend pour un codeur 2h après avoir découvert la console de son navigateur produirait magiquement du code parfait...
Point 5 : JS dépend fortement des variables globales. Et alors ? Les variables globales sont déconseillées dans quasiment tous les langages. Le C possède encore "goto" mais quasiment personne ne l'utilise pour autant; qu'il soit bien implémenté ou pas tout le monde s'en fout.
Point 6 : " JavaScript code can fail silently due to syntactical slip-ups. It has happened to me several times, and tracking down the reason can be most exasperating." Encore des détails de syntaxe mais cette fois on ne sait même pas lesquels. Mais on peut croire l'auteur sur parole car ça lui est arrivé plusieurs fois et c'était exaspérant...
Point 7 : les prototypes ne conviennent pas pour des grosses applications. Pas d'argument ni de source concrète. L'auteur étant un fan de Smalltalk, on ne doute pas de l'objectivité de son analyse... Il arrive même à citer C++ comme exemple de langage objet; mais il ne parle pas de l'héritage de classes en diamant ni de la gestion des exceptions levées dans un destructeur... étonnant...
Point 8 : la programmation asynchrone est compliquée en JS. Ben c'est surtout la programmation asynchrone en général qui est compliquée et comme JS est l'un des rares langages mainstream à l'utiliser autant alors forcément... En fait, la critique porte essentiellement sur la syntaxe et n'a plus vraiment lieu avec les promise et les async/await.
Point 9 : JS n'est pas comme Lisp. Et pour cause, JS a été inspiré par Scheme et non Lisp. Et apparemment c'est suffisamment bien fait pour que certains cours d'algorithmie migrent de Scheme à JS: https://en.wikipedia.org/wiki/Struct...ipt_Adaptation
Point 10 : le seul avantage de JS tient dans des frameworks comme Node.js et AngularJS. Bon là c'est carrément du délire, l'auteur a complètement craqué. Admirez : "Everyone understood that JavaScript was a terrible language, and so it was used only sparingly. But then, someone thought it was a good idea to put this awful language on the server."
"factuel point par point, avec des exemples concrets et ne contient pas grand-chose qui puisse être attaquable"...
En voilà un joli démontage partial en règle rappelant l'analyse des discours scientifique par des climatosceptiques
Je ne vais pas m'amuser à démonter tes propos un par un, je n'ai pas que ça à faire et ça n'a aucun intérêt. Ca se résume en gros à "ouin, il dit du mal de mon langage préféré et c'est un méchant parce que c'est pas vraiiiiiiiiiiiiiii"
Le "ben oui c'est normal c'est JavaScript qui est pensé comme ça" n'est pas un argument non plus. Ca a été mal pensé, c'est tout.
j'ai testé React et Angular, je préfère Angular.
Je trouve qu'Angular est injustement trollé comme le fait principal qu'on lui reproche est qu'il soit fermé.... c'est faux.
Ensuite les versions, tous les 6 mois il y a une nouvelle version .... c'est exact, mais cela ne casse pas la compatibilité entre les versions 4, 5, 6, 7, 8, 9....
(avec une commande, on upgrade facilement et si jamais il y a une chose à modifier, c'est indiqué en warning...)
avec Angular 9 et le nouveau moteur ivy qui va permettre des performances au top et une taille minimale optimisé aux petits oignons j'espère que ça va reprendre du poil de la bete ....
sinon, je trouve pathétique la gueguere genre mon framework, mon langage est mieux que le tiens...
pour moi, tous les framework et langages se valent.
bien sur, il y a des petites différences, certains sont plus destinés dans un domaine que d'autres.
bien sur, certains ont des avantages ou inconvénients
MAIS AU FINAL, ils font tous le job. C'est bien là le principal, non ?
mais bon.... je vous laisse vous chamailler comme des gamins
Encore un débat aussi constructif qu'un avis sur la meilleure voiture du moment...
Dommage qu''on ne voie pas de spots publicitaires sur Javascript à la télé, ce serait drôle de voir ce que les marketeux pourraient nous pondre ...
Une voiture, chacun prend celle qu'il a envie et c'est marre.
Au niveau des langages, les erreurs de conception nous impactent tous au quotidien, rendant notre travail beaucoup plus difficile que ce qu'il ne devrait l'être, il y a donc de quoi susciter des débats passionnés.
Pour la voiture le choix n'est pas uniquement issu de l'envie, loin de là, c'est bien plus complexe, il y a bien d'autres facteurs qui entrent en ligne de compte.
Un choix n'est pas toujours issu d'une logique implacable. Chacun sa "stratégie" de choix.
Il n'y a plus qu'à créer une AI pour déterminer quel est le meilleur langage vu que visiblement l'humain n'est pas capable d'arriver à un consensus, mais du coup il aurait sans doute un parti pris
le but d'une voiture c'est d'aller d'un point A à un point B
toutes les voitures offrent se service.
le but d'un langage ou framework est de concevoir une application
tous les langages/framework offrent ce service
Venant d'Angular je trouve à titre personnel que c'est enfin le moment où le framework atteint une période de maturité et qu'il devient accessible (doc au top) à tous... qu'il est délaisse. Alors qu'il y a encore quelque temps tout le monde se jetait dessus alors qu'il y avait des patchs majeurs tous les 6 mois qui impliquaient toujours des incompatibilités de code qui étaient assez insupportable pour une montée en compétences sereine sur le framework. C'est un peu étrange et étonnant de mon point de vue mais le fait que je maitrise désormais bien l'environnement doit forcément biaiser mon opinion.
L'avantage certain que je vois avec React c'est une intégration au top sur le mobile avec React native qui fait du natif justement alors qu'on ne peut en dire autant sur ionic pour angular... qui pour le coup est assez incontestablement derrière son concurrent.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager