Category Archives: Ruby

Come installare InstantRails

Guida alla programmazione con Ruby

In questa lezione vedremo come installare InstantRails sul nostro computer per poter essere operativi da subito nella programmazione in ambiente Ruby. InstantRails rappresenta un pacchetto autoinstallante, che contiene:

  • Ruby e RubyGems;
  • Rails;
  • Apache;
  • MySQL;
  • PhpMyAdmin.

Infine il pacchetto prevede una serie di applicazioni web dimostrative. Il pacchetto, che naturalmente è distribuito liberamente è scaricabile dal sito RubyForge che rappresenta la casa di tutti i progetti open sources realizzati con Ruby. Il sito è disponibile al seguente url:

http://instantrails.rubyforge.org/

nella pagina che si apre sarà possibile ricavare delle informazioni aggiuntive sull’intero pacchetto, scaricare la versione aggiornata del pacchetto e consultare numerose guide che ci aiuteranno nella procedura di installazione.

ruby

Una volta scaricato il pacchetto in versione compressa, sarà necessario estrarre il file eseguibile in una directory a scelta e lanciarlo (InstantRails.exe). È importante sottolineare che InstantRails non supporta cartelle il cui nome contenga degli spazi, quindi un percorso del tipo C:\Program Files\ non risulterebbe idoneo; si consiglia a tal proposito di installare il software nella cartella C:\InstantRails\.

Gli utilizzatori del OS Windows Vista dovranno preventivamente effettuare un click destro sul file e selezionare la voce esegui come amministratore per acquisire i permessi per l’installazione del software.

Alla fine della procedura di installazione verrà aperto il pannello di controllo di Rails dal quale sarà possibile verificare se il tutto è proseguito senza intoppi.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Installazione di Ruby on Rails su Windows

Guida alla programmazione con Ruby

In informatica, l’installazione è la procedura di copia sulla macchina e di configurazione di un software. Generalmente il software viene distribuito sotto forma di pacchetto di file compressi che comprende un’interfaccia che ne facilita e automatizza l’installazione (installer).

L’installazione crea delle cartelle sul disco dove sono contenuti tutti i file utilizzati per la configurazione del programma, i collegamenti per facilitarne l’esecuzione e scrive i necessari parametri di configurazione.

Sia Ruby che il framework Rails supportano il sistema operativo Windows, anzi le performance che manifestano sono a dir poco eccellenti, anche se il sistema nativo del Ruby è come sappiamo Linux. Inoltre il fatto che Rails contenga al suo interno un Web server integrato ci permette di iniziare a lavorare da subito con il framework senza avvertire la necessità di installare sistemi importanti quali Apache.

Ci sono essenzialmente due modi per installare Rails: il primo è piuttosto veloce e sfrutta la possibilità che offrono tutti gli applicativi Windows di utilizzare delle procedure di installazione automatizzate, i cosiddetti installer, attraverso i quali la fase di installazione del software si riduce da parte dell’utente alla necessità di dover cliccare, una serie di volte su dei bottoni con la scritta avanti. In questo caso la cosa risulta particolarmente vantaggiosa in quanto con un solo file si riesce ad installare tutto il software necessario per poter essere immediatamente operativi.

installare ruby

Il secondo metodo, leggermente più complesso, richiede che siano installati i componenti software separatamente; in questo modo il tempo perso per eseguire tutte le procedure, che comunque sfrutteranno gli installer, sarà compensato dalla possibilità di personalizzare l’installazione e di assumere una maggiore controllo su quello che viene aggiunto sul nostro computer.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Il software per programmare in Ruby

Guida alla programmazione con Ruby

Vediamo innanzitutto quale software dobbiamo prima procurarci e quindi installare sulla nostra macchia per poter iniziare a programmare con Ruby on Rails. I pacchetti che dovremo installare sono:

  1. l’interprete Ruby;
  2. il framework Rails;
  3. il database MySQL.

 ruby software

L’interprete Ruby consentirà la traduzione del nostro codice Ruby in un linguaggio comprensibile al nostro computer e che gli permetterà di eseguire le istruzioni in esso contenute. La versione corrente dell’inteprete Ruby è la 1.8.6 che rappresenta quella stabile ed è per questo che negli esempi che ci accompagneranno nei capitoli successivi ci riferiremo a tale versione.

Per poter realizzare poi delle applicazioni web ci serviremo del framework Rails che come già indicato è stato interamente scritto in Ruby; la versione corrente del framework è la 2.0.2 che rappresenta anche quella stabile.

Infine MySQL è un Database management system (DBMS) relazionale, composto da un client con interfaccia a caratteri e un server, entrambi disponibili sia per sistemi Unix come GNU/Linux che per Windows. Dal 1996 supporta la maggior parte della sintassi SQL e si prevede in futuro il pieno rispetto dello standard ANSI. Possiede delle interfacce per diversi linguaggi, compreso un driver ODBC, due driver Java e un driver per Mono e .NET.

