Spekulationen zum fehlenden Carbon-Framework in "Snow Leopard"
Gestern Abend kamen Gerüchte von ArsTechnica auf, dass Apple auf der Keynote zur World Wide Developer Conference am Montag einen ersten Ausblick auf Mac OS X 10.6, Codename "Snow Leopard" geben wird. ArsTechica berichtete, dass Apple das Carbon Framework in dieser Version nicht mehr unterstützten würde.
Zuerst:
Was genau ist das Carbon Framework? Als Apple mit der Entwicklung von Mac OS X aus dem NeXTStep-Betriebssystem begonnen hat, tat sich eine große Hürde auf: Mac OS 8/9 unterscheidet sich von den Programmier-Schnittstellen und vom internen Aufbau her sehr stark von Mac OS X. Programme, die für Mac OS 8 geschrieben wurden, können nicht ohne weiteres unter Mac OS X nativ ausgeführt werden, da diese mit vielen Technologien wie zum Beispiel Speicherschutz oder präemptiven Multitasking nicht vereinbar sind.
Natürlich konnte Apple auch nicht einfach allen Entwicklern zumuten, die Programme in Cocoa (damals noch Yellow Box) in einer neuen Sprache (Objective-C) nachzuprogrammieren. Daher musste ein Framework her, welches den Übergang erleichtert. Das Carbon Framework ist im Grunde die alte Mac OS Toolbox aus System 7/Mac OS 8. Alle Funktionen, die mit den neuen Technologien aus Mac OS X nicht vereinbar sind, wurden geändert oder weggelassen. So konnten Entwickler mit geringem Aufwand (je nach Anwendung!) Programme für Mac OS X lauffähig machen.
Ursprünglich war also
Carbon nur als Übergangs-Framework gedacht, um für ältere Programme eine Portierung auf das neue System zu ermöglichen.
Würde Apple das Carbon Framework nicht mehr unterstützen, wäre die einzige Möglichkeit, Mac OS X-Anwendungen zu schreiben, das Apple Cocoa-Framework und Objective-C (neben der wenig komfortablen Möglichkeit, direkt die Grundlage beider Frameworks zu benutzen, die Core Foundation). Schon mit Mac OS X 10.5 wurde die Java-Cocoa-Bridge nicht mehr unterstützt, mit der sich in Java Cocoa-Anwendungen schreiben ließen.
Den Software-Markt für Mac OS X würde diese Entscheidung gehörig aufmischen. Viele ältere Anwendungen wurden mit Carbon portiert und sind heute noch im Einsatz. In den meisten Feldern gibt es zwar mittlerweile auch Cocoa-Programme, diese müsste sich der Anwender aber kaufen.
Auch Cross-Plattform-Anwendungen werden gerne mittels Carbon auf dem Mac lauffähig gemacht, da die Carbon-Programmierschnittstelle in C/C++ geschrieben ist.
Fazit: Zum einen wäre es für Apple sinnvoll, nur ein Framework für die Entwicklung von Mac OS X-Anwendungen anzubieten, um das System sauber zu halten. Schon auf dem iPhone gibt es nur Cocoa (Touch), dort wurde komplett auf Carbon verzichtet, wie auch auf einige weitere Frameworks. Der Kehrseite der Medaille ist, dass Apple damit einigen Softwareschmieden vor den Kopf stoßen würde, deren Anwendungen noch in Carbon geschrieben wurden.