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?


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.


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


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.


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.


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 .


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.