Am 10.01.24 um 22:57 schrieb Arno Welzel:
> Marcel Mueller, 2024-01-10 18:43:
>> Nach meinen Erfahrungen wird Software immer so programmiert, dass sie
>> den gut ausgestatteten Rechner des Entwicklers nicht völlig lahm legt.
>> Auf dem Rechner der User funktioniert das nur deswegen einigermaßen gut,
>> weil der zwei Jahre später, wenn er das Produkt auf seiner Kiste hat,
>> mindestens gleichschnell ist.
>
> Das gilt nur, wenn der Entwickler immer die aller neueste Hardware hat.
> Das ist keinesfalls immer gegeben.
Der Entwickler hat nicht die neueste, aber zum Kaufzeitpunkt gut
ausgestattete Hardware, denn die Entwickertools sind wahrlich keine
Kostverächter.
Aber die meisten Entwickler, die ich kenne (und das sind einige) achten
überhaupt nicht darauf, welche Datenstrukturen sie verwenden, und es ist
ihnen auch vollkommen egal, ob dabei in jedem Schleifendurchlauf nochmal
der gesamte Arbeitsvorrat durchsucht wird, also quadratische
Komplexität. Erst wenn eine Stelle wirklich ein Problem macht, wird
optimiert.
Es gibt eine alte Entwickler-Regel: first make it work, then make it
fast. Die produziert genau jene, verbreitete Software, die alle zum
Entwicklungszeitpunkt verfügbaren Systemressourcen effizient verbraucht.
Und wenn man berücksichtigt, dass "make it fast" nicht selten bedeutet
"wegschmeißen und neu machen", ist die vermeintliche Ersparnis durch
diese Vorgehensweise auch gar nicht mehr so groß.
Das ist halt eine ökonomische Sache. Die Entwickler bezahlt der
Softwarehersteller, das Blech (Rechner) bezahlt der Kunde, also
Ressourcenverbrauch egal.
Es gibt eine Entwicklung, die das ändern könnte: SAAS. Wenn Software nur
noch als Service im Netz bereit gestellt wird, muss der betreibende auf
einmal das Blech selber bezahlen. Und jetzt kann es ökonomisch sinnvoll
werden, auf den Ressourcenverbrauch der Software zu achten.
Ich fand die obige Regel schon immer falsch. Man sollte immer die
optimalen Datenstrukturen und Algorithmen verwenden, und nur wenn das
signifikanten Mehraufwand bedeutet, überlegen, ob es an der jeweiligen
Stelle auch lohnt. Aber dazu muss man halt auch erst mal verinnerlichen,
was Algorithmen und Datenstrukturen sind, und nicht nur Copy & Paste von
Stackoverflow beherrschen.
Marcel