Carbon API

Tarihi

Orijinal Mac OS, Pascal'ı birincil geliştirme platformu olarak kullandı ve API'ler Pascal'ın çağrı anlambilimine dayanıyordu.  Macintosh Toolbox Araç Kutusunun çoğu, Pascal'ın değişken kayıt konseptine dayanan çeşitli veri yapıları kullanarak API ve program arasında bilgi ileri geri ileten prosedür çağrılarından oluşuyordu.
Zamanla, Mac'te, özellikle Pascal'da Object Pascal kütüphanesi MacApp ve THINK C Library'de (TCL) ve daha sonra MacApp ve CodeWarrior PowerPlant'ın C ++ sürümlerinde sürümlerinde Mac üzerinde bir dizi nesne kütüphanesi gelişti.  1990'ların ortalarına gelindiğinde, Mac yazılımlarının çoğu C ++ ile CodeWarrior kullanılarak yazılmıştır.
Orijinal Mac OS, Pascal'ı birincil geliştirme platformu olarak kullandı ve API'ler Pascal'ın çağrı anlambilimine dayanıyordu.  Macintosh Araç Kutusunun çoğu, Pascal'ın değişken kayıt konseptine dayanan çeşitli veri yapıları kullanarak API ve program arasında bilgi ileri geri ileten prosedür çağrılarından oluşuyordu.

Rhapsody

NeXT'nin 1996 yılının sonlarında satın alınmasıyla Apple, büyük ölçüde mevcut OpenStep platformuna dayanan yeni bir işletim sistemi stratejisi geliştirdi.  Yeni Rhapsody nispeten basitti;  OpenStep'in mevcut nesne kitaplıklarının çoğunu "Yellow Box" adı altında, OpenStep'in mevcut GUI'sini barındıran ve daha fazla Mac benzeri görünmesini sağladı, Mac OS'den birkaç büyük API'yi Rhapsody'nin temelindeki Unix benzeri sisteme (özellikle QuickTime ve AppleSearch'e) taşıdı.  ve mevcut Mac OS yazılımını çalıştıran "Blue Box" olarak bilinen bir öykünücüyü ekledi.
Bu plan 1997 yılında Apple Worldwide Developers Conferencede açıldığında, kod tabanlarının etkili bir şekilde güncellenmesi muhtemel olmayan bir emülatöre kilitleneceği için üzülen mevcut Mac OS geliştiricilerinden bir miktar geri dönüş vardı. Microsoft ve Adobe gibi daha büyük geliştiriciler tamamen düpedüz kaldı ve mevcut Mac OS'den çok farklı olan veya uyumsuzluğun çok az olduğu OpenStep'e taşınmayı düşünmeyi reddetti.  .
Apple bu endişeleri kalbe aldı.  Steve Jobs bu değişikliği 1998 WWDC'de duyurduğunda, "geliştiricilerin gerçekten istediği şey Mac OS'nin modern bir sürümü olduğunu ve Apple'ın bunu sunacağını" belirtti.  Açıklama, gök gürültülü alkışlarla karşılandı.  Orijinal Rhapsody işletim sistemi konsepti sonunda 1999'da türünün tek sürümü olan mac OS X Server 1.0 olarak piyasaya sürüldü.

Cocoa ve Carbon

