Mac OS und Abwärtskompatibilität

F

Farfalloni

Mitglied
Thread Starter
Dabei seit
19.10.2008
Beiträge
89
Reaktionspunkte
0
Hallo,
ich würde gerne wissen, weshalb die Abwärtskompatibilität bei Mac OS teilweise stark eingeschränkt ist. Mir geht es also nicht um eine Bewertung dieser Tatsache, sondern um die technischen Gründe hierfür. Wenn man bedenkt, dass manche Software sehr teuer ist, so kann es ja ein entscheidender Nachteil sein, wenn diese auf einem aktuellen Betriebssystem nicht mehr läuft.
 
Und deswegen gibt es von den Herstellern dieser Software ja auch in der Regel Softwareupdates, die dann mit den neuesten Bestriebssystemen laufen. ;)
 
  • Gefällt mir
Reaktionen: Farfalloni
ist aber bei Microsoft nicht viel anders, denke ich... Wenn es um die Abwärtskompatibilität der Software geht, wende dich an den Hersteller.... wie ekki hier schon angedeutet hat...
 
  • Gefällt mir
Reaktionen: Farfalloni
da werden halt APIs, frameworks usw geändert oder fallen weg.
oder sogar ein bug oder security fix in system routinen.
daher läuft manche software nicht mehr oder anders als erwartet...
 
  • Gefällt mir
Reaktionen: Farfalloni
Danke für die Antworten. Man kann als Entwickler ja durchaus mehr oder weniger plattformunabhängig programmieren, aber lässt sich bei der Verwendung von Frameworks wie wxWidgets oder Qt gezielt Einfluss darauf nehmen, dass die Software auch auf älteren Mac OS Versionen läuft? Anders ausgedrückt: Weiß man als Programmierer genau, welcher Code mit welchem Betriebssystem bzw. welcher Mac OS Version kompatibel ist, so dass es möglich ist, Funktionalität, die nicht wichtig ist, aber ggf. Inkompatibilität erzeugt, wegzulassen oder umzuschreiben?
 
Wieso sollte man als Programmierer Qt benutzen wollen, wenn man Cocoa haben kann? (masochistische Neigungen mal aussen vor)

Wenn man die hauseigenen Frameworks benutzt weiss man allerdings schon ziemlich genau, welcher Code auf welcher OS-Version läuft oder eben auch nicht.
 
ist aber bei Microsoft nicht viel anders, denke ich...

Schon wieder so ein Argument :rolleyes:

Fakt ist, dass bei Apple - aus welchem Grund auch immer - die Abwärtskompatibilität wirklich besch... ...eiden ist. Das muss man nicht mit Vergleichen schönreden.

Nehmen wir iTunes. Versuch mal, die neuste Version auf OSX Tiger zum Laufen zu bringen. Geht nicht - es funktioniert aber unter Windows XP.
XP wurde 2001 veröffentlicht, Tiger aka 10.4 im Jahr 2005.
 
aber lässt sich bei der Verwendung von Frameworks wie wxWidgets oder Qt gezielt Einfluss darauf nehmen, dass die Software auch auf älteren Mac OS Versionen läuft? Anders ausgedrückt: Weiß man als Programmierer genau, welcher Code mit welchem Betriebssystem bzw. welcher Mac OS Version kompatibel ist, so dass es möglich ist, Funktionalität, die nicht wichtig ist, aber ggf. Inkompatibilität erzeugt, wegzulassen oder umzuschreiben?

geht auch nur bedingt, weil du ja gegen die älteren OS X SDKs linken musst und apple ja einem das nicht leicht macht mit neuen Xcode versionen für die neuen OS X versionen.
da muss man noch eine ältere OS X version bzw gleich einen alten mac oder eine VM...
 
Apple will sich nicht zuviel mit Systempflege rumschlagen denke ich. Die haben einfach keinen Bock 3 Systeme gleichzeitig zu warten. Mir gefällt das auch nicht und in dem Rythmus, in dem Apple anscheinend nun Betriebssysteme raushaut ist es zudem nervig, sobald man einen neuen Mac kauft, der dann nur mit dem neuen OS läuft. So ging es mir. eine dämliche Strategie.
 
  • Gefällt mir
Reaktionen: Retnueg
apple ist halt ein hardware-software-hersteller. wie verkaufe ich mehr hardware? in dem die software auf der älteren kiste nicht mehr läuft!
diese ganzen G4 die noch als server irgendwo laufen, fürchterlich - wie kann man nur hardware aus dem letzten jahrtausend einsetzen?

- sarkasmus off

