Pourquoi n'y a-t-il pas d'interpréteur Javascript natif pour Windows / Mac / Linux?

39

Il me semble qu’il serait très utile d’utiliser Javascript pour les tâches de script côté serveur générales car il présente plus ou moins les mêmes fonctionnalités que Perl et Python. Pour autant que je sache, il n’existe pas d’interprète Javascript généralement disponible pour les principales architectures de machines. Je suppose que l’autre problème est peut-être le manque de bibliothèques, mais celles-ci viendraient certainement si les interprètes étaient présents. Le V8 de Google pourrait peut-être être un point de départ. Est-ce que quelqu'un pense que nous verrons cela bientôt?

MebAlone
la source
1
Et au fait: presque personne «n'interprète» le JavaScript ces derniers temps, presque tous les navigateurs le compilent en code natif juste à temps.
Joachim Sauer
2
En un sens, il existe un interpréteur dans Windows - voir Jscript . Ce n'est pas exactement Java Script, mais c'est proche.
Nhinkle
1
Tout semble indiquer que Windows 8 sera construit dans cette optique, dans la mesure où vous pouvez créer des applications JS pour une utilisation de bureau native.
Rig

Réponses:

68

Node.js est exactement ce que vous demandez ... et plus encore.

En plus d'être un moteur d'exécution JavaScript, il fournit également des API pour les opérations courantes, telles que l'accès au système de fichiers (JavaScript sur le navigateur n'en a pas vraiment besoin) et les E / S réseau.

Il est commercialisé pour la construction d'applications réseau (et c'est formidable!), Mais il s'agit vraiment d'un moteur d'exécution JavaScript à usage général que vous pouvez utiliser pour créer tout ce que vous voulez. En outre, il est basé sur V8.

Joachim Sauer
la source
1
Euh, oui, j'ai seulement pensé au noeud en ce qui concerne les applications réseau, car leur page d'accueil indique clairement que c'est ce à quoi elles servent.
MebAlone
5
@MebAlone: ​​c'est leur objectif principal, c'est vrai. Mais node.exe(ou juste nodesur les plates-formes Unix-y) est fondamentalement un simple runtime JavaScript. node myJavaScript.jsfonctionne myJavaScript.jset que avez-vous besoin de plus d’un système d’exécution? (Ok, vous avez besoin du débogage et des bibliothèques, mais Node.js les a aussi couverts ;-)). Une bonne indication à cela est que beaucoup de projets utilisent des scripts JavaScript (exécutés dans Node.js bien sûr) comme système de construction.
Joachim Sauer
1
NodeJS fonctionne sur le V8 de Google. Vous pouvez utiliser V8 pour faire ce que vous voulez. Donc, même si NodeJS ne vous convient pas, le V8 pourrait l’être.
Andrew T Finnell
2
@ Andrew: d'après ce que je sais, la V8 ne fournit aucun fichier binaire, mais uniquement une source. Il vous faut donc le construire vous-même (ou trouver des fichiers binaires tiers). Si vous ne vous souciez pas de noeud, il est très facile d'ignorer les bibliothèques et d'utiliser noeud comme un runtime JavaScript pur. Je ne vois pas comment vous pouvez le faire aussi facilement avec V8.
Joachim Sauer
Un exemple d'application * non * en réseau dans le noeud serait le module CoffeeScript qui peut être exécuté en ligne de commande pour compiler vos fichiers coffeescript en javascript.
Spoike
77

Comme mentionné par Joachim, node.js est exactement ce que vous demandez.

Il semble ne pas être bien connu par rapport à Python et surtout à Perl pour ce genre de choses, mais c'est peut-être simplement parce que JavaScript n'est pas généralement considéré comme très bon.

entrez la description de l'image ici

Eliot Ball
la source
2
Les bonnes parties compensent toutes les autres choses que Javascript a en cours ... cela et CoffeeScript. Oh CoffeeScript !
Spoike
4
+1 pour le Kinect sur une pile de livres. J'ai le guide définitif assis sous mon moniteur pour augmenter légèrement la hauteur du moniteur.
Phil
3
-1, malgré la photo amusante, cette réponse est essentiellement une façon élégante de dire «ça craint», et ne contribue pas vraiment à rien.
GrandmasterB
3
Non, ce n'est pas ce qu'il dit du tout.
Michael B
2
Lol, The Definitive Guide - Ce n’est pas du tout un livre javascript sur les DOM du navigateur Web, avec un peu de js au début.
gbjbaanb
29

Windows Script Host inclut un moteur JScript (javascript) depuis au moins Windows 2000 prêt à l'emploi, ce qui vous permet d'effectuer des tâches sysadmin à l'aide de javascript.

http://en.wikipedia.org/wiki/Windows_Script_Host

Il est également possible d'intégrer cela dans une application Windows à l'aide de l'objet WScript.Shell ActiveX / COM.

Joeri Sebrechts
la source
ah très cool!
MebAlone
3
WSH vous permet également d’utiliser un certain nombre d’autres langages de script (comme vb); et si je ne me trompe pas, d'autres peuvent être installés ( en.wikipedia.org/wiki/… ). Vous pouvez également l'utiliser pour
créer un
6

Outre node.js, il existe également gjs , qui est un environnement d'exécution orienté GNOME donnant accès aux bibliothèques GNOME, GTK et GLib, entre autres. Je pense que vous pouvez utiliser avec n'importe quelle bibliothèque prenant en charge l'introspection de GObject.

Gjs est largement utilisé dans le bureau GNOME3.

Dhasenan
la source
3

Il existe un interpréteur javascript écrit pour les applications Java (appelé Rhino ) et il semble conçu pour écrire du code serveur en javascript, mais l'exécuter en tant que code java.

Personnellement, je pense que vous êtes beaucoup mieux avec node.js car c'est génial. Pour une introduction rapide, vous pouvez faire bien pire que de lire le livre (gratuit) NodeBeginner .

gbjbaanb
la source
Par souci d'exhaustivité: Rhino ne fait pas exécuter le code JavaScript en tant que code Java, c'est un interpréteur Javascript, c'est-à-dire qu'il exécute le code Javascript dans un environnement JVM. Il est à noter que ce n’est pas très rapide, comparé à un plus grand nombre d’interprètes de bas niveau comme V8.
Cthulhu
bon livre gratuit.
Andrew_1510