Intervista a Yukihiro Matsumoto (Matz), autore del linguaggio Ruby

Intervista di quasi sedici anni fa a Matz, ideatore ed autore di Ruby.

J. Khaldi: Che cosa è Ruby e a chi potrebbe servire?
Matz: Ruby è un linguaggio object oriented adatto Matz

E' un linguaggio interamente object oriented, e questo significa che qualsiasi cosa nel linguaggio è un oggetto di una classe. Ruby è stato realizzato per rendere la programmazione piacevole; perciò, consiglio Ruby a chi piace la programmazione.

ù J. Khaldi: La prima versione di Ruby fu scritta nel 1993, ed eri ispirato da Perl. Ora, che cosa ha Ruby di più di Perl?
Matz: Prima di tutto, Ruby ha una sintassi, relativamente più semplice e più chiara di quella di Perl. Questo non significa comunque che si tratta del più semplice dei linguaggi.
Secondo, in Ruby, ci sono tutte le funzionalità di Perl, ed altre ancora, e sono state inserite in una libreria di classi, che credo sia più consistente di quella di Perl.
Terzo, lo "scope" di una variabile viene subito individuato essendo parte del nome della stessa. Non è necessario cercare nella parte dichiarativa delle variabili per scoprirlo.

J. Khaldi:E meno?
Matz: Riguardante l'interprete, Ruby presenta tutte le funzionalità basilari di Perl, tranne il format/write. In più, la comunità degli utenti Ruby è più piccola di quella di Perl e manca ancora qualcosa simile a CPAN. Spero che in futuro tutto verrà risolto.

J. Khaldi: Oggi, Ruby è usato da migliaia di sviluppatori in tutto il mondo e il loro numero cresce quotidianamente. In Giappone, il tuo paese, il numero degli utenti Ruby è già superiore a quello degli utenti Python. Lo immaginavi tutto questo successo?
Matz: No. Nel 1993, Ruby era solo il mio giocattolo personale. Ma avevo anche visto che era troppo buono per tenerlo nascosto nella mia cassa dei giocattoli. Allora, lo misi in circolazione alla fine del 1995.

J. Khaldi: Ruby è un frutto di passione, molto interessante ed è considerato un trionfo del freeware ed open source. Ma come si guadagna da vivere chi sviluppa freeware?
Matz: Nel mio caso specifico, lavoro come ingegnere dal 1997 alla ZetaBITS.com (un'azienda giapponese) dove tutto è basato sull'open source. Mi hanno dato l'opportunità di continuare a sviluppare Ruby durante il mio normale lavoro. Prima del 1997, era solo la mia occupazione nel tempo libero.

J. Khaldi: Quante persone lavorano regolarmente per lo sviluppo Ruby e tenerlo aggiornato?
Matz Abbiamo 5 persone che possono modificare ed aggiornare il codice sorgente. In più, abbiamo un numero imprecisato di collaboratori per le patches.

J. Khaldi: Che io sappia, l'ultima versione di Ruby è la 1.6 ed è molto completa. Quale saranno le principali novità nella versione 2.0?
Matz: Ruby 2.0 è ancora una vaga idea. Comunque sto pensando ad alcune cose delle quali vorrei ancora discutere, come:

J. Khaldi: Ruby è, relativamente, un linguaggio giovane. Esistono dei libri che lo trattano?
Matz: o scritto un libro in giapponese che sarà tradotto in inglese dalla Addison Wesley ed intitolato "Ruby the object-oriented scripting language". Altri due libri saranno disponibili per quest'autunno. Il primo, in lingua inglese, pubblicato dalla Addison Wesley, con titolo "Programming Ruby: The Pragmatic Programmer's Guide by Dave Thomas and Andy Hunt". Il secondo, è pubblicato dalla O'Reilly Japan. Quest'ultimo sarà presto, probabilmente, tradotto in inglese.

J. Khaldi: So che sei stato l'autore del modulo per accedere ad InterBase da Ruby. Che te ne pare della combinazione Ruby/InterBase per lo sviluppo di applicazioni web?
Matz: L'azienda dove lavoro sta da tempo usando Ruby ed InterBase in tutti i progetti di commercio elettronico da noi realizzati. Ci servivano le performance e le funzionalità di InterBase e la produttività di Ruby.

J. Khaldi: Il modulo per accedere ad InterBase da Ruby è ancora in beta (0.3) e non gestisce tuttora i campi blob. E' stabile? Mi sapresti dire quando sarà disponibile la versione definitiva?
Matz: Quel modulo in versione 0.3 è stabile ed affidabile al punto che tutti i nostri progetti lo usano senza aver incontrato i minimi problemi. Ma, conoscendo poco InterBase, mi piacerebbe se qualcuno si mettesse a mantenerlo e svilupparlo in futuro al mio posto. Se qualcuno si farà avanti mi renderebbe veramente contento.

J. Khaldi: Ruby è ancora un linguaggio interpretato. Non hai mai pensato di scrivere un compilatore?
Matz: Ruby2C e RubyJIT (Just In Time Compiler) esistono già. Sfortunatamente sono ancora a livello sperimentale, e non vengono più sviluppati. Ecco dove si possono trovare:

Un compilatore (byte code e nativo) è una delle proposte per Ruby 2.0 per aumentare le prestazioni.

J. Khaldi: Nell'azienda dove lavori, come usi principalmente Ruby?
Matz: Mi occupo prevalentemente del suo sviluppo. ;-)
Gli altri lo usano per vari scopi, specialmente nel text processing, amministrazione di sistema e applicazioni web. In alcuni casi viene usato anche il Perl.

J. Khaldi : Qual'è la giornata tipo di Matz?
Matz: Segreto. ;-)
Passo molto del mio tempo lavorativo, e anche una parte di quello personale a leggere e a rispondere alle e-mail, migliorare e sviluppare il codice, scrivere libri e articoli su Ruby.

J. Khaldi: Gli hobbies?
Matz: Quello più importante è sviluppare Ruby. Segue la programmazione in generale, lettura, guardare films... Ah, mi piace passare molto tempo con la mia famiglia (mia moglie, le mie due figlie, mio figlio e 2 piccole tartarughe).

J. Khaldi: Sei stato in Italia qualche volta?
Matz: Io no. Mio padre ci è stato un paio due volte e mi raccontava che si tratta di un bel paese, belle città e soprattutto ottima cucina. Mi piace la cucina italiana. Visiterò l'Italia un giorno.