JavaScript peut-il être utilisé comme langage de script général?

18

J'ai utilisé JavaScript et certains cadres (jQuery, Prototype, certains node.js) pour la programmation Web côté client, mais jamais sur le bureau, où je fais la plupart de mon travail de script en Python ou Bash.

Mais à mon humble avis, JavaScript ferait un excellent langage de script s'il était utilisé en dehors du navigateur. Quelqu'un at-il essayé cela? JavaScript peut-il remplacer adéquatement Python / Perl / Bash pour des tâches de script rapides et sales?

rdasxy
la source
7
Il y a une section sur l'article Javascript de Wikipédia intitulée " Utilise des pages Web extérieures ", qui documente un bon nombre d'instances de Javascript utilisées exactement comme vous le décrivez. Veuillez faire quelques recherches avant de demander.
yannis
7
Yannis, existe-t-il une telle règle dans les sites SE? Je pense que SE vise également à être une partie wiki, ce qui signifie que seules les questions bavardes, hors sujet, sans réponse ou de très mauvaise qualité devraient être fermées.
Tamás Szelei
3
@ TamásSzelei En fait, il existe une règle , résumée comme "Faites vos devoirs". Et SE fait partie du wiki, mais dans le sens où chaque article est modifiable par tout le monde, pas dans le sens de construire une référence générale. Jeff Atwood résume la politique "officielle" dans cette méta-réponse .
yannis
3
@Yannis: J'ai moi-même étudié ce sujet et les ressources sur Internet concernant ce sujet font cruellement défaut. De plus, j'apprécie que la question ait été posée dans un forum où des membres intelligents et bien informés de la communauté informatique peuvent se mêler de leur expérience, de leurs opinions et de leurs suggestions. En ce qui concerne les sujets qui s'appuient fortement sur une opinion subjective, je ferais confiance aux mots d'un membre stackexchange avec 20k rep sur un article wikipedia N'IMPORTE QUEL JOUR.
M. JavaScript
3
@ ajax81 S'il y avait des preuves de recherches antérieures dans la question, cela aurait été une très bonne question à poser. Si vous appréciez vraiment la communauté autant que vous le dites, je suis certain que vous ne voulez pas perdre de temps, et vous auriez eu la gentillesse de partager vos recherches avec nous et de demander uniquement ce qui n'est pas suffisamment répondu dans divers sites de référence généraux. Je ne propose pas Wikipedia comme alternative à l'esprit de ruche SE, ce que je dis est exactement le contraire, nous ne sommes pas une alternative, demandez quand Wikipedia ne suffit pas (mais dites-nous comment et pourquoi cela ne suffit pas) .
yannis

Réponses:

22

Oui! Vous pouvez certainement le faire avec Node.js ou Rhino. Par exemple, le compilateur coffeescript n'est rien d'autre qu'un script node.js.

Je dois admettre que ce n'est généralement pas mon premier choix pour les scripts de bureau, mais je ne vois aucune raison pour laquelle cela ne fonctionnerait pas très bien pour un certain nombre de tâches.

Zachary K
la source
11

Windows a un composant appelé Windows Scripting Host qui vous permet d'automatiser l'administration et même d'imiter l'activité des utilisateurs dans une certaine mesure via JScript.

Mise à jour en 2017: OSX vous permet désormais d'automatiser les tâches de bureau avec Javascript. Ce qui était auparavant possible via AppleScript est désormais possible via Javascript.

rsman
la source
5

J'utilise javascript principalement pour tout car je l'aime et mon travail quotidien en est fortement influencé. Maintenant, qu'est-ce que je veux dire en disant tout:

  1. Outils personnalisés (avec node-webkit, vous pouvez apporter une expérience de bureau)

  2. Scripts personnalisés à exécuter sur ma machine via node.js

  3. Application mobile. Je n'ai même pas besoin de PhoneGap car je suis assez à l'aise avec la visite d'URL.

  4. Backend pour mes applications web avec node.js. Je peux accéder au système de fichiers et aux bases de données, alors qu'est-ce qui me manque? Eh bien .. Un cadre assez mature et j'espère que cela sera corrigé dans la fonctionnalité.

  5. Bien sûr, des trucs jQuery fantaisistes pour les sites Web.

Divers:

  1. Je résous tous les katas de codage avec javascript (projet euler, codewars)

  2. J'implémente des algorithmes Je suis intéressé par Javascript

  3. Expériences 3D avec three.js et webgl.

Quelqu'un me battra à cause des performances, mais je veux satisfaire les performances de l'écriture de code et de la compréhension d'un sujet au lieu de le faire fonctionner de manière extrêmement rapide.

Et en ce qui concerne l'expérience de bureau, pour moi, travailler avec HTML et CSS pour l'interface utilisateur est le moyen le plus agréable.

lukas.pukenis
la source
4

Qt propose QtScript. Wikipédia a déclaré:

QtScript est un moteur de script qui fait partie du cadre d'application multiplateforme Qt depuis la version 4.3.0.

Le langage de script est basé sur la norme ECMAScript avec quelques extensions, telles que les connexions de signal et de slot de style QObject. [1] La bibliothèque contient le moteur et une API C ++ pour évaluer le code QtScript et exposer les classes C ++ dérivées de QObject personnalisées à QtScript.

Si vous ne savez pas ce qu'est Qt: c'est un framework d'application multiplateforme en C ++. Il permet de réduire la complexité du développement frontal C ++ et est également pris en charge sur les systèmes mobiles. Cela fait longtemps que je n'ai pas développé avec Qt, mais j'ai bien aimé.

Avec QtScript, je pourrais imaginer que l'on écrit une interface graphique minimale et fait la logique d'application en JavaScript.

nalply
la source
1
Avec Qt5, le javascript devient un rôle encore plus important avec le nouveau cadre d'interface graphique QML / QtQuick (utilise le javascript intégré pour gérer l'interface utilisateur).
Macke
0

Si vous ne parlez que `` purement en dehors du navigateur '', regardez des outils comme Appcelerator et Servoy, qui utilisent tous deux Javascript pour le codage, qui est finalement transformé en Java.

Alan B
la source
-1

J'utilise JScript.net en ce moment pour créer une interface de ligne de commande intelligente. Cela fonctionne assez bien pour ce projet car eval () est pratique, mais tout ne fonctionne pas comme vous vous y attendez (ce n'est pas du pur js). Mais il offre un peu de RAD. Je pense que cela ferait une bonne plateforme de prototypage. C'est un peu bizarre d'être dans un no-mans-land entre js et .net. (C'est obsolète aussi, donc difficile de trouver de bonnes ressources dessus)

marque
la source