快速发展的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将退出人们的视线。”
快速发展的Swift是否将淘汰Objective-C?的更多相关文章
- 八爪鱼招标网的百度权重升为2了,独立IP也从0快速发展为1000
自八爪鱼招标网上线以来,本着以客户一切利益为出发点,坚持提供国内首个免费招标信息平台为目标,经过各位同事不断地努力,不断收集客户各种各样的招标.采购实际需求,与政府.事业单位及中小型企业一对一的沟 ...
- VR快速发展下,从业者如何把握机会?
美国科技博客VentureBeat周末刊登赛斯·沙赫纳(Seth Schachner)的文章,分析了在虚拟现实快速发展的情况下,业内所面临的机会,以及如何把握这些机会. 沙赫纳是资深的数字战略 ...
- NetSuite助力各行业企业快速发展
Oracle NetSuite今天发布了一系列全新技术创新,帮助各行各业企业提升收入.海外扩张以及赋能更多业务用户.最新推出的商务管理.财务管理和分析能力可协助企业利用NetSuite平台来超越客户预 ...
- iOS开发——技术精华Swift篇&Swift 2.0和Objective-C2.0混编之第三方框架的使用
swift 语言是苹果公司在2014年的WWDC大会上发布的全新的编程语言.Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题.Swift语言采用安全编程模式,且引 ...
- 星浩资本快速发展引擎:IT就是生产力
星浩资本成立于2010年,是一家涵盖私募基金.开发管理.商业与现代服务业三大业务范围的综合性管理公司,专注于投资中国首创.高成长性.高回报率的创新型城市综合体. 年轻的星浩资本在商业投资上有其独到的商 ...
- iOS8发展~Swift(三)UI详细解释
一个.总结 使用Swift去完成iOS的UI接口,事实上,目前的想法和OC实现几乎一致,只是在措辞非常大的差异,修改前更更大的个人控制.为有纯代码强迫症,所以接下来创建一个纯代码动项目,然后在此基础上 ...
- 微软 Build 2017 开发者大会:Azure 与 AI 的快速发展
欢迎大家持续关注葡萄城控件技术团队博客,更多更好的原创文章尽在这里~~ 一年一度的微软 Build 大会准时起航,本年度大会从旧金山移师西雅图,一个近年来凭借女神汤唯而在中国家喻户晓的美国西部海滨城市 ...
- 在Visual Studio 2017中使用Asp.Net Core构建Angular4应用程序
前言 Visual Studio 2017已经发布了很久了.做为集成了Asp.Net Core 1.1的地表最强IDE工具,越来越受.NET系的开发人员追捧. 随着Google Angular4的发布 ...
- 【Asp.Net Core】在Visual Studio 2017中使用Asp.Net Core构建Angular4应用程序
前言 Visual Studio 2017已经发布了很久了.做为集成了Asp.Net Core 1.1的地表最强IDE工具,越来越受.NET系的开发人员追捧. 随着Google Angular4的发布 ...
随机推荐
- 嵌入式Linux-objdump命令的使用
objdump命令的使用 objdump命令是Linux下的反汇编目标文件或者可执行文件的命令,它还有其他作用,下面以ELF格式可执行文件test为例详细介绍: objdump -f test 显示t ...
- 正确的使用枚举(Enum)
状态与选项的区别(states and options) 在用enum之前,我个人觉得,区分一下状态和选项的概念还是很必要的. 状态,同时只能有一种,如“OK”,“Error”,不可能同时是OK和Er ...
- 关于NSRunLoop和NSTimer的深入理解
一.什么是NSRunLoop NSRunLoop是消息机制的处理模式 NSRunLoop的作用在于有事情做的时候使的当前NSRunLoop的线程工作,没有事情做让当前NSRunLoop的线程休眠 NS ...
- (转)了解了这些才能开始发挥jQuery的威力
原文地址:http://www.cnblogs.com/dolphinX/p/3347677.html 由于当前jQuery如此的如雷贯耳,相信不用介绍什么是jQuery了,公司代码中广泛应用了jQu ...
- JavaWeb_Day10_学习笔记1_response(3、4、5、6、7、8、9)发送状态码、响应、重定向、定时刷新、禁用浏览器缓存、响应字节数据、快捷重定向方法、完成防盗链
今天学习重点: 1.response和request响应和应答分别学习: 请求响应流程图 response 1 response概述 response是Servlet.service方法 ...
- Openfire:安装指南
本文的英文原文来自 http://www.igniterealtime.org/builds/openfire/docs/latest/documentation/install-guide.html ...
- DOS命令教学之详解批处理
批处理文件是由一个或一个以上的DOS命令及可执行命令组成的带有扩展名.BAT的文件.当用户以批处理文件名为命令时,DOS会自动依次执行文件中的命令.批处理文件的特点是一次建立可多次执行.下面,寻修网h ...
- editActionsForRowAtIndexPath(iOS8) tableview编辑(删除、插入、移动)
ios8 出来的左滑小菜单 可以自定义想要的按钮 (要求ios8以上) - (nullable NSArray<UITableViewRowAction *> *)tableView:(U ...
- PHP pear安装出现 Warning: require_once(Structures/Graph.php)...错误
今天在WINDOWS安装pear,一路无阻很顺利安装完成,接着想安装下pear email包来玩下,但接下来却报: Warning: require_once(Structures/Graph.php ...
- 【ADO.NET】5、手机归属地查询( winfrom )
using System.IO; 有一个数据库手机号码的txt文件,格式是 : 13500000000-13560000000-中国移动 查询结果: 湖南移动[邵阳]文件夹选择对话框 FolderBr ...