Tat*_*tat 43 programming-languages objective-c
我知道Apple社区 - 包括Mac和iPhone开发人员 - 主要使用Objective-C作为他们的开发语言.但似乎没有多少人在Apple社区之外使用Objective-C,例如在Windows或Linux世界中.
Objective-C在Apple社区之外不是特别受欢迎的可能原因是什么?
小智 22
另一种思考这个问题的方法可能是:为什么C++而不是Objective-C成为"面向对象的C"?
我在1991年学过C++,并且记得C++看起来很热门,而Objective-C就是这种奇怪的小语言,没有人(NeXT除外)想要使用它.我一直在努力记住原因,而且我认为它归结为4件事(5,如果你包含C++背后有AT&T):
因此,与Objective-C相比,C++在90年代早期为您提供了更多的功能而且性能损失更少,其语法既时尚又比Objective-C更熟悉.
Wil*_*and 20
这是一个复杂的问题; 但总之; 我认为最有可能的答案在于操作系统的时代及其根源.
Windows是一个旧的操作系统; 并且通过堆叠黑客攻击构建的一个黑客一直回到Windows 3.1.C++非常受欢迎,在.NET中也是C#.
这种新的涌入当然是基于微软在该平台上的任何议程.
Mac OS X; 另一方面,它是一个(相对)年轻的操作系统,它的新部分(虽然仍旧很久,继承自NeXT和诸如此类)都是基于Objective-C的,因为"嘿!为什么不呢?".
由于向后兼容性不属于Mac OS X 10.0的优先级列表; 基于C/C++的Toolbox和Carbon得到了简称,整个操作系统或多或少都是NeXTStep的重新设计版本.
Obj-C的问题在于语言的强大功能主要来自相当大的框架,通常高度集成到系统中,等等.几乎不可能得到一个好的jive,就像没有从后向兼容性的干净中断那样,因此,在任何不敢做到这一点的平台上,它永远不会真正有机会.拥有一小部分(当时)和专注用户群的苹果公司敢于做到这一点,并打动了金牌.
微软现在正在努力,但在我看来,这是失败的.("失败?!.NET !?你怎么敢!?":在大约8年内进行了4次重大修改,他们的成长比成熟更多;如果他们可以扭转局面,这可能是一件好事.)
编辑:有一些项目试图将OpenStep移植到Linux,但它们有点笨拙且难以使用; 在NS/OS上也有较小的问题领域的小型项目,但这是艰巨的工作.
nev*_*ing 17
我最近站在书店里阅读Masterminds of Programming,其中编程语言的创造者谈论他们的创作.有一篇关于Objective-C的章节,其中Tom Love(Objective-C的创建者之一,以及Brad Cox)被问到为什么C++到目前为止,而Objective-C却没有:
为什么你认为C++的使用频率比Objective-C更频繁?
汤姆:背后有AT&T的绰号.
只是?
汤姆:我想是的.
您如何看待Objective-C?
汤姆:它仍然存在.那个怎么样?
小智 12
Objective-C只不过是一层薄层(略厚于2.0)的语法糖,用于在标准C之上传递消息.即使是最基本的面向对象也是由运行时库提供的,这是很长时间以来的专有权.惯性是语言使用的重要因素.
它特别注重图形用户界面,但支持它的唯一工具包是苹果公司和大多数未知和追赶的GNUStep.
虽然GUI之外的Objective-C有一些价值,我认为人们会使用这些扩展,如果他们导入到C,即使在系统代码中,也没有理由选择它而不是替代品,当你的系统很少用于与它合作.
在我的脑海中,我相信 C++ 比 Objective-C 更古老,而且不仅因为这个原因它拥有更大的用户群。OC 出现的每一个地方,C++ 都已经出现了:)
此外,C++还有更多的特性。许多人对许多功能印象深刻。并且它投入了更多的研究和开发......等等。本质上是动力。
| 归档时间: |
|
| 查看次数: |
25722 次 |
| 最近记录: |