Kann JavaScript als allgemeine Skriptsprache verwendet werden?

18

Ich habe JavaScript und einige Frameworks (jQuery, Prototype, einige node.js) für die clientseitige Webprogrammierung verwendet, aber niemals auf dem Desktop, wo ich die meisten meiner Skripterstellungsarbeiten in Python oder Bash erledige.

Aber meiner Meinung nach wäre JavaScript eine großartige Skriptsprache, wenn es außerhalb des Browsers verwendet würde. Hat jemand das versucht? Kann JavaScript ein adäquater Ersatz für Python / Perl / Bash für schnelle und schmutzige Skriptaufgaben sein?

rdasxy
quelle
7
Es gibt einen Abschnitt im Wikipedia-Artikel zu Javascript mit dem Titel " Verwendet außerhalb von Webseiten ", in dem einige Instanzen von Javascript dokumentiert sind, die genau so verwendet werden, wie Sie es beschreiben. Bitte recherchieren Sie, bevor Sie fragen.
Yannis
7
Yannis, gibt es eine solche Regel in SE-Sites? Ich denke, SE ist bestrebt, auch ein Teil des Wikis zu sein, was bedeutet, dass nur gesprächige, nicht themenbezogene, nicht beantwortbare oder äußerst minderwertige Fragen geschlossen werden sollten.
Tamás Szelei
3
@ TamásSzelei Eigentlich gibt es eine Regel , zusammengefasst als "Mach deine Hausaufgaben". Und SE ist Teil des Wikis, aber in dem Sinne, dass jeder Beitrag von jedem bearbeitet werden kann und nicht im Sinne einer allgemeinen Referenz. Jeff Atwood fasst die "offiziellen" Richtlinien in dieser Meta-Antwort zusammen .
Yannis
3
@Yannis: Ich habe mich selbst mit diesem Thema befasst und die Ressourcen im Internet zu diesem Thema fehlen stark. Darüber hinaus weiß ich zu schätzen, dass die Frage in einem Forum gestellt wurde, in dem intelligente, sachkundige Mitglieder der Computer-Community ihre Erfahrungen, Meinungen und Vorschläge einbringen können. In Bezug auf Themen, die stark von subjektiver Meinung abhängen, würde ich den Worten eines Stackexchange-Mitglieds mit 20.000 Wiederholungen über einen Wikipedia-Artikel JEDEN TAG vertrauen.
Herr JavaScript
3
@ ajax81 Wenn es Hinweise auf frühere Untersuchungen in dieser Frage gegeben hätte, wäre es eine sehr gute Frage gewesen. Wenn Sie die Community wirklich so sehr schätzen, wie Sie sagen, dann möchten Sie sicher keine Zeit verschwenden, und Sie wären so freundlich gewesen, Ihre Forschungen mit uns zu teilen und nur danach zu fragen, was in verschiedenen Sprachen nicht ausreichend beantwortet wird Allgemeine Referenzseiten. Ich schlage Wikipedia nicht als Alternative zum SE-Hive-Mind vor. Was ich sage, ist genau das Gegenteil. Wir sind keine Alternative. Fragen Sie, wenn Wikipedia nicht ausreicht. Bitte sagen Sie uns, wie und warum es nicht ausreicht. .
Yannis

Antworten:

22

Ja! Das können Sie auf jeden Fall mit Node.js oder Rhino. Zum Beispiel ist der Coffeescript-Compiler nichts anderes als ein node.js-Skript.

Ich gebe zu, dass es im Allgemeinen nicht meine erste Wahl für Desktop-Skripte ist, sehe aber keinen Grund, warum es für eine Reihe von Aufgaben nicht ganz gut funktionieren würde.

Zachary K
quelle
11

Windows verfügt über eine Komponente namens Windows Scripting Host, mit der Sie die Verwaltung automatisieren und sogar die Benutzeraktivität in gewissem Maße über JScript nachahmen können.

