PEP 20: The Zen of Python

Parliamo di programmazione. Quella sui computer intendo.

Per i non addetti ai lavori è una occupazione fredda, scientifica che non lascia spazio all’impronta umana e che porta il marchio di una lavoro fatto in serie, anonimo.

Niente di più falso.

Da come un programmatore scrive il codice si possono capire molte cose, un po’ come in grafologia:
se è conformista, se tende ad ammassare il codice o  se preferisce aggiungere degli spazi; se preferisce scrivere con il CamelCase o più visivamente dividere le parole nelle variabili usando_il_trattino_basso; se esplicita il funzionamento del codice facendo sì che ogni riga effettui (o chiami ;) ) un’unica funzione o magari se è produce codice sincopato… insomma è possibile capire chi abbia scritto del codice (purché sufficientemente lungo) se se ne conosce lo stile.

Anche la linearità o meno del pensiero e il modo di scomporre i problemi in blocchi più semplici e più facilmente affrontabili fa parte della forma mentis del programmatore, tant’è che esiste una letteratura sugli argomenti “filosofia e programmazione” o “la programmazione e la vita di ogni giorno”. E perché no anche su la programmazione intesa come arte.

Un lungo programma ben strutturato offre la possibilità di inserire e far sfoggio di virtuosismi tecnici e stilistici, mostra come il programmatore ha preparato i dati, li ha trasformati per ottenere ciò che desiderava e con quale abilità e strumenti, lasciando dei segni caratteristici assimilabili ai tratti caratteristici di un disegnatore o di un artigiano.

Certo per cogliere questi aspetti più tecnici si deve avere una preparazione specifica più o meno profonda a seconda del SW in corso, ma  direi che lo stesso è  valido per alcuni “capolavori” di arte astratta o contemporanea :roll:

Per molti programmatori di linguaggi moderni e capaci di accettare e gestire (per dirla in termini semplici) tutte le sfumature tra lo 0 e l’1, l’approccio ai problemi della vita quotidiana e quelli della programmazione si fondono.

Ti lascio con dei pensieri tratti dal linguaggio di programmazione python, ottenibili tramite un Easter Egg dell’interprete dei comandi (provate a scrivere import this):

The Zen of Python

  • Beautiful is better than ugly.
  • Explicit is better than implicit.
  • Simple is better than complex.
  • Complex is better than complicated.
  • Flat is better than nested.
  • Sparse is better than dense.
  • Readability counts.
  • Special cases aren’t special enough to break the rules.
  • Although practicality beats purity.
  • Errors should never pass silently.
  • Unless explicitly silenced.
  • In the face of ambiguity, refuse the temptation to guess.
  • There should be one– and preferably only one –obvious way to do it.
  • Although that way may not be obvious at first unless you’re Dutch.
  • Now is better than never. Although never is often better than *right* now.
  • If the implementation is hard to explain, it’s a bad idea.
  • If the implementation is easy to explain, it may be a good idea.
  • Namespaces are one honking great idea — let’s do more of those!

Leave a Reply