Posso usare Ruby per automatizzare tutto?

11

Affronto vari tipi di applicazioni (basate sul Web, basate su GUI, riga di comando, ecc.) su varie piattaforme (Windows, Linux, ecc.) per funzionare ogni giorno. C'è una grande opportunità per me di automatizzare le attività tramite script. Ma quasi ogni tipo di applicazione e piattaforma ha il suo linguaggio di scripting nativo o strumenti (come VBScript e PowerShell per Windows, script di Bash per Linux, Selenium per applicazioni web e AutoIt per applicazioni GUI, ecc.) . Mi uccide per imparare e mantenere così tanti linguaggi di scripting.

Ho la sensazione che Ruby possa interagire facilmente con varie piattaforme, ed è molto espressivo. Quindi la mia domanda è:

  1. È possibile usare Ruby per scrivere tutto?

  2. Se lo è, quali sono i principali svantaggi rispetto al linguaggio di scripting nativo di ciascuna piattaforma?

posta TomCaps 17.12.2011 - 03:32
fonte

3 risposte

5

Ruby è una buona scelta per un linguaggio di scripting generico su Linux, OS X, ecc. Ma di recente ho dovuto scrivere degli script che funzionassero su ogni versione di Windows dal 2000 al 7. VBScript non aveva la funzionalità Avevo bisogno (parlando con i servizi web SOAP per esempio) e PowerShell non è disponibile per Windows 2000, quindi ho guardato fuori dal toolkit di Microsoft e ho deciso di dare una possibilità a Ruby (averlo usato su Linux in passato). Non rimpiango esattamente la decisione, ma mi chiedo se potrebbe esserci stata una scelta migliore. Le mie principali lamentele su Ruby su Windows sono state:

  • Non c'è Ruby a 64 bit per Windows (per quanto ne so) che ha reso difficile accedere ad aree virtualizzate del sistema come c: \ windows \ system32. Ho finito col bombardare con VBScript per alcune di quelle cose; forse c'è un modo migliore che non ho capito.
  • È lento. Ho una CPU quad-core e 6 GB di RAM e irb richiede 2+ secondi per caricare.
  • Anche se ci sono librerie specifiche di Windows per cose come l'accesso al registro e WMI, le cose non sono sempre così facili come pensi che potrebbero essere e la relativa mancanza di documentazione porta ad alcuni tentativi ed errori.

Tuttavia, le cose funzionano sostanzialmente come ti aspetteresti e mi piace lavorare con Ruby circa mille volte meglio di qualsiasi cosa integrata nel sistema operativo, quindi, come minimo, direi che potresti fare di peggio di Ruby per scopi generali scripting su Windows.

    
risposta data 17.12.2011 - 04:48
fonte
2

Ruby sembra adattarsi alle tue esigenze in termini di portabilità tra piattaforme (Windows, Linux, MAC) e capacità di automatizzare diversi tipi di applicazioni. AFAIK è possibile automatizzare i browser e le applicazioni da linea di comando utilizzando le ruby library ma non sono sicuro degli strumenti basati su GUI (alcune piattaforme come .NET hanno binding Ruby che potrebbero essere utili a tale riguardo).

Ruby ha un gran numero di librerie quindi dovresti essere in grado di automatizzare molte attività adatte allo scripting. Ad esempio, è possibile manipolare i file in diversi formati testuali, accedere alla rete, al database e così via. Tuttavia, potrebbe non essere il caso di svolgere alcune attività nel ruby nativo, ad esempio codificare video (ma puoi sempre richiamare altri strumenti usando Ruby per farlo).

Se lo si confronta con BATCH e Shell Scripts, ruby può essere utilizzato per eseguire quasi tutte le attività che questi script possono eseguire. Lo svantaggio potrebbe essere:

  • Potrebbe essere necessaria un'ulteriore installazione.
  • Gli altri potrebbero aver bisogno di imparare ruby per mantenere i tuoi script.
  • Se uno strumento ha un legame con un altro linguaggio di scripting, ruby potrebbe non essere in grado di eguagliarlo in termini di prestazioni o persino di capacità di accedere alla funzionalità. Ad esempio, potresti non essere in grado di fare tutto ciò che può essere fatto tramite JavaScript da un browser quando lo stai automatizzando tramite Ruby.
risposta data 17.12.2011 - 09:03
fonte
0

Sono d'accordo con tutte le risposte precedenti, ma tieni presente che Windows e POSIX hanno differenze specifiche della piattaforma, quindi non potrebbe garantire che tu possa riutilizzare lo script se utilizza alcune cose specifiche della piattaforma.

Ruby va bene per lo scripting generale ma non è davvero eccezionale per le prestazioni. In ogni caso ti permette di identificare la piattaforma all'interno dello script ed eseguire comandi e script esterni.

    
risposta data 26.12.2011 - 23:52
fonte

Leggi altre domande sui tag