快速发展的Swift是否将淘汰Objective-C?

时间:2022-05-07 04:17:35

随便拉上一个果粉说说这一年来苹果公司的成就,Apple Watch肯定排第一,再下来是iPhone破销量纪录及苹果30亿美元收购Beats Electronics,消息灵通的人说不定还会提到Apple Car。同样的问题摆在iOS开发者面前的话,去年苹果公司推出的新一代编程语言,诸多铁杆果粉早有耳闻的Swift必然在排行榜之列。

快速发展的Swift是否将淘汰Objective-C?

而如今,尽管距离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继续上升。

快速发展的Swift是否将淘汰Objective-C?

同样,在Stack Overflow(开发者问答网站)对157个国家的26,086名开发者的调查中也发现:Swift语言最受开发者欢迎,其以76.6%的比重高占榜首。

快速发展的Swift是否将淘汰Objective-C?

单从推广度上来说,1995年推出的Java是Swift之前最成功的编程语言。尽管Swift只局限于iOS设备,但到2017年会有15亿台iOS设备,比如今的10亿多台几乎增加了50%。纵观大局,Swift成就下一个成功典范或许只是时间问题。

快速发展的Swift是否将淘汰Objective-C?

诸多大学和培训机构基于市场需求,已开始提供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将退出人们的视线。”