Consentitemi gentilmente di non essere d'accordo sulla leggibilità. No, non del tutto: un buon codice dovrebbe essere leggibile e ciò può essere facilmente ottenuto con abbastanza commenti.
Ma considero due tipi di WTF: quelli in cui ti chiedi se il programmatore è andato oltre la programmazione 101, e quelli in cui non capisci assolutamente la genialità del codice. All'inizio un po 'di codice può sembrare molto strano, ma in realtà è una soluzione molto inventiva per un problema difficile. Il secondo non dovrebbe essere conteggiato nel contatore WTF e può essere evitato dai commenti.
Il codice molto leggibile può essere molto, molto lento. Una soluzione meno leggibile può offrire un miglioramento di moltiplicatore della velocità. R è un ottimo esempio di una lingua in cui ciò è spesso vero. A uno piace evitare il più possibile i loop for lì. In generale, considererei il codice più veloce il codice migliore anche se è meno leggibile. Cioè, se il miglioramento è sostanziale, ovviamente, e vengono inseriti abbastanza commenti per spiegare cosa fa il codice.
Inoltre, la gestione della memoria può essere cruciale in molte applicazioni scientifiche. Il codice che è molto leggibile, tende ad essere un po 'sciatto nell'uso della memoria: ci sono solo più oggetti creati. In alcuni casi l'uso intelligente della memoria rende di nuovo il codice meno leggibile. Ma se si destreggia tra gigabyte di sequenze di DNA, ad esempio, la memoria è un fattore cruciale. Ancora una volta, considero il codice meno dispendioso in termini di memoria il codice migliore, indipendentemente dalla leggibilità.
Quindi sì, la leggibilità è importante per un buon codice. Conosco l'adagio di Uwe Liggis: pensare che il male e il computer siano economici. Ma nel mio campo (genomica statistica), i tempi di calcolo di una settimana e l'utilizzo della memoria di oltre 40 Gb non sono considerati anormali. Quindi un miglioramento del doppio della velocità e della metà della memoria vale molto di più di quel pizzico di leggibilità in più.