苹果用Swift语言颠覆传统编程

Swift开发语言

知名开发人克里斯-莱特纳(Chris Lattner)此前花费了一年半的时间在一款全新编程语言的开发工作上。在这段时间内,他没有将自己的工作内容向任何一个人透露过。这个项目是在2010年的夏天正式展开的,当时的莱特纳几乎每个周末和晚上都扑在这个项目中,到2011年底这个全新编程语言的基本架构终于成形。

也就是在那个时候,莱特纳决定把这个秘密项目告诉公司高管。在深入了解了这一项目后,这些高管认为该项目非常有潜力,并特地为其指定了数名有经验的工程师协助开发。在18个月后,该项目已经成为了该公司最重要的项目之一,大量工程师都参与到了这一项目中,且公司认为这是一个有可能彻底颠覆传统电脑编程流程的全新语言。

众所周知,这个项目就是Swift编程语言,而莱特纳则是目前苹果开发者工具部门总监。

今年6月2日,苹果首次针对广大开发者放出了Swift编程语言的测试版本,并对外宣称这是一个能让开发者更快、更轻松为iOS设备编写软件的工具。莱特纳就读伊利诺伊大学厄巴纳-香槟分校时的研究生导师维克拉姆-艾夫(Vikram Adve)曾经同莱特纳一起开发了Swift语言的最基层软件平台,但就连他都不知道莱特纳竟然独自一人在这个编程项目上花费了如此巨大的心血。

“苹果实在太保密了,莱特纳也深受真传。我当时只知道他正在负责一个项目,但我并不知道这个项目的具体内容。”艾夫笑着说道。

通常来说,如果一款编程语言被刚刚编写完成后,它通常需要多年的时间才能拥有足够多的开发者用户,即便该语言拥有像苹果这样巨型企业的支持也不例外。举例来说,谷歌曾在2009年推出了一个名为“Go”的全新编程语言,虽然这一语言的开发者包括了诸如Unix操作系统联合开发者、同时也是C语言之父肯-汤普逊(Ken Thompson)以及前贝尔实验室研究员卢勃-帕克(Rob Pike)这些业内泰斗,但该语言直到目前还没有得到全球大多数程序员的认可。

但我们认为,Swift的命运将同Go截然不同,该语言甚至有可能在今秋正式发布后迅速得到业内的认可,并超过当年Java和C#语言的发展速度。这主要是因为该语言是一款面向普通开发者的编程语言,它拥有着无与伦比的易用性,即便是最初级的编程员都能够很快掌握该语言。同时,目前有许多的程序员都专注于为iOS平台编写应用,此前他们所使用的主要语言是Objective-C,但全新Swift显然比前者拥有更多优势,而这也就在一定程度上确保了该语言的使用基数。

“谷歌Go没有给予开发者足够的理由去采用这一语言,而Swift却并非如此。人们会争先恐后的拥抱这一全新语言,因为它的编程流程相比Objective-C更为简单。”专注于全球编程语言动态的Tiobe公司总经理保罗-詹森(Paul Jansen)说道。

目前,尽管Swift还处于自己的测试阶段,但代码托管网站GitHub上已经有超过2400个项目基于Swift代码开发。本月,Swift还登上了Tiobe发布的全球讨论率最高编程语言第16名的位置。需要指出的是,当谷歌在2009年推出Go语言的时候也曾取得过类似的成绩,但该语言随后在Tiobe上的排名便一落千丈。然而,詹森认为这样的情况恐怕不会在Swift身上重演。

“因为Swift处于苹果生态系统的最核心地位,而他们只要不将其搞砸就可以了。”C++语言领域的泰斗级人物安德烈-亚历克斯德苏(Andrei Alexandrescu)说道。

未来前景

目前,莱特纳是苹果开发者工具部门总监,他的主要工作是负责管理所有可以让苹果工程师和开发者为公司设备编写程序的工具。在此之前,莱特纳曾主持开展了构架编译器框架系统LLVM的开发工作,而LLVM也恰恰是目前苹果开发工具Xcode的基础架构平台。