Apple, mevcut Mac OS kod tabanları için gerçek ve iyi desteklenen bir yükseltme yolu sunmak için Carbon sistemini tanıttı.  Carbon, Mac benzeri bir API sunan, ancak öykünme içinde çalışan Mac işletim sisteminin bir kopyası yerine, altında yatan Unix benzeri işletim sisteminin üstünde çalışan birçok kitaplık ve işlevden oluşur.  Carbon kütüphaneleri kapsamlı bir şekilde temizlenir, modernize edilir ve daha iyi "korunur".  Mac OS veri iletmek için hafızayı paylaşan API'lerle doluyken, Carbon altında bu tür tüm erişim opak veri türlerinde erişimci alt yordamları kullanılarak yeniden uygulandı.  Bu, Carbon'un gerçek çoklu görev ve hafıza korumasını desteklemesini sağladı; Mac geliştiricilerin on yıldan beri talep ettiği özellikler idi.  Önceden var olan API’deki diğer değişiklikler, kavramsal olarak Mac OS X’le uyumlu olmayan ya da sadece eski olan özelliklerden kaldırıldı.  Örneğin, uygulamalar artık kesme kotarıcı veya aygıt sürücüsü yükleyemedi.
Carbon'ı desteklemek için tüm Rhapsody modeli değişti.  Rhapsody etkin bir öykünücüyle etkin bir şekilde OpenStep olurken, yeni sistemde hem OpenStep hem de Carbon API mümkün olduğunda ortak kodu paylaşacaktır.  Bunu yapmak için, OpenStep sisteminin alt seviyelerinden, Objective-C dilinde yazılmış ve Foundation olarak bilinen yararlı kod bitlerinin çoğu saf C'de yeniden uygulandı. CF çağırmak için gösterilen "Yellow Box"'un bir versiyonu yeni Cocoa API'sine dönüştü ve Mac benzeri Carbon çağrıları da aynı işlevleri çağırdı.  Yeni sistemde, Carbon ve Cocoa eşlerdi.  Bu dönüşüm normal olarak, temel C kütüphanelerine çağrılan nesne metotları olarak Cocoa performansını yavaşlatırdı, ancak Apple bu etkiyi azaltmak için ücretsiz köprüleme olarak adlandırdıkları bir teknik kullandı.
Bu dönüşümün bir parçası olarak, Apple, grafik motorunu lisanslı Display PostScript'ten lisanssız Quartz'a ("Ekran PDF" olarak adlandırılır) aktardı. Quartz, hem Carbon hem de Cocoadan kullanılabilecek doğal çağrılar sağlamanın yanı sıra Java 2D benzeri arayüzler de sundu.  Altta yatan işletim sisteminin kendisi daha da izole edildi ve Darwin olarak serbest bırakıldı.

Serbest bırakma ve evrim

1997 yılında, Mac OS 8.1 ile geriye dönük olarak uyumlu paylaşılan bir kütüphane olarak, Carbon 2000 yılında eksik olarak tanıtıldı.  Bu sürüm, geliştiricilerin bu programların mevcut Mac OS makinelerinde çalışabilme yeteneğini kaybetmeden kodlarını Carbon'a aktarmalarına izin verdi. Resmi Mac OS X desteği, 2001'de yeni işletim sisteminin ilk halka açık sürümü olan Mac OS X 10.0'ın piyasaya sürülmesiyle geldi.  Carbon, Mac OS X'in ilk sürümlerinde neredeyse tüm büyük yazılım evleri tarafından Apple tarafından bile kullanıldı. Örneğin, Finder, 2009 yılında yalnızca Mac OS 10.6'nın (Mac OS X Snow Leopard) piyasaya sürülmesiyle Cocoa'ya taşınan, uzun yıllar boyunca bir Carbon uygulaması olarak kaldı.
26 Ekim 2007'de yayınlanan Mac OS X Leopard (Mac OS X v10.5) ile başlayan 64 bit Macintosh uygulamalarına geçiş, Carbon için ilk büyük kısıtlamaları getirdi. Apple, 64-bit ortamdaki Macintosh grafik kullanıcı arayüzü ile C programlama dili arasında uyumluluk sağlamaz; bunun yerine, Cocoa API ile Objective-C lehçesi kullanılmasını gerektirir. Birçok yorumcu bunu Carbon'un nihai ortadan kaybolmasının ilk işareti olarak gördü, Apple, Carbon sistemine yeni önemli bir ilaveler eklenmeyeceğini söylediğinde yeniden uygulanan bir pozisyondu ve 2012'de değer düşüklüğü ile daha da güçlendirildi.

Cocoaya Geçiş

Cocoa'nın öngörülen avantajlarına rağmen, büyük miktarlarda eski kodun yeniden yazılması ihtiyacı, Nisan 2010'da sonunda Cocoa'ya güncellenen ünlü Adobe Photoshop ile olan Carbon tabanlı uygulamaların geçişini yavaşlattı. iTunes ve Final Cut Pro (ayrıca QuickTime motorundaki güç veren özellikler gibi) yazılım paketleri de yıllarca Carbon'da yazılı kaldı. Hem iTunes hem de Final Cut Pro X, Cocoa sürümlerinde piyasaya sürüldü.

Karşı koyma

2012'de, OS X 10.8 Mountain Lion'un piyasaya sürülmesi ile çoğu Carbon API'si kullanımdan kaldırılmıştır. API'lar geliştiricilere hala erişilebilir durumda ve tüm Carbon uygulamaları çalışacak, ancak API'ler artık güncellenmeyecekdir. 28 Haziran 2017'de, Apple, MacOS için tüm Carbon uygulamaları gibi 32 bit yazılımların, macOS High Sierra'dan sonra macOS sürümlerinde artık “ödün vermeden” desteklenmediğini açıkladı. macOS Catalina, 32-bit uygulamalar için desteği resmi olarak kaldırır ve bu nedenle tüm Carbon uygulamaları artık desteklenmez.