碳和可可之间有什么区别?

8

碳和可可有什么区别?我们应该在哪些应用程序中使用碳和在哪些应用程序中使用可可?在Mac OS上开发应用程序,哪一个更好?


3
这个帖子可能有你正在寻找的答案:http://stackoverflow.com/questions/151711/carbon-vs-cocoa-is-carbon-a-dead-end-with-os-x - Stephen Jennings
4个回答

16

简短回答:对于新的应用程序,请使用Cocoa。一些遗留代码可能仍在使用Carbon,如果您不需要任何新功能,则它将继续工作。

Cocoa具有Objective-C API,并且可以轻松地从C和C ++代码中访问。Carbon是一个纯C API。许多其他流行语言都有Cocoa和Carbon绑定,但通常存在某些限制。

Carbon是从早期的Apple Macintosh(和Apple Lisa)的原始API发展而来。具体而言,当Mac OS X发布时,苹果无法支持一些旧版Mac OS API函数,但提供了一个名为“Carbon”的遗留API子集,以便为那些拥有Mac OS X之前应用程序的开发人员过渡。他们添加了数千个新API,并继续全面支持Carbon多年,最近才废弃它。他们一直说Carbon是一条死路,所有开发人员都应该转向Cocoa。

Cocoa是从苹果收购并用作创建Mac OS X基础的NextStep框架进化而来。这是Mac OS X的“本地”API,并且是访问一些最新功能的唯一方法。


10

Carbon技术的出现是为了方便在Mac OS 8和9之间进行转换。如果您的代码需要运行在OS 8或9上,那么Carbon是正确的选择。(来源

然而,如果您的软件是为OS X设计的,那么应该优先考虑使用Cocoa技术。


4

Carbon已经作废(它在64位系统中不存在,也不会存在)。

对于新应用程序开发,请使用Cocoa(我指的是符合Apple标准的本地OS X应用程序开发。当然,如果您的项目类型不需要本地UI,则可以选择其他替代方案,例如Java、Python、Ruby等)。


7
Cocoa和Carbon是API,不是编程语言。Java、Python和Ruby不是Cocoa的“替代品”。虽然有一些严重的注意事项,但你可以从这三种语言中访问Carbon和Cocoa。 - dmazzoni
2
从来没有说过Cocoa和Carbon是编程语言。此外,如果您的项目不需要本地用户界面,Java、Python和Ruby肯定是Cocoa应用程序开发的替代方案。我的观点是,根据他的项目类型,还有其他选择。 - wadesworld
2
@Wade 你仍然混淆API和语言。虽然Cocoa确实最适合使用Objective-C,但Java、Python和Ruby也都可以访问它。它们不是Cocoa的“替代品”。 - phoebus
1
什么?Cocoa是Objective-C API,而不是Java、Python或Ruby API。它是用Objective-C编写的,并且与Objective-C一起使用。虽然可以通过桥接从其他语言中使用它,但这更像是那些语言和Objective-C之间的桥梁,而不是特定于Cocoa的桥梁。所有这些语言都是通过Objective-C来使用Cocoa API的,它们与Objective-C在Cocoa API方面并不等同。 - Adrian
2
大家好,我非常清楚Cocoa和编程语言之间的区别。我只是不想写一篇论文而已。我的观点是,在苹果认可的方式下进行本地应用程序开发时,请使用Objective-C和Cocoa。如果您的需求不同,Java、Ruby或Python可能会解决您的问题。我不希望原帖发布者认为Obj-C/Coca是解决问题的唯一方法。更明确地说,例如Python和Ruby有访问Cocoa的方法。 - wadesworld

0

这取决于您要开发的应用程序的范围和功能。我将构建一个利用MacInTalk功能和新的OSX 10.7国际语音集的应用程序。官方文档指出,只有在Carbon API下提供了微调,而Cocoa API则更为有限。

具体来说,这些语音通道设置可以通过Carbon API进行更改:速率、音高、音高调制和音量属性。这种可能性似乎在Cocoa中不可用。

顺便说一句,最新的Speech Synthesis Programming Guide文档可以追溯到2006年,也许Cocoa对相同功能的访问已经存在,但尚未记录。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接