Je programme en JavaScript côté serveur sous NodeJS depuis un moment,
Et depuis quelques jours je me demande si l'avantage du JS en côté serveur, est l'utilisation des modules populaires comme Socket.io/Express/Hapi?
JS pourras t-il devancer PHP ou Ruby?
Ensuite, je voudrais aussi savoir si JS est uniquement performant pour le WEB ou aussi pour des algorithmes, la robotique, IA. Enfin ça a vraiment de l'avenir? Si un jour je me pointes chez Google avec ça ils vont pas se foutre de moi (J'exagère un peu Google :D)
J'aimerais aller vraiment loin avec JS donc si vous avez des liens pour me tenir en information du meilleur et indispensable en JS.
Ce que je vais dire est en grande partie un avis perso et donc subjectif.
D'abord côté serveur… Pour moi, en 2016 le seul avantage d'avoir du js sur le serveur c'est d'avoir "un seul langage des deux côtés". Mais je trouve dommage et, pour moi, rédhibitoire, que ce soit le js dans ce cas.
Entendons nous bien, le js à des qualités mais dans l'ensemble il a aussi tout un tas de défaut que je trouve inacceptable pour un langage en 2016. L'histoire le sauvé.
Dans tous les cas, les utilisation du js restes aujourd'hui orienté autour du web. Une grosse boîte te jugera pas sur un langage. Google par exemple, pour beaucoup de leurs postes, te laissera répondre à leur entretien dans le langage que tu veux. C'est souvent plus tes connaissances algorithmique ou sur le domaine sur lequel tu postule qui va jouer, le langage ils s'en foutent. Un langage reste un outils, ce sont les méthodes et tes compétences qui sont importantes. Le reste c'est du détail.
Dans ma boîte on préfère 1000 fois recruter un mec qui sait coder en js qu'un mec qui connait vaguement python, même si tout notre base de code est en python. Le plus important c'est la logique, pas le langage qui reste un outils.
Tes questions sont très orientés, tu auras des avis très subjectifs.
De manière générale, les langages informatiques sont des outils. Chaque outil a des avantages et des inconvénients. Sur un projet sérieux, chaque choix de langage ou de librairie est fait grâce à un benchmark. C'est le benchmark qui indique les potentiels raisons des choix des technologies.
Les critères du benchmark sont libres, changent pour chaque projet, dans chaque environnement et selon les besoins métiers.
Quelques exemples de critères: performances, de documentation, de formations d'équipes, … .
C'est pour cela que donner une réponse universelle est totalement con.
Les avantages donnés souvent par la communautés JS:
C'est rapide, pas autant que du natif mais ça reste relativement rapide. C'est une généralités cela dépend évidement des cas d'utilisations de l'application cible.
C'est relativement à la mode donc plus facile de trouver des développeurs motivé.
Une bonne communautée, des librairies a foisons, documentation.
Mais il a aussi des désavantages comme toute techno !
JS pourras t-il devancer PHP ou Ruby?
Un loup à mangé ma boule de cristal … .
je voudrais aussi savoir si JS est uniquement performant pour le WEB ou aussi pour des algorithmes, la robotique, IA.
Un algorithme est indépendant de tous langages.
La robotique nécessite souvent un critères de performance et y'a des fortes contraires liés au matériel. Généralement, on préférera des langages compilé comme le c ou le c++ .
Si je ne dis pas de bêtise le js n'est pas non plus très à l'aise pour manipuler les nombres, ce qui en fait un langage peu adapté pour le calcul mathématique et tout ce qui va avec !
Effectivement, je le vois mal faire du calcul scientifique, il a pas de notions d'entiers, tout est flottant. Donc pour pleins de domaines, c'est probablement vite la misère.
Déjà merci pour toutes vos réponses qui ont répondu à ma faim
Y a t-il aujourd'hui un langage de programmation plus performant que C ou C++ concernant la robotique?:p
C'est vrai jusqu'à un certain point. Et force est de constater que la force du Javascript ce n'est pas tout à fait le calcul haute performance.
Après je rejoins la remarque de Kje: j'ai arrêté de faire des entretiens techniques, i.e. sur un language ou une technologie clef (sauf si très spécifique, mais si c'est pour recruter un ingénieur on s'attends à ce que la techno ne soit pas un soucis), et je ne pose que des questions plus générales et vagues pour voir où le candidat m'amène. S'il est expert en C++ on va discuter C++ plus en profondeur à un moment s'il m'amène dessus, idem en Python, en calcul numérique ou en IA.
Tout ça pour dire que ce ne doit pas être la technologie qui guide ton apprentissage et tes intérêts mais bien tes intérêts qui guide ton apprentissage de telle ou telle technologie. De sorte que tes compétences dans les domaines qui t'intéressent soient en phase avec les technologies les plus utilisées (pour de bonnes raisons) dans ces domaines. On ne pourra jamais te le reprocher dans un entretien.
Il est possible que si les domaines soient trop éloignés tu te fermes quelques portes, mais d'un autre côté, comme ton apprentissage a été guidé par ce que tu as envie de faire, il est peu probable que ces portes qui se ferment t'intéressent de toute manière.
Autrement dit, si tu es intéressé par l'IA ou la robotique, jette toi sur les technologies les plus utilisées dans ces domaines. Si c'est le web, idem. Etc.
Ça dépend ce que tu compares. En nombre bibliothèques open source disponibles, JS devance PHP, Ruby et Python.
En performance, Node devance pas mal Ruby et Python. C'est principalement dû au fait que V8 n'interprête pas du bytecode mais génère du langage machine, et aux millions investis dans l'optimisation de V8. Actuellement V8 est une bête bizarre dans la catégorie des JIT, sauf qu'une grande partie du code n'est compilé au maximum que 2x. V8 va lentement migrer vers une architecture un peu différente où pour la première fois un interpréteur sera présent, ça fera une compilation initiale JS -> Bytecode et le bytecode sera interprété au moins une fois, puis Bytecode -> Langage machine pour le hot code.
En terme d'adoption, JS dépasse Ruby (et python et PHP dépassent probablement aussi Ruby), mais je suis pas sûr pour JS vs Python ou JS vs PHP ou Python vs PHP. Je dirais peut-être (JS|Python) > Php > Ruby ? Par contre y'a pas vraiment de framework backend en JS aussi complet et répandu que Django ou RoR.
Ce qui pèche avec JS pour une utilisation généraliste que permettent volontiers Python et Ruby, c'est clairement le calcul numérique comme dit auparavant. Niveau performances largement, et niveau sémantique.
Après, le langage en lui-même est super spécial et comporte plus d'incohérences et de trucs bizarres que Python ou Ruby. En apparence, apprendre JS Python ou Ruby est d'égale difficulté. Mais si tu passes 2 semaines à apprendre intensivement Python ou Ruby, t'auras pas d'énormes problèmes par la suite. JS c'est pas le cas. Il y a tellement de choses étranges que réellement maitriser le langage prend un temps énorme. Les gens se retrouvent régulièrement confrontés à des problèmes difficilement compréhensibles, même avec un code simple. Il y a aussi le fait que JavaScript n'a pas de bibliothèque standard. C'est bête.
Du coup on pourrait dire que JS est plus difficile à apprendre, et que programmer proprement en JS demande une discipline personnelle et une rigueur supérieure à Python ou Ruby. C'est clairement pas à son avantage.
Même en ayant une excellente connaissance du langage, de son standard, et du fonctionnement des moteurs JS, il m'arrive encore parfois de me faire avoir par des trucs bêtes. C'est toujours l'occasion d'apprendre des trucs, évidemment, mais souvent c'est le genre de cas où tu préférerais que le comportement du langage soit bien pensé plutôt que devoir se remplir la tête avec des exceptions bizarres. Exemple qui m'est arrivé y'a quelques semaines : https://twitter.com/_vhf/status/781106930739712000
(Au fait, vu que t'as mentionné Google, c'est avec Facebook l'entreprise qui a le plus investi dans JavaScript. Donc ouais, si t'es expert du JS, t'as bien tes chances chez eux. )
Connectez-vous pour pouvoir poster un message.
Connexion
Pas encore membre ?
Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte