Index of UNOFFICIAL Circumvesuviana Home Page La mia tesi di laurea main index Incredibile ma vero, c'è gente che ha sfruttato la mia pagina di presentazione di Ruby per sputare fuori critiche tanto gratuite quanto feroci che dimostrano solo la solita terribile ignoranza. Perciò sono costretto a partire dall'ABC, e me ne scuso anticipatamente con chi sa già leggere... Rispondo velocemente in dieci punti.

Punto primo: anch'io sono allergico all'imparare nuovi linguaggi di programmazione (a meno, ovviamente, di solidissimi e validissimi motivi per impararne). Sono talmente allergico che pur avendo imparato dozzine di linguaggi, in vita mia ne ho usati massicciamente solo tre: C, C++ e Ruby (in realtà ho usato parecchio anche il Basic, nei primi anni Ottanta, ma già nel 1987 lavoravo in C, quando tutti si dichiaravano fan del Pascal che tanto andava di moda).

Dunque, se qualcuno mi presenta un "nuovo" linguaggio, ho il diritto di pretendere che:

  1. non mi faccia rimpiangere nulla di quello che facevo con gli altri linguaggi;
  2. sia talmente facile da imparare che "provarlo" mi costi il minor numero possibile di serate.
Queste sono esattamente le caratteristiche che ho trovato cominciando con Ruby.

Punto secondo. Nessun idiota venga a dirmi che i linguaggi di programmazione che conosce li ha imparati con criteri altamente razionali, scientifici e commercialmente impeccabili. Vada a raccontar frottole altrove. Chiunque parte da una simpatia o dal seguire una moda. Imparai il Basic perché era l'unica cosa che si poteva usare dovunque. Imparai il C perché qualcuno mi aveva detto che era il linguaggio del futuro (previsione azzeccata, vista la miserabile fine che fece il Pascal). Imparai il C++ per simpatia con quel doppio "più" (ed era veramente un C "potenziato").

Codesti ragazzucoli ventenni che hanno cominciato imparando il Java, somigliano ai ventenni di vent'anni fa che credevano di conoscere il Mondo dell'Informatica solo perché sapevano azzeccare un paio di GOSUB nel GW-Basic. Solo che i ragazzetti di oggi, pur vivendo nello stesso mito, nati e cresciuti con telefonini e playstation, sono più presuntuosi di quelli di allora.

Dunque, il fatto che Ruby sia stato inventato da un giapponese, lo fa svettare in classifica agli occhi di un nippofilo come il sottoscritto.

Punto terzo. Ruby non è limitato ad alcune particolari piattaforme.

Questa cosa è irrilevante solo per chi vive di un solo sistema sedicente operativo (Windows). C'è gente che crede di conoscere l'universo informatico per il solo fatto di esser riuscita ad infilare una scritta in un tasto di una form di un Visual Basic.

Se il termine porting ti fa tremare (di paura o di entusiasmo, a seconda dei casi), allora sei un informatico vero. Altrimenti o sei uno di quegli sciacquini ventenni che si fregiano del titolo di esperti di informatica perché sanno come si masterizza un CD sotto Windows, oppure sei di quei fanatici che vivono da tempo immemorabile tra le ragnatele di un solo ambiente operativo.

Punto quarto: se un linguaggio di programmazione si impara in meno di una serata, allora si tratta o di un linguaggetto imbecille (per dummies, dicono quelli che vogliono darsi le arie di esperti di informatica) oppure (caso raro) si tratta di un linguaggio serio che vale la pena prendere in considerazione.

Ruby è esattamente il secondo caso. Il che fa storcere il naso agli aristocratici della programmazione, quelli per cui con meno di sei mesi di impegno a tempo pieno è impossibile imparare i rudimenti di alcunché. Manco a dirlo, si tratta dei soliti fanatici della programmazione sotto Windows, il sistema sedicente operativo che ha buchi grossi come finestre (da cui il nome).

Punto quinto: il fatto che Ruby sia ideale anche per chi non ha mai scritto una riga di codice, significa che è un linguaggio utilissimo in ambienti educativi.

