[Python] Quanto conta il linguaggio ?

Giovanni Porcari giovanni.porcari a softwell.it
Ven 17 Lug 2015 19:35:03 CEST


Non metto OT perchè con sto caldo ci sono così tanti OT che sarebbe più OT
parlare esplicitamente di Python.

La mia domanda comunque nasce dalle recenti mail relative a python vs go
e ai richiami ad altri linguaggi. Ho  visto appassionanti comparazioni
su features più o meno esotiche, ho visto vantare leggibilità o
possibilità di scrivere procedure meno esposte a bug, ho letto
con interesse tutte queste cose ma alla fine mi sono chiesto:
"Ma quanto conta il linguaggio per scrivere buone applicazioni ?"

Io identifico come elemento primario nella scrittura di un’applicazione
di una certa complessità la sua architettura. Ovvero come si riesce
ad analizzare il problema e come questo si traduce in sotto problemi
in un modo elegante e facile da mantenere.

Se la nostra applicazione fosse un edificio assomiglierebbe
ad una torre svettante nel cielo e ricoperta da una facciata
tutta a specchi o sarebbe un edificio basso con profonde cantine
e lunghi corridoi ? Assomiglierebbe al duomo di Milano o al Partenone ?

Insomma io credo che il modo in cui un’applicazione si struttura
in servizi condivisi, il modo in cui distribuisce le risorse
di memorizzazione e di elaborazione, il modo in cui pianifica
da subito i possibili futuri cambiamenti conti alla fine ben più
del linguaggio usato. Il linguaggio è uno strumento di lavoro,
il modo che ho per costruire l’edificio. Ma posso fare ottimi edifici
persino in PHP e con questo credo di aver già rischiato di farmi
strangolare.

Quando sento dire che di volta in volta si può scegliere il linguaggio
migliore per lo specifico problema io penso che sia un’affermazione valida
per un ristretto numero di eletti (spesso grandi bevitori di birra) che
riescono a padroneggiare i linguaggi con la stessa facilità con cui
un bravo giocoliere fa volteggiare 12 mazze sulla sua testa mentre
attraversa una stretta passerella su un precipizio.

Io credo invece che uno sviluppatore non così abile, dovrebbe limitarsi
a conoscere bene un linguaggio in modo da sfruttarlo al meglio
e conoscerne soprattutto i limiti e i punti deboli.
Quando si cambia cavallo si rischia spesso di ottenere un risultato 
meno valido non perchè questo sia un brocco, anzi, ma perchè non lo si
conosce bene e si commettono errori che solo anni di esperienza
ti portano ad evitare.

Quindi io amo python perchè mi permette di concentrarmi sull’architettura
della soluzione e mi aiuta a scrivere con naturalezza del codice che
funziona bene e che riesco a mantenere. So benissimo che mi perdo 
un sacco di raffinate features, ma so anche che essendo comunque un
ottimo linguaggio, non mi mette nella necessità di cambiare.
Neppure per passare a python 3. Per le stesse ragioni che enunciavo prima.


Mi piacerebbe sentire la vostra opinione su questo tema…


G.


Maggiori informazioni sulla lista Python