flaphoschi schrieb:
Microsoft wirft dagege nie etwas weg. Die ABI und API bleibt, bei Toolkits wird alle paar Jahre ein neues als letzte Lösung vermarktet und die alte Version einfach nicht mehr geändert
Na ja, nie etwas wegwerfen stimmt da nicht so ganz. Mit "NT" allgemein hat man ja mit der Kompatiblität zu den "DOS"-Versionen gebrochen.
Und was gewisse Treiber angeht usw ist Microsoft auch schnell dabei mal Änderungen zu machen, die da durchaus auch kritischer Natur sind, dass dann nichts mehr geht.
Die Probleme bei Microsoft sind da zum Teil eher etwas anders gelagert und auch weitgreifender. Microsoft versucht ja erst jetzt wirklich eine saubere und umfassende API für die Softwareentwicklung bereit zustellen mit der Verschmelzung aus Win32-API und WinRT-API.
Apples "gnadenloser" Umgang mit Balast ist auch primär dem Lehrgeld geschuldet, dass Apple in Ende der 80er und auch Anfang der 90er zahlen musste und das auch fast zur Insolvenz geführt hätte. Man hatte in den 80er und 90er auch bei Apple stark auf Kompatiblität geachtet und hat sich damit in eine Entwicklungssackgasse geführt - die Geschichte um Mac OS 8 und 9 - und hatte gleichzeitig auch das Problem damals mit dem ersten großen Architekturwechsel von 68k auf PowerPC. Apple hat damals gemerkt, wie wichtig eine saubere und auch umfassende API für ein Betriebsystem ist, damit man Plattformabhängigen-Code aus Programmen weitgehend verbannt und diesen nur noch an ein paar Stellen des Betriebssystems anpasst.
Genauso verhält es sich mit alten Bestandteilen, die man nicht mehr "benötigt" und da kommt halt auch die doch sehr gute Cocoa-API und die anderen APIs von Darwin und MacOS zu tragen: Wenn man Cocoa, Metal und Co verwendet, dann reicht in der Regel bei einem Programm das erneute kompilieren und man kann locker zwischen x86 und AArch wechseln, genauso wenn sich was im Betriebssystem ändert was die Arch angeht, in der Regel reicht einfach ein neues kompilieren, weil die Anpassungen durch Apple in Darwin, iOS, iPad OS oder MacOS vorgenommen werden.
flaphoschi schrieb:
Bei Linux rastet Torvalds regelmässig - zu recht - aus, wenn jemand die Rückwärtkompatiblität bricht.
Nicht ganz richtig, nicht ganz falsch.
Es kommt darauf, über was wir sprechen. Geht es um den Linux-Kernel, hast du recht, da wird auf eine gewisse Rückwärtskompatiblität geachtet, aber im Kernel eine gewisse Kompatiblität zu bewahren ist ein Stück einfacher, als dann im ganzen OS.
Das merkt man schnell, wenn man Programme zwischen verschiedenen Distrubitionen hin und her schieben will und wenn dann etwas nicht funktioniert. Für Proramme und Co muss mann dann oft sehr wohl noch mal einen Kompiler anwerfen und erneut kompilieren, damit es funktioniert.
Man kann ein "OS" auf Linux-Basis so zusammen bauen, das "x11" nioch funktioniert, genauso kann ich es aber auch bauen, dass es nicht mehr geht. Kommt halt darauf an, was man dann wegwerfen will und nicht.