¿Por qué no hay intérpretes Javascript nativos para Windows / Mac / Linux?

38

Me parece que sería muy útil usar Javascript para las tareas generales de secuencias de comandos del lado del servidor, ya que tiene más o menos las mismas características que Perl y Python. Pero AFAIK no hay intérpretes Javascript generalmente disponibles para las principales arquitecturas de máquinas. Supongo que el otro problema puede ser la falta de bibliotecas, pero seguramente vendrían si los intérpretes estuvieran allí. El V8 de Google quizás podría ser un punto de partida. ¿Alguien piensa que veremos esto pronto?

MebAlone
fuente
1
Y por cierto: casi nadie "interpreta" JavaScript en estos días, casi todos los navegadores lo compilan en código nativo justo a tiempo.
Joachim Sauer
2
En cierto sentido, hay un intérprete en Windows: consulte Jscript . No es exactamente Java Script, pero está cerca.
nhinkle
1
Un montón de cosas indican que Windows 8 tendrá eso incorporado hasta cierto punto, ya que puede crear aplicaciones JS para uso de escritorio nativo.
Plataforma

Respuestas:

67

Node.js es exactamente lo que estás pidiendo ... y más.

Además de ser un tiempo de ejecución de JavaScript, también proporciona API para operaciones comunes, como el acceso al sistema de archivos (JavaScript en el navegador realmente no lo necesita) y la red IO.

Se comercializa para crear aplicaciones de red (¡y es genial en eso!), Pero en realidad es un tiempo de ejecución de JavaScript de propósito general que puede usar para construir lo que desee. Además, se basa en V8.

Joachim Sauer
fuente
1
Huh, sí, solo pensé en el nodo para las aplicaciones de red, ya que desde su página de inicio están claras que para eso es.
MebAlone
55
@MebAlone: ​​ese es su objetivo principal, cierto. Pero node.exe(o solo nodeen plataformas Unix-y) es básicamente un simple tiempo de ejecución de JavaScript. node myJavaScript.jsse ejecuta myJavaScript.jsy ¿qué más necesita de un sistema de tiempo de ejecución? (Ok, necesita depuración y bibliotecas, pero Node.js también las tiene cubiertas ;-)). Una buena indicación para esto es que muchos proyectos usan scripts JavaScript (ejecutados en Node.js, por supuesto) como su sistema de compilación.
Joachim Sauer
1
NodeJS se ejecuta en el V8 de Google. Puedes usar V8 para hacer lo que quieras. Entonces, incluso si NodeJS no es adecuado para usted, V8 podría serlo.
Andrew T Finnell
2
@ Andrew: por lo que sé, V8 no envía ningún binario, solo fuente. Por lo tanto, tendría que construirlo usted mismo (o buscar binarios de terceros). Si no le importa el nodo, es muy fácil ignorar las bibliotecas y usar el nodo como un tiempo de ejecución de JavaScript puro. No veo cómo puedes hacer eso con la misma facilidad con V8.
Joachim Sauer
Un ejemplo de una aplicación * no * en red en el nodo sería el módulo CoffeeScript que se puede ejecutar en la línea de comandos para compilar sus archivos coffeescript en javascript.
Spoike
76

Como mencionó Joachim, node.js es exactamente lo que pides.

Parece que no se conoce bien en comparación con Python y especialmente con Perl para este tipo de cosas, pero tal vez eso sea simplemente porque JavaScript no se considera muy bueno.

ingrese la descripción de la imagen aquí

Eliot Ball
fuente
2
Las partes buenas compensan todas las otras cosas que tiene Javascript ... eso y CoffeeScript. ¡Oh CoffeeScript !
Spoike
44
+1 para el Kinect en una pila de libros. Tengo la guía definitiva sentada debajo de mi monitor para elevar un poco la altura del monitor.
Phil
3
-1, a pesar de la foto divertida, esta respuesta es esencialmente una forma elegante de decir 'porque apesta', y realmente no aporta nada.
GrandmasterB
3
No, eso no es lo que está diciendo en absoluto.
Michael B
1
Lol, The Definitive Guide: no es un libro de JavaScript, sino uno sobre DOM de navegador web, con un poco de js al principio.
gbjbaanb
28

Windows Script Host ha incluido un motor JScript (javascript) desde al menos Windows 2000 listo para usar, lo que le permite realizar tareas de administrador de sistemas utilizando javascript.

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

También es posible incrustar esto en una aplicación de Windows utilizando el objeto WScript.Shell ActiveX / COM.

Joeri Sebrechts
fuente
ah, muy guay!
MebAlone
3
WSH también le permite usar otros lenguajes de script (como vb); y si no me equivoco, se puede instalar más ( en.wikipedia.org/wiki/… ). También se puede utilizar para otras aplicaciones de secuencias de comandos de Windows, como el reproductor de medios, palabra, etc.
frozenkoi
5

Además de node.js, también hay gjs , que es un tiempo de ejecución orientado a GNOME que da acceso a las bibliotecas GNOME, GTK y GLib, entre otras. Creo que puede usar con él cualquier biblioteca que admita la introspección GObject.

Gjs se usa ampliamente en el escritorio GNOME3.

dhasenan
fuente
2

Hay un intérprete de javascript escrito para aplicaciones Java (llamado Rhino ) y parece estar diseñado para escribir código de servidor en javascript, pero hacer que se ejecute como código java.

Personalmente, creo que estás mucho mejor con node.js, ya que es increíble. Para una introducción rápida, puede hacer mucho peor que leer el libro (gratuito) NodeBeginner .

gbjbaanb
fuente
En aras de la integridad: Rhino no hace que Javascript se ejecute como código Java, es un intérprete de Javascript, es decir, ejecuta Javascript en un entorno JVM. Es de destacar que no es muy rápido, en comparación con más intérpretes de bajo nivel como V8.
Cthulhu
Buen libro gratis.
Andrew_1510