2005年,莱特纳加盟苹果,并开始致力于LLVM在苹果开发体系中的应用。同时,苹果也一直是LLVM计划的主要资助方之一。我们曾在撰写这篇文章时向莱特纳提出了采访邀请,但后者表示只有得到苹果公关部门的批准才能接受采访。不过,莱特纳还是在自己的博客中简单谈到了这个项目的开展初衷,那就是他希望Swift能够同苹果现有开发工具兼容,甚至可以让开发者在使用Objective-C的同时使用Swift。

平息而论,苹果仍然需要提供更加充足的理由来鼓励开发者从Objective-C转投Swift平台。毕竟,现有开发者大都从未接触过Swift。

“我是第一个、也是目前唯一一个拥有四年Swift使用经验的开发者。”莱特纳在Twitter上这样说道。

对此,已经为苹果各类硬件产品编写了15年程序的资深开发人员麦克-阿什(Mike Ash)也承认:“大多数全新编程语言都会止步不前,少数获得开发者青睐的语言通常也需要经历许多年的过渡时期。”

但话虽如此,阿什目前已经开始利用这一全新语言编写应用了。因为虽然Swift并见得比诸如C#、Ruby、Python优秀多少,但它还是相较于上世纪80年代问世的Objective-C有着太多的优势。当下,许多程序员都认为Objective-C句法规则太过怪异,而Swift的设计则更加贴心,并内置了许多可以帮助开发人员的实用纠错工具。

核心优势

在Swift语言中,最为出彩的功能或许就Playgrounds了。该功能提供了不可思议的互动效果,能让Swift代码在编写过程中实时进行编译和效果显示。最为重要的是,这一服务能够使开发者的编程变得更具效率,同时帮助Swift和其他编程语言展开差异化竞争。

目前,诸如Objective-C、C++这类语言通常要求开发者首先编写好代码,等待编撰器将代码转换为可执行的软件程序,然后开发者才能够操作这一可执行软件。而诸如Python、Ruby和PHP这些语言则允许开发者在编写代码的同时测试自己的软件,但该软件的实际运行速度却会大打折扣。

然而,Swift的出现就彻底解决了上述两者的不足,该语言可以在不牺牲程序运行速度的前提下使开发者更为高效的编写代码。

“Swift是一个对开发者和设备都非常友好的语言,虽然这一语言的实际表现还有待测试,但苹果到目前为止的工作成果看起来相当了不起。”麦克-阿什这样说道。

市场竞争

需要指出的是,苹果并非是唯一一家试图在编程领域掀起波澜的企业,包括谷歌、Facebook、Mozilla这些公司也都在研发自己的编程语言平台,且其中部分语言甚至已经比Swift取得了更大的成就。比如,谷歌已经利用Go语言重新定义了自己的内部工作流程,而Facebook则利用旗下开源编程语言“Hack”重新打造了自己的大量在线服务。

更为重要的是,以上这些企业所推出的编程语言大多是开源的,这就意味着它们或将可以更容易面向全球开发者进行推广。然而,Swift并不是一个开源编程语言(至少目前还不是)。同时,考虑到苹果一贯的软硬件高度控制的做法,外界对于该公司政策是否会对Swift的未来推广构成负面影响也持有保留意见。

“目前业内对于苹果是否会限制该语言的前进方向存在着一定的担忧,就比如该公司是否会允许开发者利用其编写跨平台代码等。”阿什解释道。

不过,阿什相信Swift的开源化将只是时间问题而已,因为克里斯-莱特纳从来都是编程开源理念的支持者,他此前所开发的轻量级编译器Clang就是一个最好的例子。当然,即便Swift始终处于苹果的严格管控之下,我们也认为该语言的开发者采用率也将超越近年来所推出的任何一个编程语言,因为这就是诸如iPhone、iPad和Mac这些设备施加在开发者身上的魔力所在。

Swift开发培训课程介绍:http://www.itpeixun.cn/

发表评论

邮箱地址不会被公开。 必填项已用*标注