[英]difference between carbon and cocoa?
碳和可可有什么區別? 對於我們應該使用碳的什么類型的應用以及我們應該使用可可的應用類型? 哪個是在Mac OS中開發應用程序的最佳選擇?
簡短回答:對於新的應用程序,請使用Cocoa。 一些遺留代碼可能仍然使用Carbon,如果您不需要任何新功能,它將繼續工作。
Cocoa有一個Objective-C API,可以輕松地從C和C ++代碼訪問。 Carbon是一種純C API。 許多其他流行語言都有Cocoa和Carbon綁定,但通常有一些限制。
在20世紀80年代早期,Carbon是從原始Apple Macintosh(和Apple Lisa)的原始API發展而來的。 具體來說,當Mac OS X發布時,Apple無法支持一些傳統的Mac OS API功能,但提供了一個名為“Carbon”的傳統API子集,以簡化那些擁有Mac OS X前應用程序的開發人員的過渡。 他們添加了數以千計的新API,並且在最近最終棄用它之前,繼續全面支持Carbon幾年。 他們總是說Carbon是一個死胡同,所有的開發者都應該轉向Cocoa。
Cocoa已經從Apple收購並用作創建Mac OS X的基礎的NextStep框架發展而來。它是Mac OS X的“原生”API,也是訪問某些最新功能的唯一途徑。
創建Carbon是為了方便Mac OS 8和9的移動。如果您的代碼需要在OS 8或9下運行,那么Carbon就是您的選擇。 ( 來源 )
但是,如果您的軟件是為OS X設計的,那么您應該強調Cocoa over Carbon。
不推薦使用Carbon(它不會,也不會存在於64位)。
對於新的應用程序開發,使用Cocoa(我說的是本機OS X應用程序開發的Apple-sactioned方式。顯然存在其他替代選擇,例如Java,Python,Ruby等,根據您的項目類型,這可能是有效的,如果不需要本機UI)
這取決於您要開發的應用程序的范圍和功能。 我將構建一個利用MacInTalk功能和新的OSX 10.7國際語音集的應用程序。 官方文檔指出僅在Carbon API下提供微調,而Cocoa API更受限制。
具體來說,這些語音通道設置可通過API中的API進行更改:速率,音調,音調調制和音量屬性。 這種可能性似乎無法通過Cocoa獲得。
另外,語音合成編程指南的最新文檔可以追溯到2006年,可能是Cocoa訪問相同功能的情況,但尚未記錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.