O JavaScript pode ser usado como uma linguagem de script geral?


18

Usei JavaScript e algumas estruturas (jQuery, Prototype, some node.js) para programação na Web do lado do cliente, mas nunca na área de trabalho, onde faço a maior parte do meu trabalho de script em Python ou Bash.

Mas IMHO, o JavaScript seria uma ótima linguagem de script se usada fora do navegador. alguem ja tentou isso? O JavaScript pode ser um substituto adequado para o Python / Perl / Bash para tarefas de script rápidas e sujas?


7
Há uma seção no artigo da Wikipedia sobre Javascript, intitulada " Usa fora de páginas da Web ", que documenta algumas instâncias de Javascript usadas exatamente como você descreve. Por favor, faça alguma pesquisa antes de perguntar.
precisa saber é

7
Yannis, existe essa regra nos sites da SE? Eu acho que o SE também pretende ser uma parte do wiki, o que significa que apenas perguntas tagarelas, fora do tópico, não respondíveis ou de qualidade extremamente baixa devem ser encerradas.
Tamás Szelei

3
@ TamásSzelei Na verdade, existe uma regra , resumida como "Faça sua lição de casa". E o SE faz parte do wiki, mas no sentido de que todo post é editável por todos, não no sentido de criar uma referência geral. Jeff Atwood resume a política "oficial" nesta meta resposta .
precisa saber é

3
@ Yannis: Eu mesmo examinei esse tópico e os recursos na Internet referentes a esse assunto estão em falta. Além disso, eu aprecio que a pergunta tenha sido feita em um fórum no qual membros inteligentes e conhecedores da comunidade de computação possam conversar com suas experiências, opiniões e sugestões. Em relação aos tópicos que dependem muito da opinião subjetiva, eu confiaria nas palavras de um membro da stackexchange com 20k repetições em um artigo da Wikipedia QUALQUER DIA.
Sr. JavaScript

3
@ ajax81 Se houvesse evidências de pesquisas anteriores na pergunta, teria sido uma pergunta perfeitamente correta. Se você realmente valoriza a comunidade tanto quanto diz, tenho certeza de que não quer perder tempo com ninguém e teria a gentileza de compartilhar sua pesquisa conosco e perguntar apenas o que não é suficientemente respondido em vários sites de referência geral. Não estou sugerindo a Wikipedia como uma alternativa à mente colméia do SE, o que estou dizendo é exatamente o oposto, não somos uma alternativa, pergunte quando a Wikipedia não for suficiente (mas, por favor, diga-nos como e por que não é suficiente) .
yannis

Respostas:


22

Sim! Você definitivamente pode fazer isso com o Node.js ou o Rhino. Por exemplo, o compilador coffeescript não passa de um script node.js.

Admito que geralmente não é a minha primeira escolha para scripts de desktop, mas não vejo razão para que não funcione muito bem em várias tarefas.


11

O Windows possui um componente chamado Windows Scripting Host, que permite automatizar a administração e até imitar a atividade do usuário até certo ponto através do JScript.

Atualização em 2017: o OSX agora permite automatizar tarefas da área de trabalho com Javascript. O que anteriormente era possível através do AppleScript agora é possível através do Javascript.


5

Uso o javascript principalmente para tudo, porque gosto e meu trabalho diário é fortemente influenciado por ele. Agora, o que quero dizer com dizer tudo:

  1. Ferramentas personalizadas (com o node-webkit você pode trazer experiência na área de trabalho)

  2. Scripts personalizados para execução na minha máquina via node.js

  3. Aplicativos móveis. Nem preciso do PhoneGap, pois estou bastante confortável com a URL de visita.

  4. Back-end para meus aplicativos da web com node.js. Posso acessar o sistema de arquivos e os bancos de dados, então o que me falta? Bem ... Uma estrutura madura o suficiente e espero que isso seja corrigido no recurso.

  5. Bem, claro, coisas sofisticadas sobre jQuery para sites.

Outros:

  1. Resolvo todos os katas de codificação com javascript (projeto euler, codewars)

  2. Eu implemento algoritmos que me interessam Javascript

  3. Experimentos em 3D com three.js e webgl.

Alguém vai me derrotar por causa do desempenho, mas eu quero satisfazer o desempenho de escrever código e entender um tópico, em vez de fazê-lo funcionar incrivelmente rápido.

E quanto à experiência na área de trabalho, para mim, trabalhar com HTML e CSS para interface do usuário é a maneira mais agradável.


4

Qt oferece QtScript. A Wikipedia disse:

O QtScript é um mecanismo de script que faz parte da estrutura de aplicativos de plataforma cruzada Qt desde a versão 4.3.0.

A linguagem de script é baseada no padrão ECMAScript com algumas extensões, como conexões de sinal e slot no estilo QObject. [1] A biblioteca contém o mecanismo e uma API C ++ para avaliar o código QtScript e expor as classes C ++ derivadas do QObject personalizadas ao QtScript.

Se você não sabe o que é Qt: é uma estrutura de aplicativo de plataforma cruzada em C ++. É bom em tirar a complexidade do desenvolvimento front-end em C ++ e também é suportado em sistemas móveis. Faz muito tempo que não desenvolvi o Qt, mas gostei.

Com o QtScript, eu poderia imaginar que se escreve uma GUI mínima e faz a lógica do aplicativo em JavaScript.


1
Com o Qt5, o javascript get tem um papel ainda maior com a nova estrutura da interface gráfica QML / QtQuick (usa javascript incorporado para gerenciar a interface do usuário).
Macke

0

Se você está falando apenas 'fora do navegador', procure ferramentas como Appcelerator e Servoy, que usam Javascript para codificação, que acaba se transformando em Java.


-1

Estou usando o JScript.net agora para criar uma interface de linha de comando inteligente. Está funcionando muito bem para este projeto porque eval () é útil, mas nem tudo funciona como você espera (não é js puro). Mas oferece algum RAD. Eu acho que seria uma boa plataforma de prototipagem. É meio estranho estar em uma terra de não-homem entre js e .net. (É obsoleto também, é tão difícil encontrar bons recursos nele)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.