Il codice di MySQL viene sviluppato fin dal 1979 dalla ditta TcX ataconsult, adesso MySQLAB, ma è solo dal 1996 che viene distribuita una versione che supporta SQL, prendendo spunto dal prodotto mSQL. Il codice di MySQL è di proprietà della omonima società, viene però distribuito con la licenza GNU GPL oltre che con una licenza commerciale.

Fino alla versione 4.0, una buona parte del codice del client era licenziato con la GNU LGPL e poteva dunque essere utilizzato per applicazioni commerciali. Dalla versione 4.1 in poi, anche il codice dei client è distribuito sotto GNU GPL. Esiste peraltro una clausola estensiva che consente l’utilizzo di MySQL con una vasta gamma di licenze libere.

In tutti e tre i casi possiamo tranquillamente scaricare il software dalla rete, in quanto la programmazione con Ruby on Rails è tutta open sources e quindi liberamente scaricabile su internet dove possiamo trovare dei siti che oltre a fornire procedure dettagliate per il download della versione corrente del software forniscono anche una soddisfacente documentazione.

Naturalmente prima di scaricare le versioni del software dovremo informarci sul tipo di macchina a nostra disposizione e sul sistema operativo su di essa installato. Ricordiamo però che Ruby è disponibile praticamente per tutti i sistemi operativi in circolazione.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Lo sviluppo del framework Rails

Guida alla programmazione con Ruby

Rails è stato sviluppato sulla base dei risultati conseguiti da piattaforme già presenti sul mercato e testate lungamente dagli sviluppatori; si può dire che Rails nasce dall’esigenza di trovare delle soluzioni ai problemi maggiormente riscontrati nell’utilizzo di tali strumenti.

In definitiva diventa una piattaforma indipendente dopo aver affrontato dei problemi reali ed ottenuto delle soluzioni pratiche.

Il legame che esiste tra Rails ed il linguaggio con il quale è stato scritto, cioè Ruby, che come abbiamo visto rappresenta un linguaggio completamente ad oggetti espressivo e potente, risulta praticamente indissolubile, motivo per cui l’utilizzo del framwork Rails con altri linguaggi non ha motivo di esistere.

Lo sviluppo di Rails è stato condotto seguendo in maniera rigida l’architettura MVC (Model-View-Controller) con questo si vuole specificare che un’applicazione web creata attraverso l’utilizzo del framework si basa essenzialmente su tre oggetti:

  • Model
  • View
  • Controller

Vediamo allora di spiegare cosa rappresentano analizzandoli nel dettaglio.

framework rails

Nelle applicazioni web costruite su questa architettura il modello (Model) si compone di classi che possono essere paragonate alle classiche tabelle caratteristi-che dei database. Tali classi derivano da un software chiamato ActiveRecord che dalle tabelle di un database permette di creare degli oggetti; tali oggetti ci consen-tono poi di manipolare i dati senza la necessità di utilizzare codice SQL.

In questo modo il software ActiveRecord rende la maggior parte delle funzioni indispensabili automatiche, e quindi il collegamento ad un database o le relazioni tra le tabelle, divengono semplici utilizzando delle dichiarazioni contenute all’interno del model-lo.

L’oggetto View rappresenta la vista con la quale i dati, acquisiti dal database, vengono presentati all’utilizzatore, nel caso di un’applicazione web sotto forma di pagine html. Attraverso Rails è possibile utilizzare gli stessi oggetti, in diverse pa-gine, come ad esempio menu, banner, costruendo dei template contenenti quindi frammenti di codice richiamati da oggetti.

L’oggetto Controller infine replica agli input forniti dall’utilizzatore, quindi manipola i dati acquisiti attraverso l’oggetto Model e li rende visibili attraverso l’oggetto View. Tale operazione è resa possibile grazie all’utilizzo del browser. Il controller deriva da un software chiamato ActionPack, attraverso il quale vengono forniti i metodi richiesti del browser.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Caratteristiche del framework Rails

Guida alla programmazione con Ruby

La filosofia sulla quale si basa Rails è rappresentata da tre concetti fondamentali:

  • Don’t Repeat Yourself (DRY);
  • Convention over configuration;
  • Agile development.

Don’t Repeat Yourself che tradotto letteralmente sta per non ripetere te stesso, vuole significare che le definizioni devono essere scritte una sola volta all’interno di un’applicazione.

Convention over configuration indica invece che se nella  programmazione vengono rispettate le convenzioni stabilite dal rails, non risultano più necessarie le configurazioni.

Infine il concetto di agile development (sviluppo agile) che ci ricorda quanto sia agevole lo sviluppo delle applicazioni web attraverso l’utilizzo del framework Rails, tutto questo grazie alla possibilità di riutilizzo del codice e della semplice predisposizione dei template, che una volta creati possono essere utilizzati quali modello per la realizzazione delle nostre pagine web.

