Todos temos tarefas que, de tempos em tempos, pensamos que seria melhor criar scripts ou automatizar do que executar manualmente.
Obviamente, algumas ferramentas ou linguagens são melhores para isso do que outras - ninguém (em sã consciência) está fazendo um trabalho único de fazer referência cruzada a um monte de listas de texto que seu PM acabou de lhes dar no assembler, por exemplo.
Que ferramenta ou idioma você recomendaria para o tipo de trabalhos rápidos e sujos em geral que você é solicitado a fazer onde o tempo (e não a elegância) é essencial?
Antecedentes: Sou um ex-programador, agora gerente de desenvolvimento PM, procurando aprender um novo idioma por diversão. Se vou aprender algo divertido, gostaria que fosse útil e esse tipo de caso de uso é o mais provável.
fonte
Respostas:
Pitão
A resposta óbvia (e por boas razões) é Python. É uma linguagem sólida, disponível em várias plataformas. Como sua dinâmica, você pode executá-lo de maneira interativa, o que é ótimo para juntar coisas e possui uma seleção bastante grande de bibliotecas; portanto, é uma linguagem de uso geral que pode ser aplicada à maioria dos problemas.
fonte
Autoit é imbatível. É uma ferramenta com uma linguagem.
fonte
AutoHotKey
O AutoHotkey é um utilitário gratuito de código aberto para Windows. Com ele, você pode:
http://ahkscript.org/
Economizei uma grande quantia de dinheiro para várias empresas usando essa ferramenta.
fonte
Perl
Perl é praticamente minha definição de rápido e sujo.
Perl é infinitamente flexível, o que é uma força e uma fraqueza. Não força a estrutura em você, mas está lá se você quiser. Tem bibliotecas para tudo. É usado extensivamente há 20 anos; há toneladas de código por aí para trabalhar.
fonte
$=
; $ _ = \% !; $ _) = / (.) /; $ == ++ $ |; ($., $ /, $ ,, $ \, $ ", $;, $ ^, $ #, $ #, $ ~, $ *, $ :, @%) = ($! = ~ / (.) (.). (.) (.) (.) (.) .. (.) (.) (.) .. (.) ... ....) /, $ "), $ = ++; $. ++; $. ++; $ _ ++; $ _ ++; ($ _, $ \, $,) = ($ ~ . $ "." $; $ / $% [$?] $ _ $ \ $, $: $% [$?] ", $" & $ ~, $ #,); $, ++; $, + +; $ ^ | = $ ";$_$\$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$\$"$^$~$*.>&$=
(esse é o Perl real - reconhecidamente intencionalmente ruim do Perl - para aqueles que não o leem).Powershell
Isso é menos genérico que o Python - mas se você existe em um ambiente Windows, é provável que seja mais útil.
É mais shell / script do que Python (porque é isso que é), mas pode se conectar ao framework .NET, o que oferece uma profundidade de capacidade bastante extraordinária. Também possui amplo apoio da comunidade.
Microsoft tem estado ocupado acrescentando PowerShell para seus produtos de servidor (daí o "mais útil") e introduziram comunicação remota para permitir que você executar scripts lá do seu console aqui .
fonte
Um shell unix moderno. Por exemplo, festança.
fonte
elisp, se você viu a riqueza de tarefas que são usadas para realizar por meio da plataforma subjacente Emacs. O Emacs pode evitar toda a funcionalidade de um gerenciador de janelas completo, IDE, Office, navegador, cliente de email, cliente de bate-papo, shell, explorador de sistema de arquivos e muito mais. A maior parte é realizada através de programas elisp.
fonte
Para algumas tarefas, as ações podem ser uma boa opção.
Ele possui um tipo de processo de fluxograma, no qual você pode adicionar
actions
para execução sequencial. Novoactions
pode ser escrito em java.Isenção de responsabilidade: ainda não o usei.
fonte
Para automação complexa, convém usar o Robot Framework . A estrutura é voltada principalmente para testes automatizados, mas também pode ser usada para automação geral.
Você pode escrever facilmente suas próprias bibliotecas em Python e existem várias bibliotecas pré-existentes (selênio, AutoIt , telnet, ssh, swing, etc.) que permitem conduzir todo tipo de coisa que é muito poderosa se você estiver em um ambiente misto.
Ele é orientado por palavras-chave, para que você possa criar novas palavras-chave e, portanto, abstrair tarefas repetitivas e ainda ter um IDE que está sendo desenvolvido ativamente, permitindo algumas refatorações simples.
fonte
Eu tenho trabalhado em reunir algumas rotinas do Common Lisp para ajudar com scripts, mas não é tão facilmente nativo a essa tarefa quanto o Perl.
fonte
Para o Windows, eu recomendo o AutoIt (http://autoitscript.com). Certifique-se de instalar o pacote Scite na seção de downloads.
http://autoitscript.com/forum é um ótimo recurso para obter ajuda e encontrar a função da UDF para incluir nos scripts.
O AutoIt é capaz de controlar as janelas e os controles do aplicativo, permitindo automatizar praticamente qualquer coisa. Também não requer dependências após a compilação do executável.
fonte
Eu tive o mesmo problema de usar vários idiomas para diferentes conjuntos de automação. Sou consultor sênior de uma empresa de serviços de TI na Índia. Toda vez que eu consulte um
Para o propósito, tive dificuldade em justificá-lo para a gerência . Eu até discuti com meus amigos (como conversa casual) sobre o desenvolvimento de uma linguagem unificada que atenda a todas as necessidades de automação e ainda entre plataformas. Se um estiver disponível, poderá
mudar o mundo dos scripts. Até onde eu sei, o mapeamento que costumamos usar vai
Idiomas e domínio de uso
AutoIT - Automação de GUI baseada em Windows Bash - A automação baseada em Unix envolve principalmente a interação do sistema Perl - Automação de processamento de dados com menos interação do sistema Expect - Requisitos interativos baseados em caracteres. (que não pode ser resolvido pelo Perl, Bash) VBS - script baseado em Windows
Qualquer automação sempre acompanha uma ou mais chamadas remotas para recuperação de informações ou publicação de resultados. Aqui estão as diferentes listas de endereços dos principais sistemas operacionais.
Chamada de script remoto (ferramentas)
Windows -> Windows
psexec, Powershell
Windows -> Unix
plink, Quest Plink -> Servidor SSH
Unix -> Unix
Cliente SSH -> Servidor SSH
Unix -> Windows
winexe, wmic -> agente WMI check_nrpe -> agente NRPE_NT
Na lista acima, você pode facilmente entender que nenhum idioma pode substituir outro no conjunto de recursos. Temos que conviver com eles até termos um SO universal e um padrão universal de protocolos de comunicação e APIs.
fonte
O Python é ótimo para isso e tem uma base de instalação maior, e o Ruby não é melhor, exceto pelo Guia Poignant do Ruby do Why . Sério, raposas dos desenhos animados.
fonte