Codesti ragazzotti ventenni sbarbatelli, cresciuti tra videofonino e Xbox, credono di essere skillati nell'IT (ah, questo linguaggio iniziatico, necessario per sembrare professionisti con esperienza pluridecennale), e non gradiscono ciò che non conoscono. Hanno curiosità solo per le canzonette MP3 o i filmati AVI, ma non ne hanno nessuna per l'ars programmatoria di cui si sentono fieramente maestri d'arte.

Punto sesto: per i ragazzotti appena citati, e in generale per tutti quelli che si atteggiano a guru dell'informatica, l'importante non è saper risolvere i problemi, ma mostrare di saperli risolvere in modo esplosivo.

Ho cercato disperatamente di far notare la «produttività» di Ruby con la pagina di esempi. Con i computer che suonano gigahertz e gigabytes, di una routine da usare tre o quattro volte al giorno, è più importante che impieghi otto millisecondi oppure va bene anche se ci mette due decimi di secondo?

Ruby significa produttività. Quando il tempo macchina è trascurabile, preferisci un linguaggio ostico compilato megapotente, oppure un linguaggio interpretato che ti permette di creare quella routine in un trentesimo del tempo?

Per chi lavora su macchine Unix, Ruby è una vera manna. Questo è proprio il mio caso. Non mi servono i dialoghi ultracolorati e supercombinati dei Visual-Qualcosa di Windows. Non ho bisogno di scrivere un ray-tracer o un kernel di sistema operativo. In quei casi utilizzerei altri linguaggi. Ma per una miriade di applicazioni che scrivo per lavoro e per hobby, Ruby mi ha risolto due problemi gravissimi: delle due risorse di cui più sono a corto (tempo e pazienza), Ruby sfrutta molto meno di quel che era necessario in precedenza quando usavo C++, C, shell Unix, awk e altro.

Punto settimo: non m'interessano gli altri linguaggi "interpretati". Volevo uno strumento generico, ho avuto Ruby, che va bene per tutto. Volevo una cosa facile, Ruby è facile. Volevo una cosa ben fatta, Ruby è ben fatto, solido, stabile, affidabile.

Volevo una cosa che maneggiasse le stringhe e i "campi" con la stessa disinvoltura con cui le maneggiavo con awk: ebbene, Ruby fa molto di più. Volevo una cosa che non mi costringesse a scrivere prosciuttate e salamate di codice, e vedo che tantissime cose si fanno in una sola riga di Ruby.

Punto ottavo: Java e altri linguaggi, con tutto il loro seguito, non generano una comunità di appassionati come quella di Ruby.

Chiedi ad un qualsiasi appassionato di Ruby, e ti risponderà con entusiasmo. Chiedi ad un qualsiasi "appassionato" di Java, o di C, o di Python, o cos'altro: non ha lo stesso entusiasmo infettivo di chi usa Ruby.

Punto nono: i soloni di turno si indignano di fronte ad esempi come quello sul matchare espressioni regolari, gridando che in qualsiasi linguaggio, con le librerie apposite, si può fare di tutto. Peccato che in questione non era la "possibilità" di fare in C++ le stesse cose di Ruby, ma la "comodità" di farle in Ruby rispetto agli altri linguaggi.

Ciò che ho scritto nelle mie pagine entusiastiche su Ruby dipende dall'esperienza personale di aver riscritto in Ruby pagine e pagine di codice vario in molto meno codice e molto meno tempo, abusando molto meno della mia già scarsa pazienza, e senza errori. Quante volte, i lorsignori soloni hanno scritto un pezzo di codice, compilato senza errori ed eseguito senza errori fin dal primo colpo?

Punto decimo: i lorsignori aristocratici della compilazione non si scomodino. Aspettino. Tra dieci anni vedremo chi ha ragione: nel frattempo non ho voglia di perdere tempo con inutili discussioni.

Resto comunque sicuro che i lorsignori, tra dieci anni, quando Ruby sarà utilizzato assai più diffusamente di quanto non lo siano oggi Java e C++, avranno già dimenticato codeste loro "eroiche" prese di posizione (altrimenti avranno insopportabili crampi al fegato).


Flippy che corre verso il sottoscritto

home page - send e-mail