Bisakah saya menggunakan Ruby untuk mengotomatiskan semuanya?

11

Saya menghadapi berbagai jenis aplikasi (berbasis web, berbasis GUI, baris perintah, dll.) Di berbagai platform (Windows, Linux, dll.) Untuk beroperasi setiap hari. Ada peluang besar bagi saya untuk mengotomatiskan tugas dengan skrip. Tetapi hampir setiap jenis aplikasi dan platform memiliki bahasa atau alat scripting asli (seperti VBScript dan PowerShell untuk Windows, skrip Bash untuk Linux, Selenium untuk aplikasi web, dan AutoIt untuk aplikasi GUI, dll.). Itu membunuh saya untuk belajar dan memelihara begitu banyak bahasa scripting.

Saya merasa Ruby dapat beroperasi dengan berbagai platform dengan mudah, dan ini sangat ekspresif. Jadi pertanyaan saya adalah:

  1. Apakah mungkin menggunakan Ruby untuk skrip semuanya?

  2. Jika ya, apa kerugian utama dibandingkan dengan bahasa skrip asli dari setiap platform?

TomCaps
sumber

Jawaban:

6

Ruby adalah pilihan yang bagus untuk bahasa skrip tujuan umum di Linux, OS X, dll. Tapi saya baru-baru ini perlu menulis beberapa skrip yang akan berfungsi pada setiap versi Windows mulai 2000 hingga 7. VBScript tidak memiliki fungsi yang saya butuhkan ( berbicara dengan layanan web SOAP misalnya) dan PowerShell tidak tersedia untuk Windows 2000, jadi saya mencari di luar toolkit Microsoft dan memutuskan untuk memberikan kesempatan kepada Ruby (setelah menggunakannya di Linux di masa lalu). Saya tidak benar-benar menyesali keputusan itu, tetapi saya bertanya-tanya apakah mungkin ada pilihan yang lebih baik. Keluhan utama saya tentang Ruby di Windows adalah:

  • Tidak ada Ruby 64-bit untuk Windows (sejauh yang saya tahu) yang membuat mencoba mengakses area tervirtualisasi dari sistem seperti c: \ windows \ system32 seret. Saya akhirnya membeli VBScript untuk beberapa hal; mungkin ada cara yang lebih baik yang tidak saya ketahui.
  • Itu lambat. Saya memiliki CPU quad-core dan 6GB RAM dan irb membutuhkan waktu 2+ detik untuk memuat.
  • Meskipun ada perpustakaan khusus Windows untuk hal-hal seperti akses registri dan WMI, hal-hal yang pasti tidak selalu semudah yang Anda pikirkan dan kurangnya dokumentasi relatif menghasilkan beberapa trial and error.

Namun, hal-hal pada dasarnya bekerja seperti yang Anda harapkan dan saya suka bekerja dengan Ruby sekitar seribu kali lebih baik daripada apa pun yang ada di dalam OS, jadi setidaknya, saya akan mengatakan Anda bisa melakukan yang lebih buruk daripada Ruby untuk skrip tujuan umum di Windows .

Martin
sumber
2

Ruby tampaknya sesuai dengan kebutuhan Anda sehubungan dengan portabilitas di seluruh platform (Windows, Linux, MAC), dan kemampuan untuk mengotomatisasi berbagai jenis aplikasi. AFAIK Anda dapat mengotomatiskan peramban dan aplikasi baris perintah menggunakan pustaka ruby ​​tapi saya tidak yakin tentang alat berbasis GUI (Beberapa platform seperti .NET memiliki ikatan Ruby yang mungkin dapat membantu dalam hal ini).

Ruby memiliki banyak perpustakaan sehingga Anda harus dapat mengotomatiskan banyak tugas yang cocok untuk skrip. Misalnya, Anda dapat memanipulasi file dalam berbagai format tekstual, mengakses jaringan, database, dan sebagainya. Namun, mungkin tidak terbaik untuk melakukan beberapa tugas di ruby ​​asli - misalnya, meng-encode video (tetapi Anda selalu dapat meminta alat lain menggunakan Ruby untuk melakukan itu).

Jika Anda membandingkannya dengan BATCH dan Shell Script, ruby ​​dapat digunakan untuk melakukan hampir semua tugas yang dapat dilakukan skrip ini. Kerugiannya bisa:

  • Anda mungkin memerlukan instalasi tambahan.
  • Orang lain mungkin perlu belajar ruby ​​untuk mempertahankan skrip Anda.
  • Jika alat memiliki ikatan dengan beberapa bahasa skrip lain, ruby ​​mungkin tidak dapat mencocokkannya dalam hal kinerja atau bahkan kemampuan untuk mengakses fungsionalitas. Misalnya, Anda mungkin tidak dapat melakukan semua yang dapat dilakukan melalui JavaScript dari dalam browser saat Anda mengotomatiskannya melalui Ruby.
Satyajit
sumber
Rukuli dapat membahas beberapa tantangan pengujian GUI yang dihadapi
ljs.dev
0

Saya setuju dengan semua jawaban di atas tetapi perlu diingat bahwa Windows dan POSIX memiliki perbedaan platform spesifik sehingga tidak dapat menjamin bahwa Anda dapat menggunakan kembali skrip Anda jika menggunakan beberapa hal spesifik platform.

Ruby baik untuk skrip umum tetapi tidak terlalu bagus untuk kinerja. Pokoknya itu memungkinkan Anda untuk mengidentifikasi platform di dalam skrip dan menjalankan perintah dan skrip eksternal.

AB
sumber
1
Anda harus tahu bahwa posisi jawaban di situs StackExchange tidak dapat diandalkan, karena jawaban dengan jumlah suara yang sama dimasukkan dalam urutan acak. Jadi Anda tidak boleh mengatakan hal-hal seperti "Saya setuju dengan semua jawaban di atas "
Adam Harte