Nous avons tous des tâches qui arrivent de temps en temps et que nous pensons qu'il serait préférable de faire un script ou une automatisation que de le faire manuellement.
De toute évidence, certains outils ou langages sont meilleurs pour cela que d'autres - personne (dans leur bon sens) ne fait un travail ponctuel de recoupement d'un tas de listes de textes que leur PM vient de leur donner en assembleur par exemple.
Quel outil ou langage recommanderiez-vous pour le genre de travaux rapides et sales que l'on vous demande de faire là où le temps (plutôt que l'élégance) est essentiel?
Contexte: Je suis un ancien programmeur, maintenant responsable du développement PM, cherchant à apprendre une nouvelle langue pour le plaisir. Si je vais apprendre quelque chose pour le plaisir, je voudrais que ce soit utile et ce type de cas d'utilisation est le plus susceptible de se présenter.
la source
Réponses:
Python
La réponse évidente (et pour cause) est Python. C'est un langage solide, multiplateforme disponible. En tant que dynamique, vous pouvez l'exécuter de manière interactive, ce qui est idéal pour lier des choses ensemble et il a une sélection assez large de bibliothèques, donc c'est un langage à usage général qui peut être appliqué à la plupart des problèmes.
la source
Autoit est imbattable. C'est un outil avec une langue.
la source
AutoHotKey
AutoHotkey est un utilitaire open source gratuit pour Windows. Avec lui, vous pouvez:
http://ahkscript.org/
J'ai économisé à plusieurs entreprises une grosse somme d'argent en utilisant cet outil.
la source
Perl
Perl est à peu près ma définition de rapide et sale.
Perl est infiniment flexible, ce qui est une force et une faiblesse. Cela ne vous impose pas de structure, mais il est là si vous le souhaitez. Il a des bibliothèques pour tout. Il est largement utilisé depuis 20 ans; il y a des tonnes de code pour travailler avec.
la source
$=
; $ _ = \% !; $ _) = / (.) /; $ == ++ $ |; ($., $ /, $ ,, $ \, $ ", $;, $ ^, $ #, $ ~, $ *, $ :, @%) = ($! = ~ / (.) (.). (.) (.) (.) (.) .. (.) (.) (.) .. (.) ... ....) /, $ "), $ = ++; $. ++; $. ++; $ _ ++; $ _ ++; ($ _, $ \, $,) = ($ ~ . $ "." $; $ / $% [$?] $ _ $ \ $, $: $% [$?] ", $" & $ ~, $ #,); $, ++; $, + +; $ ^ | = $ ";$_$\$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$\$"$^$~$*.>&$=
(c'est du vrai Perl - certes volontairement mauvais Perl - pour ceux qui ne le lisent pas).Powershell
C'est moins générique que Python - mais si vous existez dans un environnement Windows, c'est probablement que ça va être plus utile.
Son plus shell / script que Python (parce que c'est ce que c'est) mais il peut s'accrocher au framework .NET qui vous donne une profondeur de capacité assez extraordinaire. Il bénéficie également d'un large soutien communautaire.
Microsoft ont été occupés ajouter powershell à leurs produits serveur ( d' où le « plus utile ») et ont introduit Remoting pour vous permettre d'exécuter des scripts il de votre console ici .
la source
Un shell Unix moderne. Par exemple bash.
la source
elisp, si vous avez vu la richesse des tâches qu'il est utilisé pour accomplir à travers sa plateforme sous-jacente Emacs. Emacs peut éviter toutes les fonctionnalités d'un gestionnaire de fenêtres complet, IDE, Office, navigateur, client de messagerie, client de chat, shell, explorateur de système de fichiers, etc. La majeure partie est accomplie par le biais de programmes elisp.
la source
Pour certaines tâches, les actions peuvent convenir.
Il a une sorte de processus d'organigramme, où vous pouvez ajouter
actions
pour être exécuté séquentiellement. Nouveauactions
peut être écrit en java.Avertissement: je ne l'ai pas encore utilisé.
la source
Pour une automatisation complexe, vous pouvez utiliser Robot Framework . Le cadre est principalement destiné aux tests automatisés mais peut également être utilisé pour l'automatisation générale.
Vous pouvez facilement écrire vos propres bibliothèques en Python et il existe un certain nombre de bibliothèques préexistantes (sélénium, AutoIt , telnet, ssh, swing, etc.) qui vous permettent de piloter toutes sortes de choses, ce qui est très puissant si vous êtes dans un environnement mixte.
Il est motivé par des mots clés afin que vous puissiez créer de nouveaux mots clés et donc éliminer les tâches répétitives et a même un IDE en cours de développement actif qui permet des refactorings simples.
la source
J'ai travaillé sur la compilation de quelques routines Common Lisp pour aider à l'écriture de scripts, mais ce n'est pas aussi facilement natif pour cette tâche que Perl.
la source
Pour Windows, je recommande fortement AutoIt (http://autoitscript.com). Assurez-vous d'installer le package Scite à partir de la section téléchargements.
http://autoitscript.com/forum est une excellente ressource pour obtenir de l'aide et trouver la fonction d'UDF à inclure dans les scripts.
AutoIt est capable de contrôler les fenêtres et les contrôles des applications, vous permettant d'automatiser à peu près n'importe quoi. Il ne nécessite également aucune dépendance après avoir compilé votre exécutable.
la source
J'ai eu le même problème d'utilisation de plusieurs langues pour différents ensembles d'automatisation. Je suis consultant senior pour une société de services informatiques en Inde. Chaque fois que je consulte un autre
langue à cet effet, j'ai eu du mal à le justifier auprès de la direction . J'ai même discuté avec mes amis (dans le cadre d'une conversation informelle) du développement d'un langage unifié qui répond à tous les besoins d'automatisation et toujours multiplateforme. Si un est disponible, il peut
changer le monde du script. Pour autant que je sache, la cartographie que nous utilisons habituellement va
Langues et domaine d'utilisation
AutoIT - Automatisation de l'interface graphique basée sur Windows Bash - L'automatisation basée sur Unix implique principalement une interaction système Perl - Automatisation du traitement des données avec moins d'interaction système Attendez-vous - Exigences interactives basées sur les caractères. (qui ne peut pas être résolu par Perl, Bash) VBS - Script basé sur Windows
Toute automatisation accompagne toujours une ou plusieurs invocations à distance pour la récupération d'informations ou la publication de résultats. Voici la liste des différents OS principaux.
Appel de script à distance (outils)
Windows -> Windows
psexec, Powershell
Windows -> Unix
plink, Quest Plink -> Serveur SSH
Unix -> Unix
Client SSH -> Serveur SSH
Unix -> Windows
winexe, wmic -> Agent WMI check_nrpe -> Agent NRPE_NT
Dans la liste ci-dessus, vous pouvez facilement constater qu'aucune langue ne peut remplacer une autre dans l'ensemble de fonctionnalités. Nous devons vivre avec ceux-ci jusqu'à ce que nous ayons un système d'exploitation universel et une norme universelle de protocoles de communication et d'API.
la source
Python est idéal pour cela et possède une base d'installation plus grande, et Ruby n'est pas mieux, sauf qu'il a Why's Poignant Guide to Ruby . Sérieusement, les renards de dessins animés.
la source