Java et JavaScript sont deux langages de programmation. Les langages de programmation sont juste un tas de résumé des règles mathématiques. Les langages de programmation ne sont pas rapide. Ou lente. Ils ont juste sont.
Les performances d'une application n'a rien à voir avec la langue. Le facteur le plus important est l'architecture de l'application. Puis vient algorithmique de l'efficacité. Ensuite, micro-optimisations. Vient ensuite la qualité du compilateur/interpréteur. Puis le PROCESSEUR. Peut-être un couple de d'autres étapes entre les deux. La langue, cependant, n'est pas directement un rôle à jouer. (Et bien sûr si vous parlez des points de référence, puis aussi le particulier de référence joue un rôle, ainsi que les moyens mis en œuvre dans de l'indice de référence est de savoir comment il est, si le gars qui effectue le test fait en sait quelque chose à propos de l'analyse comparative, et plus important encore les statistiques. Aussi, la précision de la définition de ce que tu veux dire par "rapide" est très important, car il peut aussi avoir une influence importante sur l'indice de référence.)
Cependant, la langue pourrait indirectement un rôle à jouer: il est beaucoup plus facile à trouver et corriger les goulots d'étranglement des performances en 10 lignes de très expressif, clair, concis, lisible, bien factorisé, isolé, haut niveau du code Lisp, que dans les 100 lignes de enchevêtrées, de bas niveau C. (à Noter que ces deux langues ne sont que des exemples. Je ne veux pas unique n'importe quelle langue.) Twitter, par exemple, ont dit qu'avec un moins le langage expressif que le Rubis, ils n'auraient pas été en mesure de faire de tels changements radicaux à leur architecture dans un court laps de temps, à résoudre leurs problèmes d'évolutivité. Et la raison pourquoi Node.js est en mesure de fournir la bonne evented performance I/O est parce que le JavaScript de la bibliothèque standard est tellement merdique. (De cette façon, Node.js doit fournir toutes les I/O lui-même, afin qu'ils puissent optimiser pour evented I/O à partir du sol. Ruby et Python, par exemple, ont evented bibliothèques d'e/S qui fonctionnent tout aussi bien comme Node.js et sont beaucoup plus mature ... mais, Ruby et Python ont déjà de grandes bibliothèques standard, y compris les bibliothèques d'e/S, qui sont synchrones et ne joue pas bien avec evented bibliothèques. JavaScript n'est pas le problème des bibliothèques d'e/S qui ne jouent pas bien avec evented I/O, parce que JavaScript n'a pas de bibliothèques d'e/S à tous.)
Mais si vous vraiment voulez comparer les deux, voici un intéressant point de données pour vous: HotSpot, qui est l'un des plus populaire, et aussi plus performant JVM implémentations là-bas, a été créé par une équipe de gars qui comprenait, entre autres personnes, un gars du nom de Lars Bak. Mais en fait, HotSpot ne semble pas hors de l'air mince, il était basé sur le code source de la Anamorphique Smalltalk VM, qui a été créé par une équipe de gars qui comprenait, entre autres personnes, un gars du nom de Lars Bak.
V8, qui est l'un des plus populaire, et aussi plus performant JavaScript implémentations là-bas, a été créé par une équipe de gars qui comprenait, entre autres personnes, un gars du nom de Lars Bak. Mais en fait, le V8 ne semble pas hors de l'air mince, il était basé sur le code source de la Anamorphique Smalltalk VM, qui a été créé par une équipe de gars qui comprenait, entre autres personnes, un gars du nom de Lars Bak.
Étant donné que les deux sont plus ou moins les mêmes, on peut s'attendre à des performances similaires. La seule différence est que HotSpot a plus d'une centaine d'ingénieurs travaillent depuis 15 ans, tandis que le V8 a une douzaine d'ingénieurs de travail pour les moins de 5 ans. C' est la seule différence dans les performances. Il n'est pas statique vs dynamique de frappe (Java est statiquement typé, mais la plupart des machines virtuelles et certainement HotSpot font pas statique optimisations que ce soit, toutes les optimisations sont purement dynamique), la compilation vs interprétation (HotSpot est en fait interprété avec un autre compilateur JIT, alors que le V8 est purement compilé), de haut niveau et de bas niveau. C'est purement une question d'argent.
Mais je vais le pari que, pour chaque paire de Java et de JavaScript implémentations où l'implémentation de Java est plus rapide, je peux trouver une autre paire où le JavaScript de la mise en œuvre est plus rapide. Aussi, je peux probablement garder la paire et il suffit d'utiliser un autre indice de référence. Il y a une raison à l'appel de l'Ordinateur Langues de Référence Jeu "jeu": ils ont même encourager vous droit sur leur propre page pour jouer avec les repères de faire n'importe quelle langue remontent à la surface.