别无选择,除了学习Swift

时间:2022-09-16 03:50:22

别无选择,除了学习Swift

在2014年的大会上,苹果没有任何硬件产品,却给了开发者一把新的武器―Swift,这是一门更易于掌握的编程语言。即便简单,也意味着要开始学习一门新的语言了,可是不得不学,因为它是苹果的开发语言。

“它是C语言和Objective-C完整的替代品。”当苹果首席软件工程师克雷格・费德里吉(Craig Federighi)宣布Swift将是苹果新的御用语言时,台下程序员立即发出“哇喔”的呼声。

并非只有乐观,更多开发者对此情绪复杂,不少人在现场就在Macbook或是iPad上打开了Swift学习教程―尽管费德里吉称,有经验的开发者能够很快地熟悉且精通它,也因其相对简单而被人称为“玩具语言”,但对于大多数开发者,这是一门新的语言。

如果不是苹果,大家不会为之纠结―Google在2009年推出的Go语言,微软于2010年正式的F#语言,最终并未吸引到大规模的人使用,但一直以来,程序员们为了苹果都在使用晦涩的Objective-C。

Objective-C是一门古老的编程语言了,它由软件工程师Brad Cox在1980年代早期发明。1988年,乔布斯离开苹果之后创立的NeXT公司买下Objective-C语言的授权,并基于Objective-C开发了其NeXTSTEP用户界面与开发环境。当1996年苹果公司收购NeXT公司时,乔布斯回归苹果,NeXTSTEP成为苹果操作系统OS X的基础,Objective-C由此成为苹果公司各类产品的主要编程语言。

它的确能带来更好的用户体验。作为C语言的衍生版本,Objective-C拥有接近C语言的超高执行效率,这也是iPhone比Android手机用起来更加流畅的原因之 一。

但相比Java或C#这样的现代编程语言,Objective-C生涩难懂。“从语言本身来讲,它源自C语言,但又涵盖了 Java一些特点,比如弱变量类型,这让程序员适应起来并不容易。”iOS开发者张鸣向《第一财经周刊》表示。

即便如此,在业界公认的TIOBE编程语言排行榜上,Objective-C在全球程序员中的热度排名由2009年的第36位飙升至当前的第3位,这只有一个原因:它是唯一能够用来为iPhone和iPad编程的语言。

苹果需要更多的人来为它生产软件了。自有App Store以来,软件不再是冷冰冰的技术产品,而是变成了一种快速消费的商品。既然是快速消费,就需要更多的生产团队,这意味着苹果必须降低“生产门槛”。

Swift是一个好的选择。相比Objective-C陈旧笨重的语法,Swift的代码显然要简洁易懂,在WWDC上,费德里吉展示了如何用一行Swift代码实现原本通过Objective-C需要四行才能实现的功能。“它更能发挥程序员的创造力,让程序员能够更自由地表达自己,而不是和语言战斗,”张鸣说。

“对我来说,Playground的实时显示功能是Swift最吸引人的地方,”资深iOS开发者Cocos2D引擎创始人Ricardo Quesade说,“那就像一个沙盒,让我能够随时测试想法,更迅速地开发,快速地改进。”在苹果大会上,苹果官方特地展示了这项功能,程序员可以在左侧输入代码的同时就在右侧实现代码执行效果。

Swift也代表更高的效率。在苹果大会上,官方给出了一组各类语言的对比数据,以开发语言Python为类比对象,Objective-C的效率是Python的2.8倍,而Swift则是Python的3.9倍。

很重要的一点,是Swift解决了“垃圾回收”问题。Objective-C长期以来最受诟病之处是其不支持“垃圾回收”,这是一种自动的内存管理机制―当一部分内存空间不再需要使用时,垃圾回收器会将其自动释放,这使得程序员不需要手动去释放多余内存,可以借此减轻许多负担。但是iOS开发者们一直无法享受到这样的福利,他们必须小心翼翼地管理自己的程序所占用的内存,防止程序莫名其妙地崩溃。Swift终于支持了开发者们梦寐以求的垃圾回收功能。

不难想象,很多开发者会被这种简单所吸引。“如果苹果决定开源的话,它有潜力去吸引更多别的平台的开发者,我肯定是会用它。”Quesade说,他也会认真考虑将自己的产品移植到这个平台上。

除了更为友好的Swift语言,开发者在很多方面都能感受到苹果更为开放的态度―第三方输入法开放了;iCloud Drive把苹果一直试图在iOS上隐藏起来的文件系统开放了;Touch ID API把苹果的指纹识别技术开放了……

这一切都是为了吸引更多聪明的头脑来为苹果开发应用。2013年WWDC公布的数字是,应用商店共有90万款应用,应用量在这12个月中又足足增长了30%多,今年的数字是120万个。苹果商店在今年建立了一套新的规则―原先的排名、搜索和推荐规则都在逐渐失效,希望通过加入“流行应用”、“捆绑销售”和“连续加载”等方式,来改变现有的格局,让更多的应用有被发现的可能。

一直以来,苹果以能够带来更多的收入吸引开发者。市场研究公司App Anniez在其2013年应用市场关键趋势报告中指出,2013年,Google Play的应用下载量比iOS App Store多15%,不过iOS平台的商业化能力更强,其全年应用营收是Google Play的两倍。

毫无疑问,如果要赚钱的话,就不得不学习Swift了。在Quesade看来,苹果在可以预见的将来仍然会使用Objective-C代码去支持iOS系统,但是,在新的API上,或许将只使用Swift语言了,也就是说,开发者将会被迫向Swift迁移了。

上一篇:让游戏开发更简单 下一篇:伐开心,要包包