Spotkałem wielu ludzi, którzy są dogmatycznie przeciwni czemukolwiek, co można uznać za „optymalizację” w ogólnym znaczeniu tego słowa w języku angielskim, i bardzo często cytują dosłownie (częściowo) cytat „przedwczesna optymalizacja jest źródłem wszelkiego zła” jako uzasadnienie ich stanowiska, sugerując, że interpretują wszystko, o czym mówię, jako „przedwczesną optymalizację”. Jednak te poglądy są czasami tak absurdalnie zakorzenione, że odrzucają praktycznie wszelkie odchylenia algorytmiczne lub struktury danych od najczystszej „naiwnej” implementacji… lub przynajmniej wszelkie odchylenia od tego, co robili wcześniej.Jak można podejść do takich osób w taki sposób, aby ponownie „otworzyły uszy” po tym, jak przestały słyszeć o „wydajności” lub „optymalizacji”? Jak omówić temat projektowania / wdrażania, który ma wpływ na wydajność, nie każąc ludziom od razu myśleć: „Ten facet chce spędzić dwa tygodnie na dziesięciu liniach kodu?”
Teraz stanowisko, czy „wszelka optymalizacja jest przedwczesna, a zatem zła”, czy nie, zostało już omówione tutaj, jak również w innych zakątkach sieci , i już dyskutowano, jak rozpoznać, kiedy optymalizacja jest przedwczesna, a zatem zła , ale niestety wciąż istnieją ludzie w prawdziwym świecie, którzy nie są tak otwarci na wyzwania związane z wiarą w antyoptymalizację.
Poprzednie próby
Kilka razy próbowałem podać pełny cytat z Donalda Knutha , aby wyjaśnić, że „przedwczesna optymalizacja jest zła” ↛ „cała optymalizacja jest zła”:
Powinniśmy zapomnieć o małej wydajności, powiedzmy około 97% czasu: przedwczesna optymalizacja jest źródłem wszelkiego zła. Nie powinniśmy jednak tracić naszych szans w tak krytycznych 3%.
Jednak, dostarczając cały cytat, ludzie ci czasami stają się bardziej przekonani, że to, co robię, to Premature Optimization ™ i kopie i nie chce słuchać. To prawie tak, jakby przeraża je słowo „optymalizacja”: Kilka razy byłem w stanie zaproponować rzeczywiste zmiany kodu poprawiające wydajność bez zawetowania ich, po prostu unikając użycia słowa „optymalizacja (e | acja)” ( i „wydajność” - to słowo też jest przerażające) i zamiast tego używa wyrażeń takich jak „architektura alternatywna” lub „ulepszona implementacja”. Z tego powodu naprawdę wydaje się, że to naprawdę jest dogmatyzm, a nie faktyczna ocena tego, co mówię krytycznie, a następnie odrzucenie go jako niepotrzebnego i / lub zbyt kosztownego.