rails frameworkRails utilizza un’approccio top-down per la realizzazione del codice permettendo di trasformare un progetto complesso in tanti piccoli frammenti di complessità minore e con la possibilità di sfruttare il lavoro di diversi sviluppatori che possono dedicarsi al singolo lavoro per poi assemblare il tutto.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Il Framework Rails

Guida alla programmazione con Ruby

Rails rappresenta un ambiente integrato per sviluppare applicazioni web, in esso sono contenuti tutti gli elementi indispensabili alla progettazione e realizzazione di siti web dinamici.

Grazie alle numerose librerie presenti nel Framework Rails, si rende facilmente gestibile la creazione di pagine web che consentano l’accesso ai dati contenuti in un database, ed allo stesso momento si rende possibile in maniera semplice ed efficace l’integrazione delle diverse tecnologie oggi a disposizione dei progettisti di applicazioni web.

Si tratta di un framework di nuova concezione progettato per rendere il lavoro del programmatore web quanto più agile possibile; i risultati ottenuti, nella comunità degli sviluppatori, sono stati tanti e tali da provocare un vero e proprio ciclone che ha spazzato via tutte le precedenti convinzioni e ha provocato accesi dibattiti in ogni parte del mondo.

rails frameworkLa comparsa del Framework Rails nel panorama web ha ispirato la nascita di progetti simili effettuati con differenti tecnologie. Si può tranquillamente affermare che Rails rappresenti la novità più rilevante comparsa negli ultimi anni nell’universo della programmazione Web.

Tutto questo è stato realizzato grazie ad algoritmi di programmazione che non presentano grandi novità rispetto a tutto ciò che altre piattaforme già avevano sperimentato.

Allora nasce naturale la domanda di quale possa essere il segreto del Framework Rails: presto detto le sue potenzialità si concretizzano nella volontà spinta agli estremi da parte degli sviluppatori di ridurre in maniera netta i tempi di sviluppo, facendo a meno di file di configurazione, ricorrendo quando possibile ad automatismi, utilizzando diffusamente i Domain Specific Language, tutto questo al fine di risparmiare del tempo prezioso da dedicare alla parte più importante di un progetto web e cioè alla stesura dei concetti di fondo.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

La programmazione ad oggetti in Ruby

Guida alla programmazione con Ruby

Abbiamo già specificato che Ruby è totalmente Object Oriented, questo si traduce nel fatto che in ruby tutto è un oggetto. In tale aspetto riesce a surclassare il linguaggio ad oggetti per eccellenza e cioè Java in quanto in ruby non esiste nessuna distinzione tra tipi base e oggetti, allo stesso tempo la programmazione orientata agli oggetti in ruby non risulta ne invasiva ne fastidiosa, e ciò è dovuto alla sua maggior purezza.

Una caratteristica particolarmente gradita dai programmatori Ruby è stata la possibilità di utilizzare i cosiddetti blocchi che rappresentano una feature non comune nei linguaggi più diffusi e che permettono di rappresentare diversi problemi, anche molto diversi tra loro, con modalità chiare e significative.

Il Ruby risulta amato, allo stesso modo, dai programmatori professionisti che ne apprezzano le caratteristiche più avanzate, e dai principianti in quanto si presenta particolarmente adatto ad essere appreso come primo linguaggio.

Infatti grazie alla sua semplicità, è possibile comprendere le nozioni di base della programmazione, senza doversi preoccupare di innumerevoli convenzioni e aspetti non strettamente legati alla realizzazione degli algoritmi numerici.

RUBYOS

Inoltre possiamo dire che Ruby si presenta efficacemente espressivo in quanto fornisce molte strutture dati e tipi builtin, che rappresentano quelli offerti dal linguaggio; esempi sono:

  • hash,
  • array dinamici,
  • regexp,
  • numeri interi di dimensione arbitraria.

Le classi in ruby presentano un’interfaccia molto dettagliata, che determina una semplicità nell’utilizzo nelle operazioni comuni.

Una caratteristica che ha determinato il successo di Ruby nel panorama mondiale della programmazione è stata la sua estrema portabilità; esistono versioni di Ruby per piattaforma Linux (suo ambiente naturale visto che in tale contesto è stato sviluppato), per sistemi operativi Unix-like, Mac OS, e Windows in tutte le sue versioni.

RUBYOS

La versatilità di Ruby si manifesta nella sua interezza ,dal momento che esiste una versione di Ruby anche per l’obsoleto sistema operativo con interfaccia orientata ai caratteri MS-DOS.

Caratteristiche del linguaggio di programmazione Ruby

Guida alla programmazione con Ruby