wenn du deine "alte" hardware immer noch gut nutzen möchtest, dann versuche einfach mal win7 oder ein modernes linux auf die hardware zu zaubern - du hast dann übrigens den effekt, dass deine hardware so schnell wie noch nie läuft. schon merkwürdig, dass bei einem test auf einem imac27 win7 und ubuntu wesentlich schneller liefen als osx, ca. 20% war das schneller bei meinen tests.

worum es apple geht? geld.
der kunde ist seit geraumer zeit schnuppe
 
  • Gefällt mir
Reaktionen: Retnueg
Ich bin mir nicht ganz sicher.

Apple hat vor einiger Zeit das Paradigma für den Support von alten OS (X und iOS) geändert. Dadurch ist es für Entwickler unattraktiver geworden, Software für alte OS Versionen zu entwickeln.

Früher habe ich mal Software geschrieben, die von OS X 10.2 (PPC) bis OS X 10.5 (Intel) lief. Das war jetzt nicht vollkommen ohne Aufwand (Apple hat da zwischendurch die ABI für gcc geändert), aber es ging.

Heute würde ich das nicht mehr machen, weil es zu viel Aufwand ist. Es gibt "Feature Requests", die Unterstützung alter OS Versionen wieder einfacher zu machen, aber ich bin nicht sicher ob, und wann das kommt.

Wenn Dich Details interessieren, frag einfach nach.

Gruss

Alex
 
Wenn man ernsthaft programmiert, benutzt man die Toolbox oder dukumentierte Routinen.

Dass bei diesen im Laufe der OS-Evolution auch mal was wegfällt und Neues dazu kommt ist doch normal.

Bei den Menschen gibts ja auch keine Kiemen mehr.
 
Wenn man ernsthaft programmiert, benutzt man die Toolbox oder dukumentierte Routinen.

Dass bei diesen im Laufe der OS-Evolution auch mal was wegfällt und Neues dazu kommt ist doch normal.

Ja, sicher. Aber was genau willst Du damit sagen?

Alex
 
Guude,
Früher habe ich mal Software geschrieben, die von OS X 10.2 (PPC) bis OS X 10.5 (Intel) lief. Das war jetzt nicht vollkommen ohne Aufwand (Apple hat da zwischendurch die ABI für gcc geändert), aber es ging.
was ist denn ABI für gcc ?

Regards,
buk
 
Wer unter Mac OS programmiert kann sich doch Prima an die Doku halten. Es ist halt nur einen Heiden Aufwand. Ich hab letzt noch ein Programm geschrieben, dass für 10.4-10.8 laufen sollte. Was man da für 10.4 noch für Klimmzüge machen muss und in 10.8 mit links zu stemmen ist. Als Beispiel sei mal nur die for each Object in Array-Loop genannt. Von Threading und Co fang ich da erst mal gar nicht an (Ein Königreich für GCD unter 10.4...*heul*)
 
Wer unter Mac OS programmiert kann sich doch Prima an die Doku halten. Es ist halt nur einen Heiden Aufwand

Herzlichen Glückwunsch, wenn das Dein Problem ist.

Was ich deutlich unangenehmer finde ist die Tatsache, dass Apple es heute extrem schwierig macht, zur Compilezeit zu prüfen, ob ich SDKs verwende, die in meinem Minimum Deployment Target nicht unterstützt werden.
Klar, dass kann ich alles lesen, aber im Gegensatz zu Dir vergesse ich beim Tippen dann doch mal, dass UIPageViewControllerOptionInterPageSpacingKey erst ab iOS 6 verfügbar ist.

Und diese Fehler werden nicht angezeigt, sondern zur Laufzeit stürzt der Code einfach gnadenlos ab.

Früher war es sehr einfach, auch testweise einfach mal gegen ein altes SDK zu bauen und zu kucken, was nicht passt. Und heute ist es mir schleierhaft, warum clang die NS_AVAILABLE Macros nicht auswertet, wenn sie vorhanden sind.

Alex
 
OK, ich schreib auch noch unter Xcode 3.1 und nutze kaum Xcode 4. Von daher vermag ich das Verhalten nicht zu sagen. Außerdem schreib ich nur für Mac OS, nicht für iOS. Auch hier fehlt mir Erfahrung aber ich schrieb ja, dass es enormer Aufwand sei. ;)
 
OK, ich schreib auch noch unter Xcode 3.1 und nutze kaum Xcode 4.

Das erklärt Deine Antwort. Bei Xc3 ist es leicht: Du stellst Dein Base-SDK auf 10.4, und gut is. (Aber damit kannst Du dann kaum ein Programm schreiben, das explizite 10.8 Features hat. )

Mit Xc4 musst Du Dein Base SDK mindestens auf 10.7 stellen — oder irrsinnige Klimmzüge machen.

Alex
 
Zurück
Oben Unten