¿Se puede usar JavaScript como un lenguaje de script general?


18

He usado JavaScript y algunos frameworks (jQuery, Prototype, some node.js) para la programación web del lado del cliente, pero nunca en el escritorio, donde hago la mayor parte de mi trabajo de script en Python o Bash.

Pero en mi humilde opinión, JavaScript sería un excelente lenguaje de secuencias de comandos si se usa fuera del navegador. ¿Alguien ha probado esto? ¿Puede JavaScript ser un reemplazo adecuado para Python / Perl / Bash para tareas de script rápidas y sucias?


77
Hay una sección en el artículo de Wikipedia de JavaScript titulada " Usos fuera de las páginas web ", que documenta bastantes instancias de Javascript que se usan exactamente como usted describe. Por favor, investigue un poco antes de preguntar.
Yannis

77
Yannis, ¿existe tal regla en los sitios de SE? Creo que SE también pretende ser una parte de wiki, lo que significa que solo se deben cerrar las preguntas habladoras, fuera de tema, no respondibles o de muy baja calidad.
Tamás Szelei

3
@ TamásSzelei En realidad, hay una regla , resumida como "Haz tu tarea". Y SE es parte wiki, pero en el sentido de que cada publicación es editable por todos, no en el sentido de construir una referencia general. Jeff Atwood resume la política "oficial" en esta meta respuesta .
Yannis

3
@ Yannis: Yo mismo he examinado este tema y me faltan recursos en Internet relacionados con este tema. Además, agradezco que la pregunta se haya formulado en un foro donde los miembros inteligentes y conocedores de la comunidad informática pueden intervenir con su experiencia, opiniones y sugerencias. Con respecto a los temas que dependen en gran medida de la opinión subjetiva, confiaría en las palabras de un miembro de stackexchange con 20k de representación en un artículo de wikipedia CUALQUIER DÍA.
Sr. JavaScript

3
@ ajax81 Si hubiera evidencia de investigaciones previas en la pregunta, habría sido una pregunta perfectamente buena. Si realmente valoras a la comunidad tanto como dices, estoy seguro de que no quieres perder el tiempo de nadie, y habrías tenido la amabilidad de compartir tu investigación con nosotros y preguntar solo sobre lo que no se responde suficientemente en varios sitios de referencia general. No estoy sugiriendo Wikipedia como una alternativa a la mente de la colmena SE, lo que digo es exactamente lo contrario, no somos una alternativa, pregunte cuándo Wikipedia no es suficiente (pero díganos cómo y por qué no es suficiente) .
Yannis

Respuestas:


22

¡Si! Definitivamente puedes hacerlo con Node.js o Rhino. Por ejemplo, el compilador coffeescript no es más que un script node.js.

Admitiré que generalmente no es mi primera opción para las secuencias de comandos de escritorio, pero no veo ninguna razón por la que no funcione bastante bien para una serie de tareas.


11

Windows tiene un componente llamado Windows Scripting Host que le permite automatizar la administración e incluso imitar la actividad del usuario hasta cierto punto a través de JScript.

Actualización en 2017: OSX ahora le permite automatizar tareas de escritorio con Javascript. Lo que antes era posible a través de AppleScript ahora es posible a través de Javascript.


5

Utilizo JavaScript principalmente para todo porque me gusta y mi trabajo diario está muy influenciado por él. Ahora, ¿qué quiero decir con decir todo:

  1. Herramientas personalizadas (con node-webkit puede brindar experiencia de escritorio)

  2. Scripts personalizados para ejecutar en mi máquina a través de node.js

  3. Aplicaciones móviles. Ni siquiera necesito PhoneGap, ya que estoy bastante cómodo visitando la URL.

  4. Back-end para mis aplicaciones web con node.js. Puedo acceder al sistema de archivos y bases de datos, entonces, ¿qué me falta? Bueno ... Un marco lo suficientemente maduro y espero que esto se arregle en la función.

  5. Bueno, por supuesto, cosas sofisticadas de jQuery para sitios web.

Misceláneo:

  1. Resuelvo todos los katas de codificación con javascript (proyecto euler, codewars)

  2. Implemento algoritmos Estoy interesado en Javascript

  3. Experimentos 3D con three.js y webgl.

Alguien me vencerá por el rendimiento, pero quiero satisfacer el rendimiento de escribir código y comprender un tema en lugar de hacerlo correr a toda velocidad.

Y en cuanto a la experiencia de escritorio, para mí trabajar con HTML y CSS para la interfaz de usuario es la forma más agradable.


4

Qt ofrece QtScript. Wikipedia dijo:

QtScript es un motor de secuencias de comandos que ha sido parte del marco de aplicaciones multiplataforma Qt desde la versión 4.3.0.

El lenguaje de secuencias de comandos se basa en el estándar ECMAScript con algunas extensiones, como la señal de estilo QObject y las conexiones de ranura. [1] La biblioteca contiene el motor y una API de C ++ para evaluar el código QtScript y exponer clases C ++ personalizadas derivadas de QObject a QtScript.

Si no sabe qué es Qt: es un marco de aplicación multiplataforma en C ++. Es bueno para eliminar la complejidad del desarrollo front-end de C ++, y también es compatible con sistemas móviles. Hace mucho tiempo que desarrollé por última vez con Qt, pero me gustó.

Con QtScript, podría imaginar que uno escribe una GUI mínima y hace la lógica de la aplicación en JavaScript.


1
Con Qt5, javascript tiene un papel aún más importante con el nuevo marco de GUI QML / QtQuick (usa javascript incrustado para administrar la interfaz de usuario).
Macke

0

Si solo está hablando 'puramente fuera del navegador', busque herramientas como Appcelerator y Servoy, que usan Javascript para la codificación, que finalmente se convierte en Java.


-1

Estoy usando JScript.net en este momento para crear una interfaz de línea de comandos inteligente. Está funcionando bastante bien para este proyecto porque eval () es útil, pero no todo funciona como se espera (no es js puro). Pero ofrece algo de RAD. Creo que sería una buena plataforma de creación de prototipos. Sin embargo, es un poco extraño estar en una tierra de nadie entre js y .net. (También es obsoleto, es muy difícil encontrar buenos recursos)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.