Habe ich nur das Glück gehabt, mich nicht allzu sehr darum kümmern zu müssen, oder bin ich ein schlechter Programmierer?
Interessieren Sie sich für Ihre Anforderungen? Wenn Leistung keine Voraussetzung ist, sorgen Sie sich nicht darum. Wenn Sie viel Zeit dafür aufwenden, ist dies ein Nachteil für Ihren Arbeitgeber.
Bis zu einem gewissen Grad ist Leistung immer eine Voraussetzung. Wenn Sie es schlagen können, ohne darüber nachzudenken, haben Sie das Recht, nicht darüber nachzudenken.
Persönlich bin ich am häufigsten von der Leistung abhängig, wenn meine Tests zu lange dauern. Ich bin zu ungeduldig, um 5 Minuten zu warten, während eine Reihe von Tests bestanden wird. Aber das wird normalerweise gelöst, indem man mit den Tests spielt.
Meine Frage ist, warum es so viele Programmierer interessiert? Ist es wirklich ein Problem für die meisten Entwickler,
Es gibt eine große Anzahl von Programmierern, die berechtigt sind, wie sehr sie sich darum kümmern. Es gibt viele, die nicht sind. Reden wir über die, die es nicht sind.
Eines der ersten Dinge, die Programmierer in der Schule lernen, nachdem sie gelernt haben, wie die Dinge tatsächlich funktionieren, ist die große O-Notation. Viele von ihnen lernen die Lektion richtig und konzentrieren sich daher richtig auf Dinge, die dramatisch von n beeinflusst werden. Andere verstehen die Mathematik nicht und nehmen nur die Lektion weg, die schnell sein muss, wenn sie einmal funktioniert. Schlimmer noch, einige dieser Schüler lernen nie etwas anderes darüber, was mit Ihrem Code zu tun ist, außer dass er funktioniert und schnell arbeitet. Die verpassten Lektionen: lesbar machen, gut gestalten, nicht grundlos herumspielen.
Knuth hatte recht: Vorzeitige Optimierung ist die Wurzel allen Übels. Aber wenn es funktioniert, was ist der nächste Schritt? Schnell, oder? NEIN! Der nächste Schritt ist lesbar. Lesbar ist der erste, nächste, mittlere und letzte Schritt. Viele der Leute, die nicht benötigte Leistungsoptimierungen vornehmen, werfen die Lesbarkeit unter den Bus.
Einige bekommen sogar einen perversen Nervenkitzel, wie unlesbar ihr Code ist. Sie mussten sich mit schwer verständlichem Code auseinandersetzen, der von anderen erstellt wurde. Jetzt sind sie an der Reihe, sich zu amortisieren.
Ich weiß das, weil ich das gemacht habe. Ich habe einmal eine perfekt lesbare 5-Zeilen-Struktur zu einem nicht entzifferbaren einzeiligen booleschen Ausdruck überarbeitet und ihn stolz an meinen Professor geschickt. Ich habe nicht das Lob bekommen, auf das ich gehofft hatte.
Wenn Code lesbar bleibt, ist es einfach, ihn später schnell zu machen. Deshalb betont Knuth "vorzeitig" und nicht "unnötig". Denn schneller ist sicher besser. Aber besser ist nur besser, je nachdem, was Sie dafür opfern. Warten Sie also, bis Sie wissen, welche Leistung Sie wirklich benötigen, bevor Sie dafür Opfer bringen. Opfere widerwillig die Lesbarkeit, denn wenn sie einmal weg ist, ist es schwierig, wieder dorthin zu gelangen.
Jenseits der Lesbarkeit liegt die ganze Welt des Software-Designs. Worum geht es auf dieser Seite? Einige haben keine Ahnung, was Design angeht. Da sie also nicht mit Design beeindrucken können, machen sie ein unkenntliches Durcheinander, sodass die Leute nicht erkennen können, dass sie keine Ahnung haben. Da niemand jemals seinen Code repariert, muss es ein guter Code sein, oder?
Für manche ist Leistung der Haken, um zu tun, was sie wollen. Programmierer haben viel Kraft und Autonomie. Ihnen wurde Vertrauen entgegengebracht. Missbrauche das Vertrauen nicht.