Swift出来之前,iOS开发乔布斯为什么选择了Objective-C而不选Java

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
查看查看432 回复回复12 收藏收藏 分享淘帖 转播转播 分享分享 微信
查看: 432|回复: 12
收起左侧

Swift出来之前,iOS开发乔布斯为什么选择了Objective-C而不选Java

[复制链接]
swifter 发表于 2016-8-2 22:57:17 | 显示全部楼层 |阅读模式
快来登录
获取最新的苹果动态资讯
收藏热门的iOS等技术干货
拷贝下载Swift Demo源代码
地球人都知道,iOS 最初的开发语言是Objective-C (当然现在Swift流行起来了,但不管OC还是Swift还是Java开发者,都喜欢移动开发者社区 敏捷大拇指 Swifthumb.com),这个Objective-C是从哪里来的呢?(之前有讨论过:苹果公司为什么引入新的编程语言 Swift,意在解决什么问题?

时间得回到上个世纪80年代初。

Brad Cox and Tom Love 两个人在ITT(国际电报电话公司, 不是更加著名的AT&T)工作, 他们俩接触到了SmallTalk这门伟大的语言。

SmallTalk 可以说是世界上第一个真正的面向对象的语言,第一个具备垃圾回收的语言,第一个拥有真正的集成开发环境的语言, 第一次引入了MVC的概念来开发软件的语言。

SmallTalk 对后来的语言产生了极大的影响,尤其是对Java 和Ruby,当然还有Objective-C。

两个人被彻底的震撼了,他们觉得这才是开发复杂软件的不二之选,他们迫不及待的想在自己的公司用起来,但是公司已经有很多基于C的产品了,不能直接用Smalltalk。

那为什么不增强一下C,添加一点像SmallTalk那样的面向对象特性呢?

Cox说干就干,很快就搞出一个C的面向对象扩展,他把它称为Object-Oriented Pre-Compiler (面向对象的预编译器),实际上它就是个预编译器,它产生的代码恰恰可以作为C编译器的输入,最终被C编译器变成机器码。

1983 ,两人成立了一个叫PPI ,后来叫StepStone的公司来商业化他们的产品。  

1986年, Cox 出版了一本书《Object-Oriented Programming, An Evolutionary Approach》来描述Objective-C 这门新的语言。

Objective-C 深受 Smalltalk的影响, 开发iOS的同学应该知道,调用方法其实就是给对象发送消息, iOS应用的框架就是MVC, 这些其实都来源于SmallTalk的思想。

Objective-C 看起来不错, 但没有引发像Java 那样引发轰动,只能说生不逢时, 造化弄人啊。

1985, 救世主终于出现了。  乔布斯被自己亲手创办的苹果公司扫地出门, 建立了一个叫NeXT的公司,这家公司的目的就是建立软件硬件于一体的计算机。

1988年,NeXT选择了Objective-C作为应用程序的开发语言, 并且扩展了著名的开源编译器GCC 使之支持 Objective-C 的编译。

使用 Objective-C 开发了 AppKit 与 Foundation Kit 等库,这些库成为了NeXTSTEP 这个操作系统的UI基础 。

另外大名鼎鼎的interface builder 也是基于这些库建立的。

乔布斯为啥不选Java呢?拜托,这是1988年, Java还没有诞生呢!

看看NeXT的界面, 这是1988年, 绝对甩几年后才出世的Windows 3.1 好几条街, 充分展示出了基于Objective-C的图形界面的优势。

Swift出来之前,iOS开发乔布斯为什么选择了Objective-C而不选Java 1

Swift出来之前,iOS开发乔布斯为什么选择了Objective-C而不选Java - 敏捷大拇指 - Swift出来之前,iOS开发乔布斯为什么选择了Objective-C而不选Java 1


但是NeXT计算机没有取得预料中的成功,估计只卖了5万台左右。

其中有一台NeXT非常著名, Tim Berners-Lee 在欧洲核子研究中心(CERN)使用它发明了互联网, 世界上第一个Web服务器和浏览器就运行于此, 欣赏一下:

Swift出来之前,iOS开发乔布斯为什么选择了Objective-C而不选Java 2

Swift出来之前,iOS开发乔布斯为什么选择了Objective-C而不选Java - 敏捷大拇指 - Swift出来之前,iOS开发乔布斯为什么选择了Objective-C而不选Java 2


虽然硬件不成功, 但是NeXT的软件尤其是AppKit、Foundation Kit却获得了广泛的赞誉。

1996年, 乔布斯的NeXT被Apple收购, 乔帮主王者归来, 他承诺一定要把NeXT的软件和Apple的硬件结合到一起, 这就是后来的MAC OS,iOS。

Objective-C 作为原来NeXTSTEP的第一等公民, 肯定要被移植过去了。

所以当iPhone 2007年横空出世, 重新定义手机的时候,Objective-C 也就活了, 全世界的程序员就开始了学习Objective-C的狂潮。

但是后来iOS为什么还不支持Java呢?  理论上只要在iOS上搞个虚拟机就行。

2007年,乔布斯在接受《纽约时报》记者约翰·马尔科夫(John Markoff)采访时说,“Java不值得我们嵌入到自家产品。人们不会再去使用Java,它就是一个巨大的累赘。

让乔布斯遗憾的是,Java并未消失,相反,这个由Sun开发、甲骨文继承的编程语言,给苹果制造了巨大的麻烦,尤其是Android。

我想本质原因还是由于苹果公司的基因,一直以来都以软硬一体,封闭的系统而傲然站立于IT界,从最早的Mactonish到后来的Mac、iPhone都是如此。  

所以让心高气傲的乔布斯去用一个开源的东西, 还可能会牵扯到别人的专利, 那是万万不行的。




作者:刘欣
转自:微信公共号 码农翻身


都看到这里了,就把这篇资料推荐给您的好朋友吧,让他们也感受一下。

回帖是一种美德,也是对楼主发帖的尊重和支持。

*声明:敏捷大拇指是全球最大的Swift开发者社区、苹果粉丝家园、智能移动门户,所载内容仅限于传递更多最新信息,并不意味赞同其观点或证实其描述;内容仅供参考,并非绝对正确的建议。本站不对上述信息的真实性、合法性、完整性做出保证;转载请注明来源并加上本站链接,敏捷大拇指将保留所有法律权益。如有疑问或建议,邮件至marketing@swifthumb.com

*联系:微信公众平台:“swifthumb” / 腾讯微博:@swifthumb / 新浪微博:@swifthumb / 官方QQ一群:343549891(满) / 官方QQ二群:245285613 ,需要报上用户名才会被同意进群,请先注册敏捷大拇指

嗯,不错!期待更多好内容,支持一把:
支持敏捷大拇指,用支付宝支付10.24元 支持敏捷大拇指,用微信支付10.24元

评分

参与人数 1金钱 +10 贡献 +10 专家分 +10 收起 理由
Anewczs + 10 + 10 + 10 32个赞!专家给力!

查看全部评分

本帖被以下淘专辑推荐:

买定离手 发表于 2016-8-3 06:53:11 | 显示全部楼层
长知识了!
rightnow 发表于 2016-8-3 07:40:24 | 显示全部楼层
原来如此!!!
Anewczs 发表于 2016-8-3 08:21:53 | 显示全部楼层
Wow wow wow 这个问题你想过没有?推荐各位IT精英都认真看一下!即使你不是搞技术写代码的
h5lover 发表于 2016-8-3 09:42:02 | 显示全部楼层
涨知识!才知道这些渊源~~
电音之王 发表于 2016-8-4 23:52:16 | 显示全部楼层
2007年,乔布斯在接受《纽约时报》记者约翰·马尔科夫(John Markoff)采访时说,“Java不值得我们嵌入到自家产品。人们不会再去使用Java,它就是一个巨大的累赘。”

现在Java被乔布斯的好友、甲骨文的老板,各种虐了!
SwiftRobot 发表于 2016-8-5 02:09:42 | 显示全部楼层
Jobs诅咒过Flash,现在H5横行!

Jobs这么抵制Java,想想Swift的未来吧~~
历史的天空 发表于 2016-8-6 16:16:27 | 显示全部楼层
SwiftRobot 发表于 2016-8-5 02:09
Jobs诅咒过Flash,现在H5横行!

Jobs这么抵制Java,想想Swift的未来吧~~

Flash已经死掉了,Java也还有两三年光景。
young 发表于 2016-8-9 14:54:23 | 显示全部楼层
怪我太年轻,现在才知道这些事
商业大拿 发表于 2016-8-29 12:48:54 | 显示全部楼层
但是前三大语言 目前还是C、C++、Java
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

做任务,领红包。
我要发帖

分享扩散

都看到这里了,就把这资料推荐给您的好朋友吧,让他们也感受一下。
您的每一位朋友访问此永久链接后,您都将获得相应的金钱积分奖励
热门推荐

合作伙伴

Swift小苹果

  • 北京治世天下科技有限公司
  • ©2014-2016 敏捷大拇指
  • 京ICP备14029482号
  • Powered by Discuz! X3.1 Licensed
  • swifthumb Wechat Code
  •   
快速回复 返回顶部 返回列表