大数跨境
0
0

【科技】 Swift——苹果新贵的前世今生

【科技】 Swift——苹果新贵的前世今生 UTH国际
2014-06-13
1
导读:2010年的夏天,Chris Lattner 接到了一个不同寻常的任务:为 OS X 和 iOS 平台开发下

2010年的夏天,Chris Lattner 接到了一个不同寻常的任务:为 OS X 和 iOS 平台开发下一代新的编程语言。那时候乔布斯还在以带病之身掌控庞大的苹果帝国,他是否参与了这个研发计划,我们不得而知,不过我想他至少应该知道此事,因为这个计划是高度机密的,只有极少数人知道,最初的执行者也只有一个人,那就是 Chris Lattner。


从2010年的7月起,克里斯(Chris)就开始了无休止的思考、设计、编程和调试,他用了近一年的时间实现了大部分基础语言结构,之后另一些语言专家加入进来持续改进。到了2013年,该项目成为了苹果开发工具组的重中之重,克里斯带领着他的团队逐步完成了一门全新语言的语法设计、编译器、运行时、框架、IDE 和文档等相关工作,并在2014年的 WWDC 大会上首次登台亮相便震惊了世界,这门语言的名字叫做:「Swift」。


6月2日苹果在WWDC大会上发布了全新的开发语言Swift,一经发布便给移动互联网带来了极大震撼,6月10日凌晨,就有开发爱好者&翻译组推出了苹果的官方文档《The Swift Programming Language》的中文版,并且提出了“这一次,让中国和世界同步”的响亮口号,序中介绍“9天时间,1317个 Star,310个 Fork,超过30人参与翻译和校对工作,项目最高排名GitHub总榜第4”(注:GitHub是全球最大的社交编程及代码托管网站)。


笔者表示向翻译团队致敬,也希望中国的开发者接下来能有精彩的表现。目前市场中36%的翻译需求来自于IT公司,其中79%的需求来自开发者、程序员,所以能够解析开发语言格式的翻译十分重要,这正是UTH国际一直以来的致力之处,同时不断搭建积累IT行业的垂直语料库,为开发者的语言需求提供最大的方便。


