为什么Apple决定将Objective-C用于iPhone SDK而不是C++?
我觉得他们不会选择比Objective-C更受欢迎的语言,这似乎很奇怪.是因为想要在他们的应用程序中拥有一些独特的东西吗?
Apple在90年代与NeXT合并,Mac OS X由NeXT的操作系统NeXTSTEP制作.Objective-C是NeXTSTEP应用程序框架的官方语言,后者成为Mac OS X的Cocoa.Mac OS X随后被改编为iPhone OS,Cocoa被改编成Cocoa Touch.Objective-C在整个过程中表现得相当不错,很多Cocoa的功能很难转化为C++.
基本上,这一切都来自NeXT.
Objective C开始于1983年,我相信是由Brad Cox和Tom Love创建的.Objective-C的想法是采用C的纯度和低级控制,并将其与真正的面向对象的功能合并,这将允许公司定制可以与Obj-C的OOP层通信的系统库.基本上,它有效.Obj-C是C的严格超集,不像C++,它是C的大部分,但有许多不同之处.
当史蒂夫乔布斯创立NeXT计算机(1985年)时,他带来了他的一些前苹果团队和其他人.他最好的程序员有兴趣使用扩展C语言,具有相同的速度优势和系统控制.他们选择了Objective-C.NeXT最终为基本语言编写了许多库和方法.这些都以NS为下一步开始.这是NeXT OS的名称.到1989年,Next Step OS被认为远远优于MS Windows或Mac OS,许多计算机公司都希望严重许可.乔布斯根本不想走向那个方向.
一旦苹果公司出现并将史蒂夫·乔布斯带回公司(1996年),将新一代操作系统注入新的Mac OS X确实是苹果恢复其软件及其编程策略的关键.
虽然C++仍然是一种真正优秀且功能强大的语言,但我发现Objective C的缺陷较少(仅限我的意见),而Apple继续研究Cocoa库使得Obj-C语言成为具有C基础的真正现代力量.它比Java更好吗?不确定.但是对于它主要设计用于(Mac OS,iOS)的东西,如果有点过于冗长,它是非常好的.
对Obj-C的最大批评是语法风格,但任何真正学习语言的程序员都会很快学会它的惊人力量,并且几乎无法适应Mac,iPhone,iPad等所有东西.
其他任何平台最终都会采用Obj-C吗?不确定,但怀疑.但是Cocoa库真的很精彩.