Tollerate se non aderisco direttamente all'oggetto del thread ma intendo aggiungere un parere al discorso che si è sviluppato, anche se può apparire scontato il seguito.
Mi riferisco alla presunta o reale efficienza di un codice, scritto in modo più elegante, o criptico, piuttosto che l'adozione di un approccio più diretto e lineare.
Non è per dare "un colpo al cerchio e uno alla botte" ma, oltre alle proprie sensibilità e competenze, credo che certe scelte debbano o possano essere modulate dal contesto, inteso come ambito applicativo.
Questa certo è una ragione
Sjuanez ha scritto:(...) che il fatto di lavorare in grandi team, renda più vantaggioso puntare sulla leggibilità e interpretazione immediata del codice (...)
credo condivisibile, per la quale sia meglio rendere più leggibile il codice, così come chi lavora in completa autonomia può puntare a performance che costringerebbero qualcun altro a più d'una "passata" nel caso si trovasse a seguire i passaggi di quel software.
Però, anche quando il codice lo scrivi, "egoisticamente" pensando solo a te, benché sarà certamente destinato alla visione di altri, per più motivi ivi compresi quelli della manutenzione, ti confronti con delle contraddizioni, solo tue.
Nell'ambito dell'automazione sono men che rari i casi nei quali, dopo avere parametrizzato funzioni e ottimizzato i passaggi dell'elaborazione, in fase di avviamento iniziano i "problemi".
Quando i comportamenti delle macchine cominciano ad "allontanarsi" dalle tue aspettative, intanto che prendi coscienza e tra te e te cerchi di resistere alla tentazione d'attribuire le responsabilità a qualche
poltergeist, siccome non riesci a seguire gli eventi ... inizi a "smontare" quello che hai costruito.
Ti trovi allora nella condizione di semplificare quello che ti aveva dato soddisfazione realizzare perché ora non ti consente d'indagare bene sul problema.
Può essere per il fatto, appunto, di avere condensato "troppo" delle elaborazioni oppure per aver scelto di parametrizzare privandocisi quindi della visibilità sui risultati intermedi della funzione.
Allora, tra un "ma perché l'ho fatto ?" (te lo chiedi ma lo sai benissimo ...) e un "ma chi me lo ha fatto fare ?" (anche questo la sai benissimo, ma te lo chiedi ugualmente ... ) cominci a duplicare e poi a far "esplodere" quelle condensazioni.
Ovvio che qui gioca un ruolo importante l'abilità individuale e chi è molto bravo non incontra inconvenienti simili ma per la maggior parte di noi comuni mortali fanno parte di esperienze vissute.
Da queste poi bisogna trarre insegnamento, ma questo è un altro discorso ...
Saluti
W - U.H.F.