Warum gibt es keine nativen Javascript-Interpreter für Windows / Mac / Linux?

38

Mir scheint es sehr nützlich zu sein, Javascript für allgemeine serverseitige Skriptaufgaben zu verwenden, da es mehr oder weniger die gleichen Funktionen wie Perl und Python hat. Aber AFAIK, es gibt keine allgemein verfügbaren Javascript-Interpreter für die wichtigsten Maschinenarchitekturen. Ich vermute, das andere Problem könnte der Mangel an Bibliotheken sein, aber diese würden sicherlich kommen, wenn die Dolmetscher da wären. Googles V8 könnte vielleicht ein Ausgangspunkt sein. Glaubt jemand, wir werden das bald sehen?

Alleine
quelle
1
Übrigens: Heutzutage "interpretiert" fast niemand JavaScript, so gut wie alle Browser kompilieren es rechtzeitig in nativen Code.
Joachim Sauer
2
In gewisser Weise gibt es einen Interpreter in Windows - siehe Jscript . Es ist nicht gerade Java Script, aber es ist nah.
Nhinkle
1
Geräusche deuten darauf hin, dass Windows 8 bis zu einem gewissen Grad über eine integrierte Funktion verfügt, da Sie JS-Apps für die native Desktop-Nutzung erstellen können.
Rig

Antworten:

67

Node.js ist genau das, wonach Sie fragen ... und mehr.

Es ist nicht nur eine JavaScript-Laufzeitumgebung, sondern bietet auch APIs für allgemeine Vorgänge, z. B. Dateisystemzugriff (JavaScript im Browser benötigt das nicht wirklich) und Netzwerk-E / A.

Es ist für die Erstellung von Netzwerkanwendungen vermarktet (und das ist großartig!), Aber es ist wirklich eine allgemeine JavaScript-Laufzeit, mit der Sie alles erstellen können, was Sie wollen. Auch es wird basierend auf V8.

Joachim Sauer
quelle
1
Huh, ja, ich dachte nur an Node als für Netzwerk-Apps, da sie von ihrer Homepage klar sind, dass es das ist, wofür es ist.
MebAlone
5
@MebAlone: ​​das ist ihr Hauptzweck, stimmt. Aber node.exe(oder nur nodeauf Unix-y-Plattformen) ist im Grunde eine einfache JavaScript-Laufzeit. node myJavaScript.jsläuft myJavaScript.jsund was brauchst du noch von einem Laufzeitsystem? (Ok, Sie brauchen Debugging und Bibliotheken, aber Node.js hat auch diese abgedeckt ;-)). Ein gutes Indiz dafür ist, dass viele Projekte JavaScript-Skripte (die natürlich in Node.js ausgeführt werden) als Build-System verwenden.
Joachim Sauer
1
NodeJS läuft auf Googles V8. Mit V8 können Sie tun, was Sie wollen. Auch wenn NodeJS nicht zu Ihnen passt, könnte es sein, dass es V8 ist.
Andrew T Finnell
2
@ Andrew: Soweit ich weiß, werden in V8 keine Binärdateien ausgeliefert, sondern nur Quellen. Sie müssten es also selbst erstellen (oder nach Binärdateien von Drittanbietern suchen). Wenn Sie sich nicht für Knoten interessieren, ist es sehr einfach, die Bibliotheken zu ignorieren und Knoten als reine JavaScript-Laufzeit zu verwenden. Ich verstehe nicht, wie man das mit V8 genauso einfach machen kann.
Joachim Sauer
Ein Beispiel für eine * nicht * vernetzte Anwendung in Node ist das CoffeeScript-Modul, das in der Befehlszeile ausgeführt werden kann, um Ihre Coffeescript-Dateien mit Javascript zu kompilieren.
Spoike
76

Wie von Joachim erwähnt, ist node.js genau das, wonach Sie fragen.

Es scheint im Vergleich zu Python und insbesondere Perl für diese Art von Dingen nicht gut bekannt zu sein, aber vielleicht liegt das einfach daran, dass JavaScript nicht allgemein als sehr gut eingestuft wird.

Bildbeschreibung hier eingeben

Eliot Ball
quelle
2
Die guten Teile machen all die anderen Dinge wieder gut, die Javascript vor sich hat ... das und CoffeeScript. Oh CoffeeScript !
Spoike
4
+1 für den Kinect auf einem Stapel Bücher. Ich habe die endgültige Anleitung unter meinem Monitor, um die Monitorhöhe ein wenig anzuheben.
Phil
3
-1, trotz des lustigen Fotos, ist diese Antwort im Wesentlichen eine ausgefallene Art zu sagen, weil es scheiße ist und nicht wirklich etwas dazu beiträgt.
GroßmeisterB
3
Nein, das sagt er überhaupt nicht.
Michael B
1
Lol, The Definitive Guide - überhaupt kein Javascript-Buch, sondern ein Buch über Webbrowser-DOMs, mit ein bisschen js am Anfang.
gbjbaanb
28

Windows Script Host enthält seit mindestens Windows 2000 eine JScript-Engine (Javascript), mit der Sie Sysadmin-Aufgaben mit Javascript ausführen können.

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

Es ist auch möglich, dies mit dem WScript.Shell ActiveX / COM-Objekt in eine Windows-Anwendung einzubetten.

Joeri Sebrechts
quelle
Ah, sehr cool!
MebAlone
3
Mit WSH können Sie auch eine Reihe anderer Skriptsprachen verwenden (z. B. vb). und wenn ich mich nicht irre kann mehr installiert werden ( en.wikipedia.org/wiki/… ). Sie können es auch verwenden, um andere Windows-Apps wie Media Player, Word usw. zu
skripten
5

Neben node.js gibt es auch gjs , eine GNOME-orientierte Laufzeitumgebung, die unter anderem Zugriff auf GNOME- , GTK- und GLib-Bibliotheken bietet. Ich glaube, Sie können damit jede Bibliothek verwenden, die GObject Introspection unterstützt.

Gjs wird im GNOME3-Desktop häufig verwendet.

dhasenan
quelle
2

Es gibt einen JavaScript-Interpreter für Java-Apps ( Rhino ), der anscheinend so konzipiert ist, dass er Servercode in JavaScript schreibt, aber als Java-Code ausgeführt wird.

Persönlich denke ich, dass Sie mit node.js viel besser dran sind, da das fantastisch ist. Für eine schnelle Einführung können Sie viel Schlimmeres tun, als das (kostenlose) NodeBeginner-Buch zu lesen .

gbjbaanb
quelle
Der Vollständigkeit halber: Rhino lässt Javascript nicht als Java-Code ausführen, sondern ist ein Javascript-Interpreter, dh es führt Javascript in einer JVM-Umgebung aus. Bemerkenswert ist, dass es im Vergleich zu Low-Level-Interpreten wie V8 nicht sehr schnell ist.
Cthulhu
gutes freies Buch.
Andrew_1510