Warum ist Geld wichtiger als Leistung?
Es heißt immer so wenn Programme geschrieben werden dass man Entwickler nicht für Optimierung bezahlt, sondern nur für das Ergebnis und schnelle Fertigstellung.
Aber ein Programm muss doch immer am Limit seiner Leistung laufen.
6 Antworten
Kommt halt drauf an, was das für ein Programm ist, und wer das macht.
Wenn du ein Programm schreibst, wo fast nichts passiert, und du meistens auf irgendwas wartest, dann ist die Performance egal. Wichtig ist nur, dass das Programm keine Fehler macht. Das Selbe gilt für Code, der sowieso sehr schnell läuft, und andere Teile des Programms sehr viel mehr Leistung brauchen. Ein Beispiel dafür wäre Youtube. Das ist in Python geschrieben - obwohl Python langsam ist. Der Grund ist, dass das nicht weiter wichtig ist, wie lange da etwas dauert, wenn ein Nutzer irgendwo drauf drückt. Der Code dafür muss nicht effizient sein, weil das gemessen an der Rechenleistung, die insgesamt notwendig ist, um ein Video zu streamen, eh fast nichts ist. Ein anderes Beispiel wäre Machine-Learning. Das wird auch meistens in Python gemacht, der Teil, der richtig viel Leistung braucht, aber in C++.
In anderen Fällen macht der Chef so viel Druck, dass das fertig werden muss, da ist dann auch an den relevanten Stellen keine Zeit mehr für Optimierungen. Oft wird da dann aber auch an der Security gespart. Ist dann halt scheiße für den Nutzer, aber den interessiert es auch oft nicht, weil er gewöhnt ist, so einen Schrott vorgesetzt zu bekommen. Wie z.B. bei so ziemlich allem von Microsoft.
An deiner Internetverbindung oder der Leistung deines PCs.
Googles Server haben genug Power.
Es wird an dir liegen. Youtubes Serverfarmen sind unglaublich mächtig.
Wenn man einfach nur „Leistung verdoppeln“ sagen könnte, klar.
Aber in Realität kostet das exponentiell mehr, sorgt dafür das die nächsten Änderungen sehr viel mehr kosten, und macht auch oft Software fehleranfälliger.
Das lohnt dann irgendwann nicht mehr für das Unternehmen.
Normalerweise nimmst du bestimmte Tradeoffs in Kauf, um die Wartbarkeit und Erweiterbarkeit deiner Software zu erhöhen. 5% weniger Leistung, dafür 15% einfachere Weiterentwicklung.
Wenn du es effizienter bauen willst, musst du oft so bauen, dass der Computer damit besser umgehen kann, Menschen es aber sehr viel schwerer haben es zu verstehen.
Das heißt, dass die Entwickler nächstes mal eher Fehler ausversehen reinbringen, und neue Anpassungen einfach länger dauern und mehr Entwickler brauchen.
Das finden Unternehmen nicht so schön.
Weil Hardware ab einem bestimmten Punkt einfach nicht mehr gut skaliert.
Also in dem Moment, wo du die schnellste Server-CPU hast, kriegst du nicht magisch mehr Leistung, indem du eine zweite kaufst. Du musst dann irgendwie schauen, dass du jede Anfrage irgendwie parallelisiert kriegst. Und das geht nicht unbedingt gut.
Und selbst wenn die mit 50% mehr Ausgaben sogar 50% schneller werden würden (was ich für ausgeschlossen halte) werden trotzdem nicht 50% mehr Leute Youtube schauen. Also das lohnt sich dann immer noch nicht.
Ach so. Das wäre dann vielleicht 10 mal so teuer und 0,5% schneller.
Besseren PC kaufen. Und falls du Windows nutzt, auf Linux wechseln
Das macht die Ausführung von JavaScript auf deinem PC schneller.
- Schnellere Hardware führt den selben Code schneller aus.
- JavaScript auf Linux läuft doppelt so schnell wie auf Windows.
Das ist ja das, was Linux tut. JavaScript ist auf Linux von sich aus schneller, weil das OS besser optimiert ist.
Keine Ahnung. JavaScript ist halt eine Script-Sprache - ich würde eher nicht erwarten, dass sich das großartig von anderen Script-Sprachen unterscheidet. Es wird halt nicht compiliert, sondern läuft in einem Interpreter.
...ein Programm muss doch immer am Limit seiner Leistung laufen.
Das ist Quatsch...
Ich weiß nicht auf welche Art von Software/Programme Du Deine These beziehst .
Gewöhnlich geht es um optimale Funktionalität.
Wenn es um die Steuerung einer Industrieanlagen geht, macht es zB. keinen Sinn die zeitliche Granularität der Mess-/Steuerfunktionen an den oberen Grenzen der Hardware zu implementieren. Stattdessen verwendet man möglichst störunanfällige Timings und redundante Sensorik/Aktoren.
Wenn ich es mal grob schätze, drehten sich ca. 70% des Codes, der von mir entwickelten Steuerung ausschließlich um Fehlererkennung/-behandlung
Was spielen spielen ein paar 10...100Tausend für eine Rolle, wenn durch einen Hard-/SoftwareFehler eine Millonenteure Produktionsanlage zerstört wird? (Mal ganz abgesehen vom Produktionsausfallkosten bis zu Lieferanten/ Kunden)
Du als "Kleinstanwender" siehst lediglich, wenn irgendwo in Deinem popeligen 50€-PipifaxGame mal irgendwo die Framerate etwas wackelt, und jammerst.
Der größte Teil der Programme, welche unsere moderne Welt steuern, wird von niemandem wahrgenommen und ist auf möglichst hohe Unanfälligkeit optimiert.
Wenn Du ihn wahrnimmst, hat irgendwer Mist gebaut oder am falschen Ende gespart.
Also Ich fand Langsamere Software auch immer störanfälliger.
Ich beziehe mich auf Betriebssysteme, Treiber und Spiele
Also Ich fand Langsamere Software auch immer störanfälliger.
Warum?
...Weil Du , um diese Software mit maximaler Leistung zu nutzen, das GesammtSystem mit diversen Tuning/Tweaks zwar ans Limit brachtest. Dies aber auch insgesammt instabiler wurde???
...und natürlich ist der Softwareentwickler der Sündenbock, weil er Deinem ureigenen Murks keine Rechnung trug...
...Weil Du , um diese Software mit maximaler Leistung zu nutzen, das GesammtSystem mit diversen Tuning/Tweaks zwar ans Limit brachtest. Dies aber auch insgesammt instabiler wurde???
Nein
...und natürlich ist der Softwareentwickler der Sündenbock, weil er Deinem ureigenen Murks keine Rechnung trug...
Verstehe ich nicht?
Die Leut wollen einfach ihr Programm haben, solange alle Funktionen klappen und es schnell geht basta, Qualität, Bugs fixen und optimieren ist halt da nicht drin.
Obwohl es oftmals nicht Schaden würde, genau das zu machen.
Der User ist der beta-Tester. Und übers Internet können Bugfixes jederzeit veröffentlicht werden.
Daß tausende von Usern tausende von Stunden dadurch verlieren, interessiert den Software-Anbieter nicht. Hauptsache sein Programmierer war ne Stunde früher fertig.
Daß die Software langsamer läuft, weil sie nicht optimiert ist, tja, das ist auch das Problem des Users - kann sich ja einen schnelleren PC kaufen.
Ich finde das nicht gut, aber so ist es billig.
Bugfixes jederzeit veröffentlicht werden.
Gepaart mit neuen Features und Bugs, was dazu führt das heutzutage sehr viel Software quasi nie finale Versionen erziehlt und instabil läuft
kann sich ja einen schnelleren PC kaufen.
Und dann wird dem gehorsamen Nutzer eigeredet es würde an seiner Rechenleistung liegen
Hauptsache sein Programmierer war ne Stunde früher fertig
Du stellst dir Softwareentwicklung echt komisch vor.
Heutzutage scheint das komisch zu sein.
Zu meiner Programmiererzeit war es jedenfalls anders.
Dann solltest du auch wissen, dass man mit zu viel Optimierung seinen Code extrem schwer zu warten macht.
Ich bin stets interessiert an der seltsamen Vorstellungen von Endverbrauchern. 😏
Der größte Teil meiner Entwicklungsarbeit drehte sich darum idiotisches Verhalten von Bedienpersonal zu kompensieren.
Es wäre der feuchte Traum eines Programmierers einfach über ein Eingabefeld zu schreiben: "Gib einen Wert zwischen 1 und 10 ein" und der Nutzer befolgt dies brav.... Statt dessen muss jede Menge Prüfungen eingebaut werden um unsinnige Handhabung abzufangen.
Der User ist der beta-Tester
Wer sonst?
Kein Entwickler kann alle Systemkonfigurationen eines frei Zusammenstellungen Systems vorhersehen , geschweige denn alle Testumgebung simulieren.
Gerade Gamersysteme entpuppen sich als Bastelkisten, mit offt sehr eigenwilligen bis grenzwertigen Konfigurationen. Es sind in der Regel nicht die Standardsysteme, mit einem "naturbelassenen" Betriebssystem, deren Nutzer sich als "Betatester" fühlen. Ein Normalnutzer installiert eine Software auf seinem Normalsystem und wird in den nächsten 10 Jahren nie einer Fehlfunktion begegnen.
Eine halbe Sekunde kürzere Ladezeiten ist natürlich cool. 30.000€ für eine halbe Sekunde kürzere Ladezeiten ist nicht mehr so cool.
Würdest du es zahlen, aus eigener Tasche? Oder nur die anderen?
Wärst du such bereit, dafür mehr Bugs zu haben?
Ich denk mir auch oft auf der Arbeit, dass man etwas schöner lösen könnte mit etwas mehr Zeit.
Aber wenn die leicht bessere Lösung doppelt so teuer ist, dann will man das halt oft nicht. Kosten und Nutzen.
Wie welche Bugs? Die haben nicht eine bestimmte Farbe oder so.
Stell dir mal vor, du hättest eine Ikea-Anleitung. Und jetzt stellst du das in nur noch 1/3 der Schaubilder dar. Das wird viel anstrengender zu lesen, auch wenn es theoretisch korrekt wär. Du machst Fehler beim Bauen.
Naja, stell dir vor, wir machen Mathe nicht mehr einzeln, sondern wir rechnen jetzt mit zusammengesetzten Zahlen, die mit speziellen CPU-Instruktionen geladen, massenhaft verrechnet und dann wieder entwirrt werden.
Wir sparen uns damit ein bisschen Zeit, aber aus einem einfachen X + Y werden 15 Zeilen. Da macht man vielleicht Fehler.
Stell dir vor, wir finden eine Optimierungsmöglichkeit im Design. Löschen wir jetzt alles, was wir dazu haben, und fangen nochmal komplett von vorn an? Sagen wir mal 100k Euro, einfach weg?
Setzen wir ein Research and Development Team darauf an, das Protokoll leicht zu optimieren, was verwendet wird für die Kommunikation?
Gibt es anstatt einem Dienst jetzt vielleicht 100 kleinere, welche zwar zusammen schneller sind, aber dafür enorm viel Orchestration brauchen, wofür wir erstmal einen ganzen Orchestrator bauen müssen?
Alles möglich. Aber dann bringt unser Produkt nicht mehr Geld ein, sondern wir verlieren Geld. Welche Firma kann so überleben?
Komischerweise hast du darin keine Qualifikation, hast noch nie an einem enormen Softwareprojekt mitgearbeitet, aber weißt es besser, oder?
Firmen wollen dich nicht nur einfach ärgern. Firmen wollen Geld. Das heißt, man findet das Beste Preis-Leistungverhältnis.
Vielleicht hilft dir ja dieses Video.
Klar kann ich mich jetzt hinsetzen und dir verschiedene Beispiele bauen.
Dann zahlst du aber auch meinen normalen Stundensatz, 120€ die Stunde.
Ist es dir das wert? Nein? Siehst du?Guck dir das Video doch wenigstens an, bevor du es verwirfst.
Vielleicht würdest du dann realisieren, dass, wenn Minecraft anders gebaut worden wäre, niemand es je gespielt hätte.
Also bei mir laggt Youtube schrecklich und friert immer ein.