面世已一年:快速发展的Swift是否将淘汰Objective-C?
随便拉上一个果粉说说这一年来苹果公司的成就,Apple Watch 肯定排第一,再下来是 iPhone 破销量纪录及苹果 30 亿美元收购 Beats Electronics,消息灵通的人说不定还会提到 Apple Car。同样的问题摆在 iOS 开发者面前的话,去年苹果公司推出的新一代编程语言,诸多铁杆果粉早有耳闻的 Swift 必然在排行榜之列。
而如今,尽管距离 2015 年苹果全球开发者大会(WWDC 2015)开幕还有好几个小时,却已经有不少的参会开发者在旧金山的 Moscone West 会场外排队等候入场。在今年的 WWDC 上,每天将有 8 个小时的 Swift 实验室时间,苹果工程师团队将讲授 Swift 的用法,并解答开发者在 Swift 开发中遇到的问题,同时针对 Swift 专题,也将有 4 场演讲专门呈现,届时,Swift 必将成为众多参会者讨论的热点。
一年前的 WWDC 上,由苹果软件工程高级副总裁 Craig Federighi 为 Swift 揭幕,演示了类型推理、闭包和多个命名空间等功能。开发者们屏住了呼吸,一时间爆发出热烈的掌声。他还开玩笑说:“好多人压根儿不信 Swift 有多好,还说着‘那些人在胡扯些什么呀’的话”。
在发布仅 7 个月后,Swift 便已成为 Red Monk 编程语言排行榜上第 22 位最受欢迎的编程语言,并且将来很有可能代替 Objective-C,排名上升至第 3 位。TIOBE 2015 年 6 月编程语言排行榜显示,Objective-C 已进入“自由落体”,Swift 继续上升。
同样,在 Stack Overflow(开发者问答网站)对 157 个国家的 26,086 名开发者的调查中也发现:Swift 语言最受开发者欢迎,其以 76.6% 的比重高占榜首。
单从推广度上来说,1995 年推出的 Java 是 Swift 之前最成功的编程语言。尽管 Swift 只局限于 iOS 设备,但到 2017 年会有 15 亿台 iOS 设备,比如今的 10 亿多台几乎增加了 50%。纵观大局,Swift 成就下一个成功典范或许只是时间问题。
诸多大学和培训机构基于市场需求,已开始提供 Swift 课程。著名的 iOS 开发大牛 Ray Wenderlich 就表示,“Swift 的反响异常热烈,开发者趋之若鹜。”所以 Swift 推出没多久,他就立刻将课程重心转移到这门新语言上。
面对 Swift 的强大魅力,众多开发者怎么可能无动于衷?虽然 iOS 应用的编程语言是苹果公司说了算,但开发者们还是心甘情愿紧紧跟随,他们很清楚相比 Android 用户,iOS 用户能带来前者四倍的收益,如此一来,Swift 本身如何就不再是最重要的因素了。
在 Swift 之前,80 年代推出的 Objective-C 是唯一的 iOS 应用编程语言。但如今 Objective-C 已经有点过时了,开发者们甚至用“老掉牙”、“冗长乏味”、“令人生厌”来形容它。当然,只要是热门语言,总会引来褒贬不一的评价。其实很多开发者并不敢 妄自评论,生怕说了点不合时宜的话会曝光在 Hacker News 上。
打车应用 Lyft 的工程副总裁 Peter Morelli 被问到 Objective-C 语言是否太有难度时,并未正面回答这个问题,只是说:“它就像宗教战争似的,一片开发者忙得热火朝天的景象。”
Swift 为何能引发如此热烈的反响呢?众所周知,不同编程语言的差别实在一言难尽,挑几点来说,Swift 既安全(代码中少有漏洞出现),还体现了一些新特点,跟其他主流语言一样能为应用添加丰富多彩的附加功能。
另一个重要的优势是:开发者有什么需求,都能用 Swift 轻松表达出来交由电脑执行。同样的效果,可能用 Objective-C 就得多好几行代码,但 Swift 就简洁多了。“看看这些弯弯曲曲的代码和分号,用 Objective-C 的话,长度将是 Swift 的四倍,”就职于技术课程服务公司 Treehouse 的开发者 Myers Carpenter 说道。
6 个月前,Lyft 安排工程师拿 Swift 进行试验后,决定用 Swift 把 Lyft 应用重新编写一遍,预计在 7 月份完成这项工作。用 Swift 编写后的代码长度只是之前的1/5,且能将代码重复和更新花费的时间“从漫长的几个月缩减到短短几天,”Morelli 说:“这是 Swift 的最大优势。”
LinkedIn 旗下的文件共享服务 SlideShare 也是早期 Swift 应用者之一。该公司开发者反映说向 Swift 的过渡非常成功,但他们也付出了成长的代价。举个例子,13 英寸的 MacBook Pro 的处理能力根本不够应付将 Swift 转换为电脑可读格式的程序。SlideShare 的软件工程师 Kyle Sherman 在 LinkedIn 的工程博客上写道:“同事用 15 英寸 i7s 四核处理器的电脑,情况才好很多。不管怎样,粉丝们对于 Swift 依旧热情高涨。”
这类问题待到 Swift 成熟之时就会迎刃而解了。Swift 更新太快,还不稳定,给推广带来了阻碍,所以诸多开发者更愿意再等一段时间。Scott Logic 软件开发公司的技术总监 Colin Eberhardt 说,Swift 频繁更新使他不得不频繁调整自己的代码。他说:“做产品代码的,肯定不愿意用 Swift。”目前苹果还不愿回应这个问题。
目前为止 Objective-C 仍然比 Swift 更广为应用,但如果 Swift 继续发展下去,代替前者也不是不可能。一旦 Swift 稳定了,成熟了,苹果也许会选择只留其一,将 Swift 定为 iOS 应用唯一编程语言。也许未来几年内还不至于到这一步,但 Wenderlich 认为:“开发者们很可能纷纷转而使用 Swift,那时 Objective-C 将退出人们的视线。”