Tims Katze schrieb am 24.05.2016 13:36:
Nein, man muss es sich leisten können!
Siehe mein Punkt 2) ... War bereits in der Diskussion enthalten.
Das macht Applikationen vielleicht unnötigerweise etwas gröĂer, aber nicht langsamer. Die Alternative wĂ€re ja, viele RĂ€der wieder neu zu erfinden und im Gegensatz zu vor 35 Jahren gibt es heute verdammt viele RĂ€der.
Ressourcenschonung bezieht sich nicht allein auf CPU-Zyklen. Einer der Punkte, den andere Foristen anfĂŒhrten, war insbesondere auch die enorm gestiegene ProgrammgröĂe.
Weiterhin war der von Dir selbst angefĂŒhrte Punkt, dass die gesteigerte Ressourcennutzung eine direkte Folge der heute geforderten PortabilitĂ€t und Wartbarkeit ist. Dem ist beileibe nicht so.
Ich halte von Javascript eh nichts (und von Fefe noch weniger, da er meint, zu jedem Thema eine Meinung haben zu mĂŒssen).
Das tut nichts zur Sache, was Du von Javascript und Fefe hĂ€ltst. Der Punkt war, dass Leute sich heute -- sei es aus welchen GrĂŒnden auch immer -- gerne auf eine Vielzahl von Bibliotheken stĂŒtzen.
Ob das Kind dabei Javascript, Python oder C(++) heiĂt, ist dabei unerheblich.
Die Frage, die man sich dabei stellen sollte, ist, ob es einen wirklich -- auch langfristig -- weiterbringt, sich hier in eine AbhÀngigkeit zu begeben.
Wenn es sich um etwas wie z.B. die fftw handelt oder irgendwelche GUI/Widget-Geschichten ist klar, dass man das nicht nachprogrammieren will (wozu auch).
Wenn es sich jedoch um trivialere Geschichten handelt (daher das Extrembeispiel node.js, wo Leute einfache min/max-Funktionen oder rechtsbĂŒndiges Drucken einbinden), gibt es schlicht keinen Grund, sowas zu tun.
Das ist doch KĂ€se und nĂ€hrt doch nur diese "FrĂŒher waren Programmierer noch echte Kerle"-Legenden. In den 90ern mag das vielleicht so gewesen sein, dass Entwickler deutlich mehr Rechenpower als ihre Kunden hatten, aber heute ist das eher andersrum. Es fĂ€llt den Entwicklern schon auf, wenn irgendwelche FlaschenhĂ€lse auftauchen.
Ich habe nicht behauptet, dass Entwickler deutlich mehr Rechenleistung als ihre potentiellen Kunden unter den Fingern hatten.
Ich habe gesagt, dass die Einstellung, dass es sich nicht rechnet, nennenswert Zeit auf Optimierung zu verwenden, aus dieser Zeit stammt.
Eben genau das kaufmĂ€nnische Prinzip, das Du eingangs in dieser Replik angefĂŒhrt hast.
Nur: Diese Zeit ist eben vorbei. Heute gibt's kein "free lunch" mehr. Diese Erkenntnis muss allerdings auch (endlich wieder) im Controlling ankommen, welches letztendlich die Programmierer an der Optimierungsphase hindert (bzw. ĂŒberhaupt die Zeitfenster fĂŒr eine ordentliche Anwendungserstellung zu knapp fasst).
Gehirnschmalz investieren bedeutet auch: Multithreading nur dort einzusetzen, wo es auch Sinn macht. Je abhÀngiger diverse Threads voneinander sind, desto schwieriger wird es, StabilitÀt und Determinismus zu garantieren.
Richtig. Und dort, wo es nicht geht und man in der SequentialitĂ€t gefangen bleibt, muss man eben wieder -- wie frĂŒher -- ĂŒberlegen, ob man den Kram nicht doch effizienter implementieren kann.
Ich habe nichts dergleichen behauptet.
Ich zitiere aus Deinem Ursprungsbeitrag:
Es ist heute weder möglich noch gewĂŒnscht, dass Applikationen die Hardware direkt ansprechen und somit "optimiert" sind. Hacks, die damals fĂŒr Performance und tolle Aha-Effekte sorgten, sind heute schon aus SicherheitsgrĂŒnden nicht erlaubt.
Dass heute einige Programme behÀbig wirken, hat weniger mit den Leistungen des Entwicklers zu tun, sondern hÀufig mit den Bibliotheken, die er nutzt und den Systemeigenschaften, mit denen er zu kÀmpfen hat. PortabilitÀt, StabilitÀt und Wartbarkeit haben ihren Preis.
PortabilitĂ€t, StabilitĂ€t und Wartbarkeit sind eben *nicht* identisch zu "ich zieh mir das aus irgendwelchen Bibliotheken" (was letztendlich nur heiĂt, dass Du die Wartung an andere abtrittst -- und damit ggf. diesen hinterherlaufen musst, wenn sich die API Ă€ndert).
Auch ist die BehĂ€bigkeit der Programme mitnichten den heutigen Betriebssystemen geschuldet. Sicherlich gibt es Entwurfsfehler (wie z.B. die seinerzeit festgenagelte AudiopuffergröĂe bei Android, weswegen es vernĂŒnftige Audio-Apps nur fĂŒr iOS gab), aber die sind in ihrer Zahl gering genug, keine Rechtfertigung fĂŒr behĂ€biges Programmverhalten zu sein.
Sicherlich gibt es auch gewisse Ănderungen am Unterbau, so dass z.B. aufgrund von Latenzen Echtzeitverhalten mit modernen Betriebssystemen i.a. nicht in der Form möglich ist wie frĂŒher, als die Anwendung direkt an den Interrupts hing.
Aber auch das hat mit BehÀbigkeit oder genereller Ressourcenverschwendung nichts zu tun.