Per prima cosa, separa il problema del codice funzione dal codice leggibile. Mentre la brevità può contribuire alla leggibilità, non lo garantisce. Né garantisce l'efficienza dell'esecuzione.
So I was wondering if it truly matters when code is short and readable
and my enthusiasm about Python and Haskell is justified because there
are lots of situations (in professional software development) were you
see code only from the outside.
Ogni sviluppatore indossa due cappelli: uno scrittore di codice e un consumatore del codice di un altro programmatore.
Come consumatore di codice, non mi interessa in quale lingua è scritto il codice che impongo, né mi interessa quali siano gli standard di codifica che impongono. Mi interessa solo poterlo chiamare da qualsiasi lingua in cui sto lavorando, che il codice soddisfi i miei requisiti, sia corretto e sia mantenuto attivamente.
Tuttavia, come scrittore di codice, ho lavorato su progetti che hanno avuto più versioni nell'arco di decenni. Migliaia di altri sviluppatori consumano il nostro codice. Una delle discipline che lo rende possibile è che i miei colleghi e io do si preoccupano che il nostro codice sia leggibile. Ogni giorno devo revisionare il codice che io o qualcun altro nella mia squadra ho scritto 7 anni fa.
Se scrivi degli script che vengono usati una volta e non vengono mai più toccati, potresti pensare che la leggibilità non sia importante. Ti sbaglieresti, perché tutti gli script tranne quelli più banali devono essere sottoposti a debug per farli funzionare correttamente. Il debug di un codice leggibile è molto più semplice del debug di codice oscuro.
Ad esempio, se si utilizza il pacchetto SciPy in Python probabilmente si chiameranno funzioni che chiamano a loro volta funzioni da Sottoprogrammi di Algebra lineare di base (BLAS), una libreria di routine di manipolazione di matrici scritte in FORTRAN. Come utente di SciPy, non mi interessa davvero quali sono i loro standard di leggibilità. Ma i responsabili di mantenere BLAS si preoccupano profondamente di quanto sia leggibile il loro codice, perché sono loro che hanno dovuto mantenere quel codice per quasi 40 anni.
Now I know a lot of developers do not comment their code. In these
cases you do benefit from short readable code. However as long there
is the opportunity to document code I am not convinced.
Poiché inevitabilmente il codice e i commenti non verranno sincronizzati, ad esempio qualcuno modificherà il codice e trascurerà di aggiornare i commenti. Quindi i futuri manutentori dovranno capire sia i commenti che il codice, e capire se i commenti, il codice o nessuno dei due, è la versione corretta di ciò che dovrebbe accadere. Uso i commenti e cerco di essere disciplinato sull'aggiornarli, ma vi assicuro che anche con le migliori intenzioni, verranno a divergere. Se il tuo codice non è leggibile, smistare le cose sarà inutilmente doloroso.