Perché non ci sono interpreti Javascript nativi per Windows / Mac / Linux?


39

Mi sembra molto utile usare Javascript per le attività generali di scripting lato server poiché ha più o meno le stesse funzionalità di Perl e Python. Ma AFAIK non ci sono interpreti Javascript generalmente disponibili per le principali architetture di macchine. Immagino che l'altro problema potrebbe essere la mancanza di biblioteche, ma sicuramente verrebbero se gli interpreti fossero lì. Il V8 di Google potrebbe forse essere un punto di partenza. Qualcuno pensa che lo vedremo presto?


1
E comunque: quasi nessuno "interpreta" JavaScript in questi giorni, praticamente tutti i browser lo compilano in codice nativo appena in tempo.
Joachim Sauer,

2
In un certo senso c'è un interprete in Windows - vedi Jscript . Non è esattamente Java Script, ma è vicino.
Pensa il

1
I rumori delle cose indicano che Windows 8 avrà proprio questo in una certa misura incorporato dal momento che puoi creare app JS per l'uso desktop nativo.
Rig

Risposte:


68

Node.js è esattamente quello che stai chiedendo ... e altro ancora.

Oltre ad essere un runtime JavaScript, fornisce anche API per operazioni comuni, come l'accesso al file system (JavaScript sul browser non ne ha davvero bisogno) e l'IO della rete.

È commercializzato per la creazione di applicazioni di rete (ed è fantastico!), Ma è davvero un runtime JavaScript generico che puoi usare per costruire tutto ciò che desideri. Inoltre, si basa su V8.


1
Eh, sì, ho pensato al nodo solo per le app di rete, in quanto sono chiare dalla loro homepage sul fatto che è quello che serve.
MebAlone,

5
@MebAlone: ​​questo è il loro scopo principale, vero. Ma node.exe(o solo nodesu piattaforme Unix-y) è sostanzialmente un runtime JavaScript semplice. node myJavaScript.jsfunziona myJavaScript.jse di cosa hai bisogno di più da un sistema di runtime? (Ok, hai bisogno di debug e librerie, ma anche Node.js ne ha coperti ;-)). Una buona indicazione di ciò è che molti progetti usano script JavaScript (eseguiti ovviamente in Node.js) come sistema di compilazione.
Joachim Sauer,

1
NodeJS funziona sul V8 di Google. Puoi usare V8 per fare quello che vuoi. Quindi, anche se NodeJS non è adatto a te, V8 potrebbe esserlo.
Andrew T Finnell,

2
@Andrew: da quello che so V8 non spedisce alcun binario, solo fonte. Quindi dovresti costruirlo da solo (o trovare binari di terze parti). Se non ti interessa il nodo, è molto semplice ignorare le librerie e utilizzare il nodo come un runtime JavaScript puro. Non vedo come puoi farlo con la stessa facilità con V8.
Joachim Sauer,

Un esempio di un'applicazione * non- * in rete nel nodo potrebbe essere il modulo CoffeeScript che può essere eseguito nella riga di comando per compilare i file coffeescript in javascript.
Spoike,

77

Come accennato da Joachim, node.js è esattamente ciò che chiedi.

Sembra non essere ben noto se paragonato a Python e in particolare a Perl per questo tipo di cose, ma forse è semplicemente perché JavaScript non è ampiamente considerato molto buono.

inserisci qui la descrizione dell'immagine


2
Le parti buone compensano tutte le altre cose che Javascript sta succedendo ... questo e CoffeeScript. Oh CoffeeScript !
Spoike,

4
+1 per il Kinect su una pila di libri. Ho la guida definitiva sotto il mio monitor per aumentare leggermente l'altezza del monitor.
Phil

3
-1, nonostante la foto divertente, questa risposta è essenzialmente un modo stravagante di dire "perché fa schifo" e non contribuisce davvero a nulla.
GrandmasterB,

3
No, non è affatto quello che sta dicendo.
Michael B,

2
Lol, The Definitive Guide - non è affatto un libro javascript ma uno sui DOM dei browser web, con un po 'di js all'inizio.
gbjbaanb,

29

Windows Script Host ha incluso un motore JScript (javascript) da almeno Windows 2000 pronto all'uso, che consente di eseguire attività sysadmin utilizzando javascript.

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

È anche possibile incorporarlo in un'applicazione Windows usando l'oggetto ActiveX / COM di WScript.Shell.


ah, molto bello!
MebAlone,

3
WSH ti consente anche di usare un numero di altri linguaggi di scripting (come vb); e se non sbaglio ne possono essere installati altri ( en.wikipedia.org/wiki/… ). Puoi anche usarlo per lo script di altre app di Windows, come media player, word, ecc.
frozenkoi

6

Oltre a node.js, c'è anche gjs , che è un runtime orientato a GNOME che consente, tra gli altri, di accedere alle librerie GNOME, GTK e GLib. Credo che tu possa usare qualsiasi libreria che supporti l'introspezione di GObject.

Gjs è ampiamente utilizzato nel desktop GNOME3.


3

Esiste un interprete javascript scritto per app Java (chiamato Rhino ) e sembra progettato per scrivere codice server in javascript, ma deve essere eseguito come codice java.

Personalmente, penso che tu sia molto meglio con node.js dato che è fantastico. Per una rapida introduzione, puoi fare molto peggio che leggere il libro (gratuito) di NodeBeginner .


Per completezza: Rhino non esegue Javascript come codice Java, è un interprete Javascript, ovvero esegue Javascript in un ambiente JVM. Da notare che non è molto veloce, rispetto ad altri interpreti di basso livello come V8.
Cthulhu,

buon libro gratuito.
Andrew_1510,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.