JavaScript può essere utilizzato come linguaggio di scripting generale?


18

Ho usato JavaScript e alcuni framework (jQuery, Prototype, alcuni node.js) per la programmazione Web sul lato client, ma mai sul desktop, dove eseguo la maggior parte del mio lavoro di scripting in Python o Bash.

Ma IMHO, JavaScript sarebbe un ottimo linguaggio di scripting se usato al di fuori del browser. Qualcuno ha provato questo? JavaScript può essere un sostituto adeguato di Python / Perl / Bash per attività di scripting veloci e sporche?


7
C'è una sezione dell'articolo di Wikipedia in JavaScript intitolata " Utilizza pagine Web esterne ", che documenta alcuni esempi di Javascript usati esattamente come descrivi. Per favore, fai qualche ricerca prima di chiedere.
yannis,

7
Yannis, esiste una tale regola nei siti SE? Penso che SE miri a essere anche parte di una wiki, nel senso che dovrebbero essere chiuse solo domande loquaci, off-topic, non rispondenti o di qualità estremamente bassa.
Tamás Szelei,

3
@ TamásSzelei In realtà esiste una regola , riassunta in "Fai i compiti". E SE fa parte della wiki, ma nel senso che ogni post è modificabile da tutti, non nel senso di costruire un riferimento generale. Jeff Atwood riassume la politica "ufficiale" in questa meta risposta .
yannis,

3
@Yannis: ho analizzato personalmente questo argomento e le risorse su Internet relative a questo argomento sono gravemente carenti. Inoltre, apprezzo il fatto che la domanda sia stata posta in un forum in cui membri intelligenti e competenti della comunità informatica possano entrare in contatto con la loro esperienza, opinioni e suggerimenti. Per quanto riguarda gli argomenti che dipendono fortemente dall'opinione soggettiva, mi fiderei delle parole di un membro di stackexchange con 20k rappresentanti su un articolo di Wikipedia QUALUNQUE GIORNO.
Mr. JavaScript

3
@ ajax81 Se ci fossero prove di ricerche precedenti nella domanda, sarebbe stata una domanda perfettamente valida da porre. Se apprezzi davvero la comunità quanto dici, sono certo che non vuoi perdere tempo a nessuno, e saresti stato così gentile da condividere la tua ricerca con noi e chiedere solo ciò che non è sufficientemente risposto in vari siti di riferimento generali. Non sto suggerendo Wikipedia come alternativa alla mente dell'alveare SE, quello che sto dicendo è esattamente il contrario, non siamo un'alternativa, chiedi quando Wikipedia non è abbastanza (ma per favore dicci come e perché non è abbastanza) .
yannis,

Risposte:


22

Sì! Puoi sicuramente farlo con Node.js o Rhino. Ad esempio il compilatore coffeescript non è altro che uno script node.js.

Devo ammettere che non è generalmente la mia prima scelta per gli script desktop, ma non vedo alcun motivo per cui non funzionerebbe abbastanza bene per una serie di attività.


11

Windows ha un componente chiamato Windows Scripting Host che ti consente di automatizzare l'amministrazione e persino imitare l'attività dell'utente in una certa misura tramite JScript.

Aggiornamento nel 2017: OSX ora ti consente di automatizzare le attività desktop con Javascript. Ciò che prima era possibile tramite AppleScript è ora possibile tramite Javascript.


5

Uso javascript principalmente per tutto perché mi piace e il mio lavoro quotidiano ne è fortemente influenzato. Ora cosa intendo dicendo tutto:

  1. Strumenti personalizzati (con node-webkit puoi portare esperienza desktop)

  2. Script personalizzati da eseguire sulla mia macchina tramite node.js

  3. App mobili. Non ho nemmeno bisogno di PhoneGap perché mi sento abbastanza a mio agio con l'URL di visita.

  4. Backend per le mie app Web con node.js. Posso accedere al filesystem e ai database, quindi cosa mi manca? Bene .. Un framework abbastanza maturo e spero che questo sarà risolto nella funzione.

  5. Beh, ovviamente, fantasiose cose jQuery per siti Web.

Varie:

  1. Risolvo tutti i kata di programmazione con javascript (progetto euler, codewars)

  2. Realizzo algoritmi che mi interessano Javascript

  3. Esperimenti 3D con three.js e webgl.

Qualcuno mi batterà a causa delle prestazioni, ma voglio soddisfare le prestazioni di scrittura del codice e comprensione di un argomento invece di farlo funzionare incredibilmente veloce.

E per quanto riguarda l'esperienza desktop, per me lavorare con HTML e CSS per l'interfaccia utente è il modo più piacevole.


4

Qt offre QtScript. Wikipedia ha detto:

QtScript è un motore di scripting che fa parte del framework dell'applicazione multipiattaforma Qt dalla versione 4.3.0.

Il linguaggio di scripting si basa sullo standard ECMAScript con alcune estensioni, come il segnale in stile QObject e le connessioni agli slot. [1] La libreria contiene il motore e un'API C ++ per la valutazione del codice QtScript e l'esposizione delle classi C ++ derivate da QObject personalizzate su QtScript.

Se non sai cos'è Qt: è un framework applicativo multipiattaforma in C ++. È utile per eliminare la complessità dallo sviluppo front-end C ++ ed è supportato anche sui sistemi mobili. È passato molto tempo dall'ultima volta che ho sviluppato con Qt, ma mi è piaciuto.

Con QtScript ho potuto immaginare che uno scrivesse una GUI minima e facesse la logica dell'applicazione in JavaScript.


1
Con Qt5, javascript ottiene un ruolo ancora più importante con il nuovo framework GUI QML / QtQuick (utilizza JavaScript incorporato per la gestione dell'interfaccia utente).
Macke,

0

Se stai semplicemente parlando 'puramente al di fuori del browser', guarda strumenti come Appcelerator e Servoy, entrambi i quali utilizzano Javascript per la codifica, che alla fine viene trasformato in Java.


-1

Sto usando JScript.net in questo momento per creare un'interfaccia a riga di comando intelligente. Sta funzionando abbastanza bene per questo progetto perché eval () è utile, ma non tutto funziona come previsto (non è puro js). Ma offre qualche RAD. Penso che sarebbe una buona piattaforma di prototipazione. Il suo genere di essere strano in una terra di nessuno tra js e .net però. (È anche obsoleto, così difficile trovare buone risorse su di esso)

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.