快速发展的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的发布 ...
随机推荐
- log4j.properties文件配置--官方文档
Default Initialization Procedure The log4j library does not make any assumptions about its environme ...
- GitHub干货分享(APP引导页的高度集成 - DHGuidePageHUD)
每一个APP都会用到APP引导页,分量不重但是不可缺少,不论是APP的首次安装还是版本的更新,首先展现给用户眼前的也就只有它了,当然这里讲的不是APP引导页的美化而是APP引导页的高度集成,一行代码搞 ...
- JNI 学习笔记系列(二)
c中没有Boolean类型的值,一般是使用1表示true,0表示false,c中也没有String类型的数据,c中的字符串要通过char数组来表示.c中没有byte类型,一般用char表示byte类型 ...
- mono & apache install
1.red hat 6安装完后网卡是默认不启动的 作为双生兄弟的CENTOS同样如是 第一步 设置网卡开机启动 进入 路径此目录下修改网卡配置文件 如果网卡驱动正常 会有如下文件 只要修改 ifcfg ...
- jQuery多图上传Uploadify插件使用及传参详解
因为工作需要,这两天接触到了Uploadify插件,由于是第一次用,花了我近一天的时间.下面我把我在用这个插件过程详细的分享出来,也让自己巩固一下,也希望能帮助到你. 所需文件: jquery-1.8 ...
- Ajax编程技术
AJAX:”Asynchronous JavaScript and XML” 中文意思:异步JavaScript和XML. 指一种创建交互式网页应用的网页开发技术. 不是指一种单一的技术,而是有机地利 ...
- git研究1
error:src refspec master does not match any 将本地GIT版本库PUSH到一个GITHUB上一个空的版本库时出现错误,本地版本库为空, 空目录不能提交 (只 ...
- 软件工程——UML简介
UML概述: UML是对OMT(对象建模技术).Booth(Booch方法)以及OOSE(面向对象的软件工程)等记号系统实施统一工作后得到的一种记号系统. UML(Unified Modeling L ...
- web服务器压力测试工具
http_load 是运行在linux操作系统上的命令行测试工具, 用来对网站做压力测试. 下载地址:http://www.acme.com/software/http_load/http_load- ...
- 享元模式(咖啡屋)【java与模式】
package com.javapatterns.flyweight.coffeeshop; public class Flavor extends Order { private String fl ...