have I just been lucky enough to not to have to worry too much about it, or am I a bad programmer?
Ti piacciono le tue esigenze? Se le prestazioni non sono un requisito, non preoccuparti. Trascorrere un periodo significativo è un disservizio per il datore di lavoro.
In un certo senso la prestazione è sempre un requisito. Se riesci a colpirlo senza pensarci, sei giustificato a non pensarci.
Personalmente, sono spesso guidato dalle prestazioni quando i miei test impiegano molto tempo per passare. Sono troppo impaziente di aspettare 5 minuti mentre passa una serie di test. Ma di solito si risolve giocherellando con i test.
My question is why is it that a large number of programmers care so much? Is it really an issue for most developers,
Ci sono un gran numero di programmatori che sono giustificati in quanto a loro importa. Ci sono grandi numeri che non lo sono. Parliamo di quelli che non lo sono.
Una delle prime cose che i programmatori imparano a scuola, dopo come far funzionare effettivamente le cose, è la notazione O grande. Molti di loro imparano la lezione correttamente e quindi si focalizzano correttamente su cose drammaticamente influenzate da n. Altri non prendono la matematica e tolgono solo la lezione che una volta che funziona ha bisogno di essere veloce. Peggio ancora, alcuni di questi studenti non imparano nient'altro su cosa è importante fare con il tuo codice, oltre a farlo funzionare e farlo funzionare velocemente. Le lezioni perse: renderlo leggibile, disegnarlo bene, non giocarci senza motivo.
Knuth aveva ragione: l'ottimizzazione prematura è la radice di tutto il male. Ma una volta che funziona, qual è il prossimo passo? Veloce giusto? NO! Il prossimo passo è leggibile. Leggibile è il primo, il prossimo, il secondo e l'ultimo passo. Molte delle persone che trovo di fare ottimizzazioni delle prestazioni non necessarie stanno lanciando la leggibilità sotto il bus.
Alcuni hanno persino un brivido perverso di quanto il loro codice sia illeggibile. Hanno dovuto soffrire guardando il codice difficile da capire creato da altri, quindi ora è il loro turno al momento del recupero.
Lo so perché lo facevo. Una volta ho rifatto un 5 righe perfettamente leggibili, se la struttura è stata decifrata da un'espressione booleana indecifrabile, e l'ho spedita con orgoglio al mio professore, aspettandomi di impressionare, poiché avrei potuto creare qualcosa di così compatto e intimidatorio. Non ho ricevuto le lodi che speravo.
Se il codice rimane leggibile, renderlo più veloce in seguito è facile. Ecco perché Knuth sottolinea "prematura" non "non necessaria". Perché sicuro, più veloce è meglio. Ma meglio è solo meglio a seconda di ciò che sacrifichi per questo. Quindi aspetta di sapere quali prestazioni hai veramente bisogno prima di fare sacrifici per questo. Sacrifica la leggibilità a malincuore perché una volta che se ne è andato, è difficile tornare indietro.
Oltre la leggibilità è l'intero mondo del software design. Di cosa tratta questo sito. Alcuni non hanno idea di cosa fare per quanto riguarda il design. Quindi, dato che non riescono a impressionare con il design, creano un pasticcio indecifrabile, quindi le persone non possono dire di non avere idea. Dal momento che nessuno aggiusta mai il loro codice, deve essere un buon codice, giusto?
Per alcuni, le prestazioni sono il pretesto per fare quello che vogliono. I programmatori hanno molta potenza e autonomia. La fiducia è stata messa in loro. Non abusare della fiducia.