Pergunta

Sou um programador Java e gosto do meu compilador, das ferramentas de análise estática e das estruturas de testes unitários como ferramentas que me ajudam a entregar rapidamente código robusto e eficiente.O JRE também está em praticamente todos os lugares onde eu trabalharia.

Dada essa situação, não consigo ver uma razão pela qual eu escolheria usar scripts shell, scripts vb, etc., não importa quão pequena seja a tarefa se eu usar um dos meus outros chapéus, como meu fedora preto e legal de administrador de sistemas.

Eu não uso os outros chapéus com muita frequência, sob quais circunstâncias devo escolher scripts em vez de escrever código compilado?

Foi útil?

Solução

O que você achar que será mais eficiente para você!

Tive um colega de trabalho que parecia usar uma linguagem diferente para cada tarefa;Perl para processamento rápido de texto, PHP para pequenas aplicações web internas, .NET para nosso produto principal, cygwin para sistema de arquivos.Ele preferiu usar a tecnologia mais específica para a tarefa em questão.

Pessoalmente, acho que a mudança de contexto entre tecnologias é dolorosa.Meu trabalho diário é em .NET, então esses são os termos em que penso.Para a maioria das tarefas, acho mais eficiente criar algo em C# usando SnippetCompiler do que hackear no PowerShell ou em um ambiente de script.

Outras dicas

Se você se sente confortável com Java e o JRE está em todos os lugares onde você trabalha, eu diria para continuar usando-o.Existem, no entanto, linguagens como perl e python que são particularmente adequadas para resolver problemas rapidamente.Eu sugeriria aprender perl ou python e, em seguida, usar seu julgamento sobre quando usá-lo.

Se eu tiver um pequeno problema que gostaria de resolver rapidamente, costumo usar uma linguagem de script.A taxa do código é menor e, pelo menos para mim, o resultado vem mais rápido.

Eu diria onde faz sentido.Se demorar mais para abrir seu IDE, compilar o script, etc.do que seria editar um arquivo de script e terminar com ele do que usar o arquivo de script.Se você não vai mudar as coisas com frequência e é mais rápido na codificação Java, siga esse caminho :)

Geralmente é mais rápido escrever scripts do que programas compilados.Você não precisa se preocupar tanto com a portabilidade entre diferentes plataformas e ambientes.Um script de shell será executado em praticamente qualquer lugar na maioria das plataformas.Como você é um desenvolvedor java e mencionou que tem java em todos os lugares, você pode ver o groovy (http://groovy.codehaus.org/).É uma linguagem de script escrita em java com capacidade de usar bibliotecas java.

A meu ver (outros discordam), todo o seu código precisa ser sustentável.A menor coleção útil de código é aquela mantida por uma única pessoa.Mesmo isso se beneficia da linguagem e das ferramentas que você mencionou.

No entanto, obviamente pode haver tarefas em que linguagens especializadas sejam mais vantajosas do que uma única linguagem de propósito geral.

Se você pode escrever mais rápido em Java, vá em frente.

Apenas tente estar ciente do que as diversas linguagens de script podem fazer.

por exemplo.Não crie um aplicativo Java completo quando você pode fazer o mesmo com um bash one-liner.

Avalie a importância da ferramenta em relação à abertura de um editor de texto para uma edição rápida versus a abertura de um editor de texto para uma edição rápida versus a abertura de um editor de texto para uma edição rápida.abrindo IDE, recompilando, reimplantando, etc.

Obviamente, a diretiva principal deve ser "usar o que você estiver confortável". Se Java estiver fazendo o trabalho certo e a tempo, cumpra -o.Mas muitas linguagens de script podem economizar algum tempo porque estão sintonizadas com diferentes problemas.Se você estiver usando expressões regulares, as linguagens de script são uma boa opção.Se você estiver usando comandos shell, os scripts são legais.

Costumo usar scripts Ruby sempre que escrevo algo pequeno, porque é rápido de escrever, fácil de manter e (com Gems) fácil de adicionar funcionalidades adicionais sem a necessidade de usar JARs ou algo assim.Sua milhagem irá, é claro, variar.

No final das contas, esta é uma pergunta que só você pode responder por si mesmo.Com base no fato de que você disse "Não consigo ver uma razão pela qual eu escolheria usar scripts de shell, ...", então provavelmente você nunca deve escolhê-lo agora.

Mas se eu fosse você escolheria uma linguagem de script como python, ruby ​​ou perl e começaria a tentar resolver alguns desses pequenos problemas com essa linguagem.Com o tempo, você começará a perceber quando é mais apropriado escrever um script rápido do que construir uma solução completa.

Eu uso linguagens de script para escrever programas que não devem ser mantidos além de algumas execuções.A maioria dessas linguagens tem pouca sintaxe padronizada e possui um REPL.Ambos os recursos permitem a prototipagem rápida.

Como você já conhece Java, pode experimentar linguagens JVM como Groovy, JRuby, BeanShell etc.Scala tem uma sintaxe muito mais leve que Java, tem um REPL, é digitado estaticamente e roda na JVM - você também pode tentar.

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