Kann ich Ruby verwenden, um alles zu automatisieren?

11

Ich bin mit verschiedenen Arten von Anwendungen (webbasiert, GUI-basiert, Befehlszeile usw.) auf verschiedenen Plattformen (Windows, Linux usw.) konfrontiert, um jeden Tag zu arbeiten. Ich habe die großartige Möglichkeit, Aufgaben durch Skripterstellung zu automatisieren. Fast jede Art von Anwendung und Plattform verfügt jedoch über eine native Skriptsprache oder Tools (z. B. VBScript und PowerShell für Windows, Bash-Skripte für Linux, Selenium für Webanwendungen und AutoIt für GUI-Anwendungen usw.). Es bringt mich um, so viele Skriptsprachen zu lernen und zu pflegen.

Ich habe das Gefühl, dass Ruby problemlos mit verschiedenen Plattformen zusammenarbeiten kann, und es ist sehr ausdrucksstark. Meine Frage lautet also:

  1. Ist es möglich, Ruby zu verwenden, um alles zu skripten?

  2. Wenn ja, was sind die Hauptnachteile gegenüber der nativen Skriptsprache jeder Plattform?

TomCaps
quelle

Antworten:

6

Ruby ist eine gute Wahl für eine allgemeine Skriptsprache unter Linux, OS X usw. Vor kurzem musste ich jedoch einige Skripte schreiben, die auf jeder Windows-Version von 2000 bis 7 funktionieren. VBScript verfügte nicht über die von mir benötigten Funktionen ( Wenn ich zum Beispiel mit SOAP-Webdiensten spreche) und PowerShell für Windows 2000 nicht verfügbar ist, habe ich mich außerhalb des Microsoft-Toolkits umgesehen und beschlossen, Ruby eine Chance zu geben (nachdem ich es in der Vergangenheit unter Linux verwendet hatte). Ich bereue die Entscheidung nicht gerade, aber ich frage mich, ob es vielleicht eine bessere Wahl gegeben hat. Meine Hauptbeschwerden über Ruby unter Windows waren:

  • Soweit ich weiß, gibt es kein 64-Bit-Ruby für Windows, das den Versuch, auf virtualisierte Bereiche des Systems wie c: \ windows \ system32 zuzugreifen, zu einem Problem gemacht hat. Am Ende habe ich mich wegen einiger dieser Dinge an VBScript gewandt. Vielleicht gibt es einen besseren Weg, den ich nicht herausgefunden habe.
  • Es ist langsam. Ich habe eine Quad-Core-CPU und 6 GB RAM und das Laden von irb dauert 2+ Sekunden.
  • Zwar gibt es Windows-spezifische Bibliotheken für Dinge wie Registrierungszugriff und WMI, aber die Dinge sind definitiv nicht immer so einfach, wie Sie denken, und der relative Mangel an Dokumentation führt zu einigen Versuchen und Irrtümern.

Trotzdem funktionieren die Dinge im Grunde so, wie Sie es erwarten würden, und ich mag es, mit Ruby ungefähr tausendmal besser zu arbeiten als mit allem, was in das Betriebssystem integriert ist. Zumindest würde ich sagen, dass Sie für allgemeine Skripte unter Windows schlechter abschneiden könnten als Ruby .

Martin
quelle
2

Ruby scheint Ihren Anforderungen hinsichtlich der Portabilität zwischen Plattformen (Windows, Linux, MAC) und der Fähigkeit zur Automatisierung verschiedener Arten von Anwendungen zu entsprechen. AFAIK Sie können Browser und Befehlszeilen-Apps mithilfe von Ruby-Bibliotheken automatisieren, aber ich bin mir bei GUI-basierten Tools nicht sicher (Einige Plattformen wie .NET verfügen über Ruby-Bindungen, die in dieser Hinsicht hilfreich sein können).

Ruby verfügt über eine große Anzahl von Bibliotheken, sodass Sie in der Lage sein sollten, viele Aufgaben zu automatisieren, die für die Skripterstellung geeignet sind. Sie können beispielsweise Dateien in verschiedenen Textformaten bearbeiten, auf das Netzwerk, die Datenbank usw. zugreifen. Es ist jedoch möglicherweise nicht am besten, einige Aufgaben in nativem Ruby auszuführen - beispielsweise das Codieren von Videos (Sie können jedoch jederzeit andere Tools mit Ruby aufrufen, um dies zu tun).

Wenn Sie es mit BATCH- und Shell-Skripten vergleichen, kann Ruby verwendet werden, um fast alle Aufgaben auszuführen, die diese Skripte ausführen können. Der Nachteil könnte sein:

  • Möglicherweise benötigen Sie eine zusätzliche Installation.
  • Andere müssen möglicherweise Ruby lernen, um Ihre Skripte zu pflegen.
  • Wenn ein Tool mit einer anderen Skriptsprache verbunden ist, kann Ruby dies möglicherweise nicht in Bezug auf Leistung oder sogar Zugriff auf die Funktionalität erreichen. Beispielsweise können Sie möglicherweise nicht alles, was über JavaScript möglich ist, in einem Browser ausführen, wenn Sie es über Ruby automatisieren.
Satyajit
quelle
Rukuli kann einige der GUI- Testherausforderungen abdecken, die konfrontiert sind
ljs.dev
0

Ich bin mit allen obigen Antworten einverstanden, denke jedoch daran, dass Windows und POSIX plattformspezifische Unterschiede aufweisen, sodass nicht garantiert werden kann, dass Sie Ihr Skript wiederverwenden können, wenn plattformspezifische Elemente verwendet werden.

Ruby eignet sich gut für allgemeine Skripte, ist aber für die Leistung nicht besonders gut. Auf jeden Fall können Sie die Plattform innerhalb des Skripts identifizieren und externe Befehle und Skripte ausführen.

AB
quelle
1
Sie sollten wissen, dass Sie sich nicht auf die Position der Antworten auf StackExchange-Websites verlassen können, da Antworten mit der gleichen Anzahl von Stimmen in zufälliger Reihenfolge angeordnet werden. Sie sollten also nicht Dinge wie "Ich stimme allen obigen Antworten zu " sagen
Adam Harte