Czy mogę używać Ruby do automatyzacji wszystkiego?

11

Mam do czynienia z różnego rodzaju aplikacjami (internetowymi, GUI, wierszem poleceń itp.) Na różnych platformach (Windows, Linux itp.) Do codziennego działania. Mam świetną okazję do zautomatyzowania zadań za pomocą skryptów. Ale prawie każdy typ aplikacji i platformy ma swój natywny język skryptowy lub narzędzia (takie jak VBScript i PowerShell dla Windows, skrypty Bash dla Linux, Selenium dla aplikacji internetowych i AutoIt dla aplikacji GUI itp.). Zabija mnie nauka i obsługa tak wielu języków skryptowych.

Mam wrażenie, że Ruby może łatwo współpracować z różnymi platformami i jest bardzo ekspresyjna. Więc moje pytanie brzmi:

  1. Czy można używać Ruby do pisania skryptów?

  2. Jeśli tak, jakie są główne wady w porównaniu z rodzimym językiem skryptowym każdej platformy?

TomCaps
źródło

Odpowiedzi:

6

Ruby jest dobrym wyborem dla ogólnego języka skryptowego w Linux, OS X itp. Ale ostatnio musiałem napisać kilka skryptów, które działałyby na każdej wersji systemu Windows od 2000 do 7. VBScript nie miał potrzebnej funkcjonalności ( na przykład w rozmowach z usługami SOAP) i PowerShell nie jest dostępny dla systemu Windows 2000, więc spojrzałem poza zestaw narzędzi Microsoft i postanowiłem dać szansę Ruby (korzystałem z niej w Linuksie w przeszłości). Nie żałuję tej decyzji, ale zastanawiam się, czy nie byłby lepszy wybór. Moje główne skargi dotyczące Ruby w systemie Windows to:

  • Nie ma 64-bitowego Ruby dla Windows (o ile wiem), który spowodowałby próbę uzyskania dostępu do zwirtualizowanych obszarów systemu, takich jak c: \ windows \ system32. Skończyło się na tym, że poszedłem na VBScript dla niektórych z tych rzeczy; może jest lepszy sposób, którego nie wymyśliłem.
  • Jest wolny Mam czterordzeniowy procesor i 6 GB pamięci RAM, a ładowanie obrazu zajmuje ponad 2 sekundy.
  • Chociaż istnieją biblioteki specyficzne dla systemu Windows, takie jak dostęp do rejestru i WMI, rzeczy na pewno nie zawsze są tak łatwe, jak myślisz, że mogą być, a względny brak dokumentacji powoduje pewne próby i błędy.

Mimo wszystko rzeczy działają w sposób zgodny z oczekiwaniami i lubię pracować z Ruby około tysiąc razy lepiej niż cokolwiek wbudowanego w system operacyjny, więc przynajmniej powiedziałbym, że możesz zrobić gorzej niż Ruby w przypadku skryptów ogólnego przeznaczenia w systemie Windows .

Jaskółka oknówka
źródło
2

Wydaje się, że Ruby spełnia twoje wymagania w zakresie przenośności na różnych platformach (Windows, Linux, MAC) i zdolności do automatyzacji różnego rodzaju aplikacji. AFAIK możesz zautomatyzować przeglądarki i aplikacje wiersza poleceń za pomocą bibliotek ruby, ale nie jestem pewien co do narzędzi opartych na GUI (niektóre platformy, takie jak .NET, mają powiązania Ruby, które mogą być pomocne w tym zakresie).

Ruby ma dużą liczbę bibliotek, więc powinieneś być w stanie zautomatyzować wiele zadań odpowiednich dla skryptów. Na przykład możesz manipulować plikami w różnych formatach tekstowych, uzyskiwać dostęp do sieci, bazy danych i tak dalej. Jednak może nie być najlepszym wykonywanie niektórych zadań w natywnym języku Ruby - na przykład kodowanie filmów wideo (ale zawsze można wywoływać inne narzędzia korzystające z tego języka).

Jeśli porównujesz go z BATCH i Shell Scripts, ruby ​​może być użyty do wykonania prawie wszystkich zadań, które mogą wykonywać te skrypty. Wadą może być:

  • Może być wymagana dodatkowa instalacja.
  • Inni mogą potrzebować nauczyć się ruby, aby zachować twoje skrypty.
  • Jeśli narzędzie ma powiązanie z innym językiem skryptowym, Ruby może nie być w stanie go dopasować pod względem wydajności, a nawet możliwości uzyskania dostępu do funkcji. Na przykład możesz nie być w stanie zrobić wszystkiego, co można zrobić za pomocą JavaScript z poziomu przeglądarki podczas automatyzacji za pomocą Ruby.
Satyajit
źródło
Rukuli może poradzić sobie z niektórymi wyzwaniami związanymi z testowaniem GUI
ljs.dev,
0

Zgadzam się ze wszystkimi powyższymi odpowiedziami, ale pamiętaj, że Windows i POSIX różnią się w zależności od platformy, więc nie może zagwarantować, że możesz ponownie użyć skryptu, jeśli używa on pewnych rzeczy specyficznych dla platformy.

Ruby nadaje się do ogólnego pisania skryptów, ale nie jest świetny do wydajności. W każdym razie pozwala to zidentyfikować platformę wewnątrz skryptu i wykonać zewnętrzne polecenia i skrypty.

AB
źródło
1
Powinieneś wiedzieć, że nie można polegać na pozycji odpowiedzi w witrynach StackExchange, ponieważ odpowiedzi o tej samej liczbie głosów są uporządkowane losowo. Nie powinieneś więc mówić takich rzeczy, jak: „Zgadzam się ze wszystkimi odpowiedziami powyżej
Adam Harte,