Eccoci tornati ad uno dei nostri post di confronto tra approcci di programmazione. Questa volta tratteremo di Python e Ruby nel campo dello sviluppo per il Web. Entrambi i linguaggi sono molto popolari nei team che si occupano dell'implementazione di portali Web, Web App e Web service.
Python e Ruby condividono tra di loro diversi elementi, visivamente infatti la loro sintassi può sembrare simile in alcuni aspetti ed entrambi sono linguaggi di alto livello object oriented, con una interactive shell e con la possibilità di utilizzare librerie standard. Tuttavia i due linguaggi adottano approcci diversi per risolvere lo stesso problema, questo perché la loro sintassi e la loro filosofia d'uso differiscono notevolmente.
Python è stato sviluppato in ambito scientifico come un prototyping language che possa essere convertito facilmente in C++. Al contrario Ruby nasce proprio in ambito Web e per il Web develpment. Questo ha significato la creazione di impostazioni di sviluppo ben diverse.
Python ha un approccio diretto ai problemi di coding, il suo obbiettivo principale è rendere tutto il più ovvio possibile per il programmatore, offrendo solo la migliore opzione per fare ciò che il developer desidera. Potremmo racchiudere Python in questi tre principi: "Esplicito è meglio che implicito", "Semplice è meglio di complesso", "Complesso è meglio di complicato".
Questa rigida filosofia fa si che Python sia facilmente leggibile e caratterizzato da una curva di apprendimento non particolarmente ripida, rendendolo molto più appetibile per gli sviluppatori che stanno iniziando il suo studio.
Totalmente opposta è la filosofia di Ruby che tende maggiormente al concetto di "human-language programming". Ruby segue poi il principio del "least astonishment" e offre una miriade di opzioni diverse per risolvere i problemi dello sviluppatore. Questo può confondere alcuni developer, ma per quelli più "creativi" in alcuni casi può risultare vantaggioso rispetto a Python.
Ruby inoltre fa uso dei "blocks", ovvero dei first-class object che sono trattati come delle unità all'interno di un programma, in tale linguaggio infatti tutto viene trattato come un oggetto, che siano variabili globali o semplici funzioni. Tale impostazione fa si che Ruby sia un linguaggio estremante potente.
Dunque dopo aver analizzato i due linguaggi, quale dei due sarebbe preferibile per il Web development? La risposta è: dipende da cosa dobbiamo realizzare, dalle nostre skill e dal tipo di team con cui ci si ritrova a lavorare.
Se l'obbiettivo è realizzare una Web application, Ruby può essere la scelta più azzeccata visto che è estremamente popolare e flessibile. Se invece si è più interessati ad apprendere i concetti della programmazione, allora Pyhon può essere davvero utile dato che ci pone delle regole ben definite che, se ooservate, portano a risultati certi.
Per approfondire: Tom Radcliffe