关于克里斯(Chris Lattner

根据克里斯个人博客(http://nondot.org/sabre)对 Swift 的描述,这门语言几乎是他凭借一己之力完成的。这位著名的70后程序员同时还是LLVM项目的主要发起人与作者之一、Clang编译器的作者,可以说 Swift语言和克里斯之前的软件作品有着千丝万缕的联系。

克里斯可以说是天才少年和好学生的代名词,他在2000年本科毕业之后,继续攻读计算机硕士和博士。但克里斯并不是宅男,学习之余他手捧「龙书」游历世界,成为德智体美劳全面发展的好学生。之后就是一篇又一篇的发表论文,硕士毕业论文即提出了一套完整的运行时编译思想,奠定了 LLVM 的发展基础,读博期间 LLVM 编译框架在他的领导下得到了长足的发展,已经可以基于 GCC 前端编译器的语义分析结果进行编译优化和代码生成,所以克里斯在2005年毕业的时候已经是业界知名的编译器专家了。


克里斯毕业的时候正是苹果为了编译器焦头烂额的时候,因为苹果之前的软件产品都依赖于整条GCC编译链,而开源界的这帮大爷并不买苹果的帐,他们不愿意专门为了苹果公司的要求优化和改进 GCC 代码,所以苹果一怒之下将编译器后端直接替换为 LLVM,并且把克里斯招入麾下。克里斯进入了苹果之后如鱼得水,不仅大幅度优化和改进 LLVM 以适应 Objective-C 的语法变革和性能要求,同时发起了 CLang 项目,旨在全面替换 GCC。这个目标目前已经实现了,从 OS X10.9和 XCode 5开始,LLVM+GCC 已经被替换成了 LLVM+Clang。Swift 是克里斯在 LLVM 和 Clang 之后第三个伟大的项目!


关于语言——苹果为什么会发布一门新语言呢?

2007年之前,Objective-C一直是苹果自家院落的小众语言,但是 iOS 移动设备的爆发让这门语言的普及率获得了火箭一般的蹿升速度,截止到今天,Objective-C在编程语言排行榜上排名第三,江湖人称三哥,大哥二哥分别是C和Java这样的老牌语言。同时,苹果在2012年和2013年分别对 Objective-C 进行了大规模的优化和升级改进,增加了各种现代语言的特性,让编写App更加容易,使得更多的程序员投入到了 App Store 的生态圈里……


在这种情况下,苹果公司为什么会发布一门新语言呢?


这个问题没有标准答案,不过我们可以试着去分析一下,谈谈苹果的心路历程……


Objective-C(OC)是80年代初Brad Cox和Tom Love发明的,1988年乔布斯的 Next 公司获得了这门编程语言语言的授权。后来Next被苹果收购,Objective-C 阴差阳错成了苹果的当家语言。苹果煞费苦心,把 GCC 的编译链先替换成 LLVM +GCC,又替换成 LLVM+Clang,做语法简化、自动引用计数、增加 Blocks 和 GCD 多线程异步处理技术……


终于,OC 在30年后重新焕发出勃勃生机,并占据了兵器谱排名第三的位置。但是,苹果却有点烦了,OC 改进了这么多年,怎么看都像是在修修补补,看起来总是那么别扭。好吧,既然已经全盘掌握了 LLVM 和 Clang,为什么我们不去基于现在的编译器设计一门全新的语言呢?一门属于苹果的语言!


你看,邻居谷歌家里叫做Go的孩子不是玩耍正酣么?! 于是 Swift 诞生了……


语法——发展永远是博采众长~

Swift 是一门博采众长的现代语言,在设计的过程中,克里斯参考了Objective-C,Rust,Haskell,Ruby,Python,C#等优秀语言的特点,最终形成了目前 Swift 的语法特性。


性能——就是快啊就是快!

Swift 在 WWDC上展示出来的性能还是让人非常吃惊的,在进行复杂对象排序时,OC 的性能是 Python 的2.8倍,Swift 是 Python 的3.9倍;在实现 RC4加密算法的时候,OC 的性能是 Python 的127倍,Swift 是 Python 的220倍。总之 Python 在某一个深坑里膝盖中箭了,OC 也没好到哪去,而 Swift,就是快啊就是快!


不过WWDC上展示的语言层面的基准测试比较简单,有更较真的程序员在第一时间针对于循环、递增、数组、字符串拼接等功能进行了测试,发现 Swift 的性能比OC还是差那么一点点。


无论这些测试数据是否准确,我觉得性能是我们最不需要担心的问题,苹果已经全盘掌握了这个语言的方方面面,从底层编译框架到编译器再到语言设计,优化之路才刚刚开始,我们只要给这门新语言一点耐心就可以了。


最大亮点——所码即所得(Playground!

能够在编码的同时实时预览输出结果是每个开发人员的梦想,这次苹果为大家提供了这样的福利。

Playground 不仅实现了很多脚本语言支持的交互式编程,而且提供控制台输出、实时图形图像、时间线(timeline)变量跟踪等功能,开发者除了可以看到代码的实时运行结果,还能根据时间线阅读某个变量在代码片段中值的变化。这真是太棒了!


对于 Playground,设计者克里斯是这样描述的:Playground 功能倾注了我个人很多心血和激情,我希望新的编程语言具备更好交互性,更友好和有趣……我们希望通过这门语言重新定义「如何教授计算机科学」!


经过 WWDC2014,苹果已经完全体现出了一个软件公司的创新能力和技术底蕴,无论是系统,语言,还是应用开发,苹果都已经准备好了,凝神静气,蓄势待发,期待着下一个收获的季节!


(编者注释:本文swift相关内容转自微信公众号MacTalk By 池建强,原文《苹果新贵Swift之前世今生》,有删节。)

【声明】内容源于网络
0
0
UTH国际
UTH国际是大数据和互联网时代的新型多语信息处理解决方案提供商, 具有国际领先的核心技术和商业模式创新优势。
内容 310
粉丝 0
认证用户
UTH国际 上海佑译信息科技有限公司 UTH国际是大数据和互联网时代的新型多语信息处理解决方案提供商, 具有国际领先的核心技术和商业模式创新优势。
总阅读329
粉丝0
内容310