苹果Swift语言之父加盟谷歌,安卓可能会越来越像iOS
谷歌从特斯拉挖来了一位重量级人物——苹果Swift语言之父克里斯•拉特纳,此人实力和在开发者世界的影响不亚于安卓之父安迪•鲁宾。
据国外科技媒体AppleInsider报道,曾在苹果公司主导编程语言Swift开发的全球著名程序员克里斯•拉特纳在6个月前从苹果跳槽到特斯拉后,又于今年8月下旬入职谷歌参与Google Brain项目,该消息在拉特纳的个人推特上得到证实。
苹果、Swift和拉特纳的那些事
说起编程语言Swift,我们不由去挖掘一下苹果公司的历史文本。开发者世界众所周知的是,Swift是一门年轻的编程语言,诞生于2014年苹果公司开发者工具部。而在那之前苹果操作系统家族包括mac OS、iOS以及后来的watchOS的御用编程语言都是Objective-C。
Objective-C是C语言的严格超集,所以它的起源较早。1988年,离开苹果公司的乔布斯创建了NeXT公司并购买了Objective-C的授权,扩展了知名的开源编译器GCC,然后基于此开发了一些库,这样一来形成了一套开发环境,这套工具在1996年乔布斯回归后成了神一样的利器,它奠定了至今为止苹果操作系统家族的基础。
GCC既是Objective-C的编译器,也是GNU项目的一部分,重要的是后者,这意味着GCC注定在自由软件势力的约束之下(比开源社区更严格的一股势力)。
而鉴于苹果封闭商业化的操作系统属性与自由软件精神相悖,必然导致Objective-C在GCC编译器处理的优先级低下且支持度不高。因此苹果公司一直想寻找GCC的开源替代品,他们注意到了克里斯•拉特纳和他的LLVM项目。
LLVM是一套用于开发编译器的工具库,采用开源协议BSD,相比GCC的GPL协议对商业软件更加友好和宽松。
苹果资助了LLVM项目并直接雇佣了拉特纳,在拉特纳的帮助下,苹果逐渐建立起用于取代GCC的LLVM编译器架构。2005年拉特纳发起了以LLVM为后端的编译器前端项目Clang,旨在完全取代GCC。那一刻起苹果真正获得了操作系统层级的核心竞争力,迈出了与微软分庭抗礼的起点。
有了上述优势之后,苹果开始着手优化自己的核心竞争力,首先要从御用编程语言开始。Objective-C跟随苹果多年,甚至商标权也属于苹果,但是作为一个传统的面向对象高级编程语言,Objective-C在某些方面跟不上时代趋势。
移动时代不仅仅做大了业界的产值蛋糕,也扩大了开发者群体,这些年开发者的数量在增加,他们有的来自于PC端,有的则是直接专注移动开发的新手,所以整体素质良莠不齐,整个领域出现了更多呼吁编程思想变革的趋向。
那就是高内低耦、模块化、细分化和流水线化。更多的程序员更擅长用现成的库、框架、工具来快速搭建一个应用,所以开发者世界也不时传出了“人生苦短,我用Python”这类诙谐的声音。因此传统的编程语言将退居幕后,服务于底层和中间件,把应用层的开发交给新的编程语言是一种趋势。
苹果公司在看清这种趋势上赶了个早集,2010年时任开发者软件部门总监的拉特纳着手设计新的编程语言Swift,从而尽早过渡、逐步取代Objective-C。
Swift是第一个既满足软件工程标准又像脚本语言一样富有表现力的编程语言,它的特点是敏捷、超前又不失严谨,对初学者更加友好,这对苹果OS平台能否吸引更多开发者至关重要。
从WWDC2014上线到2015年宣布开源再到今日,Swift已经吸引了数量庞大的开发者,加上苹果对编译器的优化、在开发环境Xcode中优化集成并力推Swift,以及对现有框架Cocoa和Cocoa Touch较好继承,这使得Swift在整个iOS/Mac工程中的代码占比越来越大。Swift这两年发展迅速,在Tiobe排行榜上的位置逐年攀升,现已成为业界公认的语言新秀Python的强劲对手。
拉特纳为什么从特斯拉辞职
回顾了Swift和拉特纳的故事后,几个问题值得分析。首先是拉特纳为什么从特斯拉辞职。经媒体了解,拉特纳在特斯拉自动驾驶软件开发副总裁的岗位上工作了6个月,他委婉地表示这一岗位对他并不合适。
拉特纳的职业生涯不同于安迪•鲁宾或者托尼•法德尔这类产品经理,前者自入职苹果公司以来一直从事开发者工具设计,拉特纳在开发者群体中有很高的声誉,但在职业经理人的圈子里却鲜有见闻。
自动驾驶汽车属于跨界产品,整个项目是庞大的系统工程,模块间并非低耦,千丝万缕的需求难以被单领域的项目管理者掌控,这对于拉特纳来说是个极大的难题。而Google Brain对他而言是个较好的选择,比如给AI系统TensorFlow做做库的优化,正是拉特纳所擅长的。
拉特纳跳槽谷歌是个大事件
其次是拉特纳投身谷歌,对安卓和苹果阵营的商业格局有什么影响,以及谷歌未来的布局会对业界风向产生什么变化。今年年初拉特纳从苹果公司离职出走的原因其实很简单,其任职11年给苹果带来了不少开源风格,也一直致力于推动组织与开源社区的关系实现成果和知识的共享,但苹果的保密文化始终让他感到疲惫。
拉特纳的离去或许对苹果的核心竞争价值造成影响,但只要苹果是一个在软件领域善于保存组织知识资产的高科技公司,就不会太大问题。据悉,苹果已任命另一位开发者项目经理特德•克里梅内克接收拉特纳的工作。
拉特纳的投奔对于谷歌而言绝对是久逢甘露,事实上谷歌对Swift早有觊觎。众所周知的是,谷歌因卷入与甲骨文的Java版权案由来已久,目前Java案定格在2016年5月美国旧金山联邦法庭陪审团做出的裁决暂时对谷歌有利,但是甲骨文并未善罢甘休,今年2月甲骨文向美国联邦巡回法院上诉法庭上诉,开启了双方六年来的第四轮的较量。
假如将来Java案落定对甲骨文有利,那么其结果对于谷歌、对于整个安卓平台生态包括安卓开发者群体的影响是巨大的。Java对于安卓而言,是牵一发而动全身的存在。
这些年,因为专利案的关系谷歌一直试图削弱Java对安卓的影响,比如改用OpenJDK来重塑系统的部分代码。但是谷歌对此并不满意,要想完全摆脱掣肘必须寻求新的开发工具对平台生态彻底改造。在这方面谷歌曾做过一些努力,比如考虑用Kotlin语言过渡,但仍不尽人意。
当2015年底苹果宣布Swift语言开源时,谷歌终于把目标落在了Swift上。在2016年4月的伦敦会议上,谷歌、Facebook、Uber三家共同讨论了Swift语言的实用性,谷歌甚至向外媒透露考虑将来用Swift作为安卓软件开发的“一级语言”。
安卓的底层是C,部分中间件是C++,UI和应用层是Java(如今还有很多Python的代码),对系统和APP生态的重塑恐怕是个漫长的过程。但Swift有较好的兼容性和易用性,同时拥有庞大的开发者群体,加之用Swift语言来开发安卓应用的可行性早已被证实,由此看来这条路径愈加趋向现实。现在Swift之父直接加盟谷歌,由此人主导开启安卓平台生态的重塑,可能性非常之大。
【钛媒体作者:水哥,中国计算机学会会员,微信公众号:qq133991】
更多精彩内容,关注钛媒体微信号(ID:taimeiti),或者下载钛媒体App