Update 2017: Mit OSX können Sie jetzt Desktop-Aufgaben mit Javascript automatisieren. Was bisher mit AppleScript möglich war, ist jetzt mit Javascript möglich.

rsman
quelle
5

Ich benutze Javascript hauptsächlich für alles, weil es mir gefällt und meine tägliche Arbeit stark davon beeinflusst wird. Was meine ich nun damit, dass ich alles sage:

  1. Benutzerdefinierte Tools (mit Node-Webkit können Sie Desktop-Erfahrung bringen)

  2. Benutzerdefinierte Skripte, die über node.js auf meinem Computer ausgeführt werden

  3. Mobile Apps. Ich brauche nicht einmal PhoneGap, da ich mit dem Besuch von URLs ziemlich vertraut bin.

  4. Backend für meine Web Apps mit node.js. Ich kann auf Dateisysteme und Datenbanken zugreifen. Was fehlt mir also? Naja .. Ein ausgereiftes Framework und ich hoffe das wird im Feature behoben.

  5. Na natürlich schickes jQuery-Zeug für Webseiten.

Sonstiges:

  1. Ich löse alle Codierungskatas mit Javascript (Projekt Euler, Codewars)

  2. Ich implementiere Algorithmen, die mich für Javascript interessieren

  3. 3D-Experimente mit three.js und webgl.

Jemand wird mich wegen der Leistung schlagen, aber ich möchte die Leistung beim Schreiben von Code und beim Verstehen eines Themas zufrieden stellen, anstatt es blitzschnell laufen zu lassen.

Und was das Desktop-Erlebnis angeht, ist für mich die Arbeit mit HTML und CSS für die Benutzeroberfläche am angenehmsten.

lukas.pukenis
quelle
4

Qt bietet QtScript an. Wikipedia sagte:

QtScript ist eine Skript-Engine, die seit Version 4.3.0 Teil des plattformübergreifenden Qt-Anwendungsframeworks ist.

Die Skriptsprache basiert auf dem ECMAScript-Standard mit einigen Erweiterungen wie QObject-Signal und Steckplatzverbindungen. [1] Die Bibliothek enthält die Engine und eine C ++ - API zum Auswerten von QtScript-Code und zum Aussetzen benutzerdefinierter, von QObject abgeleiteter C ++ - Klassen für QtScript.

Wenn Sie nicht wissen, was Qt ist: Es ist ein plattformübergreifendes Anwendungsframework in C ++. Es vereinfacht die Komplexität der C ++ - Front-End-Entwicklung und wird auch auf mobilen Systemen unterstützt. Es ist lange her, dass ich das letzte Mal mit Qt entwickelt habe, aber es hat mir gefallen.

Mit QtScript könnte ich mir vorstellen, dass man eine minimale GUI schreibt und die Anwendungslogik in JavaScript macht.

einfach
quelle
1
Mit Qt5 erhält Javascript eine noch größere Rolle mit dem neuen QML / QtQuick-GUI-Framework (verwendet eingebettetes Javascript für die Verwaltung der Benutzeroberfläche).
Macke
0

Wenn Sie nur "rein außerhalb des Browsers" sprechen, schauen Sie sich Tools wie Appcelerator und Servoy an, die beide Javascript zum Codieren verwenden, was letztendlich zu Java wird.

Alan B
quelle
-1

Ich verwende gerade JScript.net, um eine intelligente Befehlszeilenschnittstelle zu erstellen. Für dieses Projekt funktioniert es ziemlich gut, da eval () praktisch ist, aber nicht alles so funktioniert, wie Sie es erwarten (es ist kein reines js). Aber es bietet etwas RAD. Ich denke, es wäre eine gute Prototyping-Plattform. Es ist schon komisch, in einem Niemandsland zwischen js und .net zu sein. (Es ist auch veraltet, so schwer, gute Ressourcen zu finden)

Kennzeichen
quelle