快速发展的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的发布 ...
随机推荐
- GOOGLE------Reilly_Open_Source_Award
https://en.wikipedia.org/wiki/O%27Reilly_Open_Source_Award#2016
- 编译openjdk源码
http://www.cnblogs.com/ACFLOOD/p/5528035.html
- Maven Build Profiles--reference
What is Build Profile? A Build profile is a set of configuration values which can be used to set or ...
- [转] JAVA正则表达式:Pattern类与Matcher类详解(转)
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和 Matcher Pattern 一个Pattern是一个正则表达式经编译后的 ...
- android学习笔记之ImageView的scaleType属性
我们知道,ImageView有一个属性叫做scaleType,它的取值一共有八种,分别是:matrix,fitXY,fitStart,fitCenter,fitEnd,center,centerCro ...
- oracle学习----trace文件
1.查看v$diag_info视图,能查看跟踪文件的位置,具体的名称等信息. name列中,Diag Trace是11g跟踪文件所在位置 Default Trace File是当前会话的跟踪文件名 2 ...
- HttpClient 通过域名访问请求接口出现java.net.UnknownHostException解决方法
在项目中,有一个功能需要请求另外一个项目的接口来获取数据.该项目接口都是通过域名请求访问.每当调用到一定阶段后都会出现未知域名,导致请求数据失败.以下是错误内容 java.net.UnknownHos ...
- Vivado学习笔记_002
经过几天的试用逐渐熟悉了vivado,和ISE相比vivado确实有了很多改良. 发现了以下几个特点: 1.数据格式统一了 在以往的设计中,保存数据的格式非常多.ISE有很多种格式的文件,在tra ...
- json 转对象
架包: import com.alibaba.fastjson.JSON; String arryStr="[{\"Name\": \"A\", \& ...
- java基础加强
一.泛型 Generic 1.集合泛型: 在没有泛型之前,集合中存入的数据,类型就会丢失掉,在取出数据时,需要做强制类型转换,就有转换失败的风险,而这种风险,在编译阶段是没有办法检查出来的 引入泛型后 ...