Le caratteristiche peculiari di Ruby lo rendono un linguaggio di programmazione soprattutto semplice, il suo utilizzo si apprende in pochi giorni, senza presentare grosse difficoltà grazie ad una sintassi snella e davvero pratica; in aggiunta presentando a corredo un numero davvero corposo di librerie incluse nella distribuzione ed integrabili con quelle installabili tramite RubyGems si rende possibile, come già anticipato  realizzare i nostri programmi in brevissimo tempo.

Ruby si presenta particolarmente dinamico, un esempio è fornito dal fatto che le variabili possono essere tranquillamente utilizzate senza la necessità di dichiararne il tipo, sarà allora l’interprete in grado di identificarle; tutto questo però senza perdere in precisione in quanto le operazioni non consentite tra tipi diversi provocheranno un errore, cioè non potrà mai accadere, in modo più o meno nascosto, che un valore di un certo tipo venga utilizzato come se fosse di tipo diverso (strong typing).

Grazie a questo un operazione del tipo 1+”2″ (somma di un numero e di una stringa) determinerà un errore di runtime (errore in fase di esecuzione), diversamente da linguaggi come php o perl che invece non permettono un controllo analogo.

In ruby è possibile manipolare le classi ed i metodi a runtime, cioè possono essere aggiunti, cancellati o modificati in fase di esecuzione. In questo modo molte delle cose che negli altri linguaggi rappresentano delle strutture complesse possono in ruby costituire dei semplici metodi; è altresì possibile aggiungere classi e metodi personalizzati, creando dei Domain Specific Language (DSL).

DLS

Un Domain Specific Language è un minilinguaggio adatto ad un problema specifico, l’ideale sarebbe avere un linguaggio per ogni scopo, ma senza il problema di doverlo ogni volta imparare da zero. D’altronde il cuore della programmazione è costruire degli strumenti che permettano di risolvere un problema, ed un linguaggio è lo strumento per eccellenza.

Ruby è perfetto per la costruzione di semplici DSL da utilizzare all’interno della propria applicazione, grazie alla sua sintassi ed alle sue funzionalità di metaprogrammazione.

Le origini del linguaggio Ruby

Guida alla programmazione con Ruby

Ruby rappresenta un linguaggio di scripting interpretato per la programmazione orientata agli oggetti, dove il termine interpretato sta a significare che un’applicazione Ruby sarà eseguita senza che la stessa necessiti preventivamente di essere compilata.

Il linguaggio Ruby è nato nel 1993 come progetto personale del giapponese Yukihiro Matsumoto (spesso chiamato semplicemente Matz), pertanto Ruby rappresenta il primo esempio di linguaggio di programmazione sviluppato completamente in oriente che è riuscito a guadagnare abbastanza popolarità in occidente.

Questo perché fino ad allora, in ragione di evidenti problemi dovuti alle differenze linguistiche che si manifestano anche e soprattutto a causa del set di caratteri totalmente diverso da quello adottato nella informatica internazionale, gli sviluppatori nipponici erano stati ghettizzati e quindi costretti ad utilizzare i prodotti che provenivano dall’altra parte del mondo per evitare di peggiorare lo stato di isolamento in cui imperversavano.

Grazie a Ruby questa tendenza è stata spinta nella direzione contraria, ed oggi possiamo affermare che numerosi progetti di rilievo in ambito internazionale siano stati scritti utilizzando la nuova piattaforma.

 Il linguaggio Ruby trae origini da linguaggi ad oggetti quali lo Smalltalk, da cui ha tratto la maggior parte delle sue caratteristiche, quindi il Lisp quale linguaggio funzionale, a cui si devono i blocchi, ed infine il Perl, da cui derivano la sintassi e l’espressività.

 lisp

Come già anticipato Ruby rappresenta un linguaggio interpretato, nel senso che per poter essere eseguito non necessita di una preventiva compilazione, come invece avviene per la maggior parte del linguaggi di programmazione, ma è sufficiente che sia presente un interprete che traduca le istanze e le trasformi in linguaggio comprensibile all’utente.

L’interprete è stato scritto in linguaggio C, rilasciato sotto doppia licenza, GPL e Ruby license, che rappresenta una sorta di licenza BSD ovvero una famiglia di licenze permissive per il software. Tutto questo per dire in parole povere che con Ruby possiamo farci tutto quello che vogliamo, anche se la cosa migliore che potremmo fare è contribuire alla crescita della piattaforma. La distribuzione di Ruby si trova attualmente alla versione 1.8.6 mentre si è in trepidante attesa per l’annunciata versione 2.0 che promette delle interessanti novità.

Il successo di Ruby è dovuto anche alla presenza di framework di successo per lo sviluppo di applicazioni web, come Nitro e Ruby On Rails che rappresentano degli ambienti integrati che permettono di realizzare interi siti con il minimo impegno offrendo una serie di librerie di codice.