am 4. November 2009
Eigentlich wollte ich ja heute erzählen, wie man External Tools in Eclipse verwendet. Da ich die ganzen Daten aber bei der Arbeit habe und ich gerade eine Woche Urlaub habe, muss ich das leider mal wieder verschieben. Stattdessen geht es heute um “premature optimization”.
Der große Informatiker Donald Knuth hat mal den Satz geprägt “premature optimization is the root of all evil” und ich finde den Satz eigentlich ganz passend. Mit dieser Art der Optimierung ist jene gemeint, die man anwendet, obwohl momentan noch keine Notwendigkeit zu sehen ist. Wir optimieren also, obwohl noch gar nicht klar ist, ob wie überhaupt an dieser Stelle optimieren müssen. Ich glaub ich habe gerade 10 mal Optimieren in einem Abschnitt geschrieben. Ich sollte eigentlich einen Preis dafür bekommen.
Warum ist das ganze aber keine gute Idee? Das Problem dabei ist, dass Optimierung fast immer Komplexität mit sich bringt. Vielleicht würde ein Caching System ja meine Methode schnell machen, also schnell einen Memcache installieren und die nötigen Pakete installieren. Klingt aufwändig und ist es auch. Was aber, wenn meine Methode gar kein Bottleneck ist? Dann habe ich gar ja gar nichts von der Optimierung, außer vielleicht den Award für das komplexeste Programm. Hätte ich meine Methode einfach so gelassen, schön simpel, aber vielleicht nicht ganz optimal, dann hätte ich immer noch ein einfaches System.
Ihr dürft moch aber nicht falsch verstehen, ich finde optimieren was wunderbares. Ich bin vielleicht sogar der größte Fan der Refaktorierung. Aber alles zu seiner Zeit. Sobald sich das Nadelör auftut, sollte man sich dem Code widmen, aber davor … neeeee. Wer sich jetzt fragt, wie man die Nadelöre am besten findet, dem sei die Lektüre zum Thema Profiling ans Herz gelegt. Es wird gemunkelt, dass im nächsten PHP Magazin ein Artikel darüber ist. Wenn der Artikel draussen ist, dann werde ich hier wohl auch noch was drüber schreiben.