Walter M. Mulas 1 Ruby è un linguaggio di scripting completamente a oggetti. Nato nel 1993 come progetto personale del giapponese Yukihiro Matsumoto (spesso chiamato semplicemente Matz), Ruby è stato il primo linguaggio di programmazione sviluppato in Oriente a guadagnare abbastanza popolarità da superare la barriera linguistica che separa l'informatica nipponica da quella internazionale e ad essere usato anche in Occidente in progetti di rilievo. Il linguaggio che ha maggiormente ispirato l'autore è lo Smalltalk, da cui Ruby ha tratto la maggior parte delle sue caratteristiche. A seguire ci sono il Lisp (ed in generale i linguaggi funzionali), da cui provengono le chiusure (blocchi o processi, in Ruby), e il Perl, per la sintassi e l'espressività. Nell'implementazione corrente, Ruby è un linguaggio interpretato. L'interprete, scritto in C, è rilasciato con una doppia licenza, GPL oppure "Licenza Ruby", in stile BSD, e si trova attualmente alla versione 1.9.2. Negli ultimi anni la popolarità di Ruby ha subito una forte impennata, dovuta alla comparsa di framework di successo per lo sviluppo di applicazioni web, come Nitro e Ruby On Rails, nonché del Metasploit Framework, ambiente per la creazione e l’esecuzione facilitata di exploit. Fonte: Wikipedia Walter M. Mulas 2 Ruby, pur essendo principalmente un linguaggio ad oggetti, presenta alcune caratteristiche tipiche dei paradigmi imperativo e funzionale. Il paradigma ad oggetti di Ruby è puro, come quello di Smalltalk, ossia ogni componente del linguaggio, dalle costanti numeriche alle classi, è un oggetto, e come tale può possedere metodi; a differenza dei linguaggi come C++ e derivati, tuttavia, gli oggetti in Ruby sono qualcosa di molto più dinamico, in quanto è possibile aggiungere o modificare metodi a run-time. Il tipo di un oggetto, perciò, non è definito tanto dalla classe che lo ha istanziato, quanto dall'insieme dei metodi che possiede, o, secondo la terminologia abitualmente utilizzata per i linguaggi stile Smalltalk, dei messaggi a cui sa rispondere. In Ruby, dunque, è fondamentale il duck typing (dall'inglese if it looks like a duck, and quacks like a duck, it must be a duck), ovvero il principio secondo il quale il comportamento di una funzione sui suoi argomenti non deve essere determinato dal tipo di questi (come accade in C++ e altri linguaggi staticamente tipizzati), bensì da quali messaggi essi sono in grado di gestire. Un'altra caratteristica fondamentale di Ruby è costituita dai cosiddetti blocchi, che sono sostanzialmente delle chiusure (ovvero funzioni dotate di ambiente), e che consentono di sostituire i cicli espliciti, frequenti nei linguaggi a basso livello, con l'utilizzo di iteratori, nascondendo così al chiamante i meccanismi interni del ciclo in questione. Fonte: Wikipedia Walter M. Mulas 3 In queste diapositive illustrerò il primo programma con il linguaggio di programmazione Ruby. In particolare, osserveremo come si inseriscono i dati nel programma dalla tastiera e visualizzeremo sullo schermo un messaggio di benvenuto. Walter M. Mulas 4 Apriamo il Netbeans (preferibilmente la versione 6.5 Beta) dal nostro desktop e creiamo il nostro file*, chiamandolo “NomeCognome.rb” (potete pure scriverlo completamente in minuscolo, ma per convenzione si rinomina il file come mostrato in questa diapositiva). * Dovete assicurarvi di avere prima creato un progetto dove salverete i vostri file, altrimenti i vostri file non saranno eseguiti o compilati duranti l’esecuzione. Se non avete ancora creato un progetto, FATELO IMMEDIATAMENTE! Walter M. Mulas 5 Walter M. Mulas 6 Il programma prevede l’operazione di input e di output. In poche parole, dovremo inserire il nostro nome e cognome e visualizzeremo un messaggio di benvenuto (col nostro nome e cognome, ovviamente!). I comandi principali di input e di output sono: gets restituisce al programma una variabile dichiarata il cui valore è inserito dalla tastiera. puts stampa il valore compreso tra le virgolette (“ ”) o apici (‘ ‘). Esiste anche il comando print, ma che a differenza del comando puts non emette il carattere di fine linea. Walter M. Mulas 7 Walter M. Mulas 8 Walter M. Mulas 9 Walter M. Mulas 10 Durante l’esecuzione del programma, si è aperta, in basso, la finestra di “Output”. I valori “Walter” e “Mulas” sono stati inseriti dalla tastiera in quel riquadro, attivando così il comando di inserimento gets. Successivamente, con il comando puts i due valori vengono visualizzati nell’ultimo messaggio. Walter M. Mulas 11 Queste diapositive sono un tutorial per chi affronta per la prima volta un linguaggio di programmazione. E penso che possa essere di buon aiuto per chi ha come “incognite” l’informatica e la programmazione. In bocca al lupo ragazzi!!! Walter M. Mulas 12 Se non riuscite a visualizzare le immagini in modo nitido, ho postato i link per visualizzare le immagini e scaricarle (con il numero della diapositiva corrispondente). Inizio (6) Codifica (8) Preparazione all'esecuzione (9) Output del programma (10) Walter M. Mulas 13