Pergunta

Eu estou escrevendo uma aplicação gráfica em Java. Eventualmente, eu gostaria de construir em uma linguagem de script assim que as coisas são programáveis. Qual biblioteca de idiomas que você recomendaria?

suspeitos prováveis ??são:

Menos prováveis ??candidatos são:

O público-alvo provavelmente não são programadores de hardcore, então é preferível linguagem menos misterioso. Meu palpite é que o JavaScript é mais aceitável por eles, mesmo com suas peculiaridades, apenas porque eles já vi isso mais.

Lua parece ser popular em C / C ++, mas pelo menos LuaJava requer adicional .dll / .so, o que torna a implantação complicado.

EDIT: PhiLho escreveu que há uma implementação Java da Lua chamado kahlua .


Perguntas relacionadas:

Foi útil?

Solução 6

Acabei de ler de Steve Yegge o desenho Universal Padrão. O artigo é sobre o tema muito mais amplo do script apenas incorporado no aplicativo Java, mas desde que o autor escreve uma aplicação Java que permite scripting (usando Jython), há pontos interessantes eu achei interessante.

E JavaScript é um dos dois melhores linguagens de scripting no planeta, em no sentido mais correto do termo "Linguagem de script", a saber: línguas que foram projetados especificamente para ser incorporado em maior sistemas hospedeiros e, em seguida, utilizado para manipular ou objetos "roteiro" do sistema host. Isto é o que JavaScript foi projetado para fazer. É razoavelmente pequena, com algumas extensões opcionais, ele tem um razoavelmente apertado informal especificação, e que tem um cuidadosamente Interface trabalhada para revestimento host-sistema de objetos de forma transparente em JavaScript.

Em contraste, Perl, Python e Ruby são enormes alastros, todos tentando (como C ++ e Java) para ser a melhor linguagem para cada tarefa. A única outra corrente linguagem lá fora, que compete com JavaScript para scripts arbitrária sistemas host é Lua, famosa por ser a linguagem de script de escolha para a indústria de jogos.

Eu concordo com ele em estreitar a JavaScript e Lua.

Sem os exemplos acessível, tudo o que posso fazer é dizer que o uso de JavaScript / Rhino (Ou Lua, uma vez que se tornou disponível em a JVM) pode ter feito a minha vida mais fácil.

Eu pessoalmente prefiro JavaScript na plataforma Java. A população da base utilizador é maior. Como coloca Yegge ele, é "a linguagem do mundo mais a programação mal entendido", mas a quantidade de recurso disponível no idioma é um plus. Rhino parece uma besta amadureceu.

Outras dicas

Se o público-alvo é "nenhum conhecimento de programação ...." escolher jython (python) é fácil de aprender. (Meu 7 anos filha pequena aprendeu muito rápido)

Bruce Eckel feito um capítulo com jython em "Thinking in Java".

no perigo recebendo um "down-voto" python é mais fácil como BASIC: -)

Lua é apreciada, entre outras coisas, pela simplicidade da linguagem, tornando-o fácil de aprender. LuaJava usa a implementação original Lua, tornando-se completa, mas como você apontá-lo, talvez delicado para instalar. Conheço pelo menos uma implementação Java puro da Lua: Kahlua . Não é completo (falta de apoio co-rotina entre outras coisas, mas pode-se fazer muito sem eles) mas talvez já utilizável para seu objetivo.
Ao contrário de, digamos, Groovy, não deve adicionar muita sobrecarga para a sua aplicação ...

Se você quiser ir para fora tudo que você poderia utilizar scripting para a Plataforma Java como definido por JSR 223. Tomando essa abordagem permitiria a aplicação para utilizar qualquer linguagem que tem uma conformidade mecanismo de script

.

Há também BeanShell, que tem a vantagem de ser um JSR totalmente aprovado, e então talvez mais propensos a ficar por aqui.

http://www.beanshell.org/

Java 6 já tem o javascript disponível como uma linguagem de script JSR 223, fora da caixa.

Atualmente estou procurando uma biblioteca que permita-me usar objetos Java e métodos de scripts Lua.

A minha primeira idéia era usar LuaJava também, mas como eu quero isso para trabalhar em Linux, Mac e Windows, I foi adiada pelo fato de que ele usa um lib compilado além do material de Java. binários somente para Windows pré-compilados estão disponíveis, e eu não sou um especialista em Mac, então eu tentei encontrar algo em puro Java, e eu encontrei isto: http://sourceforge.net/projects/luaj

Parece para implementar a API C descrito no doc Lua, bem como a API de LuaJava.

O projeto parece realmente avançado, há exemplos de chamadas balançar de Lua (!), E eles trabalharam na minha caixa de Linux. Mas estranhamente, listas de discussão, fóruns e documentação são realmente escassos.

Vou tentar fazer isso no Windows e Mac, também. Espero que funcione.

Kahlua foi mencionado, mas ele só é dirigida a J2ME, é por isso que carece de algumas partes da Lua. Eu acho que há um projeto chamado Mochalua que tem os mesmos objectivos.

LuaJ, por outro lado, vem em duas versões, uma destinada a J2SE que implementa tudo (co-rotinas, também), e um voltado para J2ME, que carece de 2 ou 3 libs eu acho que (incluindo o material LuaJava, que necessidades reflexão).

Você pode considerar Jacl . É baseado em Tcl que foi originalmente projetado para ser uma linguagem de script embutido. Assim, pode-se argumentar que é muito mais adequado para o efeito de outras linguagens de script que tinham a capacidade de ser incorporado pregado-on.

Especialmente se o público-alvo é "programadores não hardcore", Jacl faz uma escolha bem. As pessoas inteligentes (e especialmente aqueles sem preconceitos de programação hard-wired) pode facilmente pegar a sintaxe Tcl em uma manhã.

Você pode usar RelProxy - Java, que fornece real e puro Java como linguagem de scripting, incluindo shell scripts feitos com Java, graças à sua compilação em tempo real. Porque o "script" Java é executado compartilhando o ClassLoader lançador, a integração é simples.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top