要是随便找个普通的苹果拥趸,让其列举一下苹果公司去年的重大公告,他很可能会从苹果手表Apple Watch和大屏幕iPhone为开始。而如果向苹果开发人员提出这个问题,他们几乎毫无例外地会提到Swift,它是去年苹果在全球开发者大会上发布的计算机编程语言。
负 责苹果软件设计的资深副总裁克雷格・费代里吉(Craig
Federighi)在去年苹果的全球开发者大会上演示了Swift的种种新特点,提及类型推演、闭包以及多名称空间之类的名词,与会的开发人才报以热烈
掌声。“你们也许都知道,有很多人在家里嘟哝:‘这帮人到底在说些什么?’”费代里吉在台上开玩笑说。
针对开发人员、为编程语言排名的分析公司RedMonk在今年1月发布的报告称,自Swift去年6月发布以来,其增长速度基本上是史无前例的。在短短七个月内,Swift就攀上了RedMonk编程语言百强榜的第22位。面向编程人员的问答网站Stack Overflow,在今年2月对逾2.6万名开发人员的调查结果显示,Swift被评为全球最受欢迎的计算机编程语言。
斯 坦福(Standord)等大学以及一些提供编程课程的网站接受了这种编程语言,并创设了教授Swift的在线课程。雷・温德尔里奇(Ray
Wenderlich)是一名网络开发人员,运营着人气颇高的指导网站RayWenderlich.com。他表示自己立即将几乎所有的注意力都转向了
Swift语言。“Swift引发了疯狂的反响,”他说,“这是所有人都很期待的产品。”
苹果规定开发者必须使用为移动设备设计应用程序的编程语言。这为苹果开发应用程序带来经济上的动机――根据风投公司Andreessen Horowitz的行业分析师本尼迪克特・埃文斯(Benedict Evans)说,苹果平均用户为开发人员带来的收入是安卓用户的四倍。
在 Swift问世之前,苹果开发人员的唯一选择是上世纪80年代推出的编程语言Objective-C。几十年后的今天,开发人员都认为
Objective-C已经过时。批评人士说它“冗长”、“过时”、“令人厌恶”。但这种老旧的编程语言也有其拥护者。被问及用Objective-C编
写代码难度是否很大时,作为搭车服务应用Lyft的工程设计副总裁彼得・莫雷利(Peter Morelli)说:“我觉得这有点像一场宗教战争。很多人使用这种语言编程也卓有成效。”苹果拒绝就本文发表评论。
Swift在安全性方面得分较高(能够防止编码人员在疏忽大意之下造成程序漏洞),同时在顺应编程趋势方面也表现良好。其拥护者特别指出它的另一个优势是表现力,开发人员能够轻易读懂他们用代码达成想做的事。
开 发人员说,相比使用Objective-C,用Swift编程时他们可以用更简单的代码达成同样的结果。“看看那些弯弯曲曲的代码行和分
号,Objective-C的代码行数会是它的4倍。” 在线提供编码课程的公司Treehouse的开发者迈尔斯・卡彭特(Myers
Carpenter)说。
大约6个月前,Lyft要求一名工程师试着用Swift编码,之后该公司决定用这种语言重新编写其应用程序,将代
码行数减少了5倍。这款应用程序将于今年7月发布。莫雷利说,用Swift编程所用的时间远远少于Objective-C。“能将耗时从几个月减少到几
天,这很不错,”他说。
另一个较早采用Swift的是内容分享平台SlideShare,商务社交网站领英(LinkedIn) 2012年收购了该平台。SlideShare的开发人员利用Swift语言设计了一个应用程序,其用户可以浏览并分享企业演示内容、视频以及图表等。
SlideShare的编码人员说,Swift语言效果不错,(搜索微信公众号“投黑马”专注于文创领域的众筹平台 )但也有一些小问题。其中一个问题是:将Swift转换成可供计算机读取的格式需要专门的程序,而这个程序占用了太多的处理能力,这远远超出了13寸MacBook Pro笔记本电脑的负荷。“我那些使用15寸机型、配备四核i7处理器的同事情况要好得多,”领英软件工程师凯尔・谢尔曼(Kyle Sherman)在该公司的工程设计博客中写道,“不管怎样,在转换时电脑风扇都发出很大的声音。”
对于新的编程语言,“成长的烦恼”是常有的事。苹果将继续对Swift进行修正,不过随着时间的过去,大的改动会越来越少。然而现在的修改频率导致这种语言不稳定;用某个版本的Swift语言编写的代码必须加以修改才能适用于下一个版本。软件开发公司Scott Logic的技术主管科林・埃伯哈特(Colin Eberhardt)是Swift的拥趸,但表示苹果对Swift的更新经常导致他的代码不能用。他说,最好不要把Swift用在自己代码的最终版本上。最好等到这种语言成熟之后再采用。
Objective-
C在编程中的使用仍远远高于Swift,但Swift的成功最终可能意味着其上一代编程语言的消亡――前提是苹果不希望同时支持两种编程语言。目前,苹果
已经告知开发人员,他们可以继续使用Objective-C。身为网络开发者的温德尔里奇说,Swift可能还要多年时间才能占据主导地位,但这是无可避
免的。“到那时人们就会开始转向Swift,”他说,“而到最后Objective-C将会退场。”
来源:51CTO