别无选择,除了学习Swift

2014年06月12日 21:18  《第一财经周刊》  收藏本文     

  Swift,一直以来都是一副“玩具语言”的无害模样,当它新晋为苹果的“御用语言”那一刻,就成了苹果占领更大世界的利器。

  文|孙鹏

   在2014年的发布大会上,苹果没有发布任何硬件产品,却给了开发者一把新的武器—Swift,这是一门更易于掌握的编程语言。即便简单,也意味着要开始学习一门新的语言了,可是不得不学,因为它是苹果的开发语言。

   “它是C语言和Objective-C完整的替代品。”当苹果首席软件工程师克雷格·费德里吉(Craig Federighi)宣布Swift将是苹果新的御用语言时,台下程序员立即发出“哇喔”的呼声。

   并非只有乐观,更多开发者对此情绪复杂,不少人在现场就在Macbook或是iPad上打开了Swift学习教程—尽管费德里吉称,有经验的开发者能够很快地熟悉且精通它,也因其相对简单而被人称为“玩具语言”,但对于大多数开发者,这是一门新的语言。

   如果不是苹果,大家不会为之纠结—Google在2009年推出的Go语言,微软[微博]于2010年正式发布的F#语言,最终并未吸引到大规模的人使用,但一直以来,程序员们为了苹果都在使用晦涩的Objective-C。

   Objective-C是一门古老的编程语言了,它由软件工程师Brad Cox在1980年代早期发明。1988年,乔布斯离开苹果之后创立的NeXT公司买下Objective-C语言的授权,并基于Objective-C开发了其NeXTSTEP用户界面与开发环境。当1996年苹果公司收购NeXT公司时,乔布斯回归苹果,NeXTSTEP成为苹果操作系统OS X的基础,Objective-C由此成为苹果公司各类产品的主要编程语言。

   它的确能带来更好的用户体验。作为C语言的衍生版本,Objective-C拥有接近C语言的超高执行效率,这也是iPhone比Android手机用起来更加流畅的原因之一。

   但相比Java或C#这样的现代编程语言,Objective-C生涩难懂。“从语言本身来讲,它源自C语言,但又涵盖了Java一些特点,比如弱变量类型,这让程序员适应起来并不容易。”iOS开发者张鸣向《第一财经周刊》表示。

   即便如此,在业界公认的TIOBE编程语言排行榜上,Objective-C在全球程序员中的热度排名由2009年的第36位飙升至当前的第3位,这只有一个原因:它是唯一能够用来为iPhone和iPad编程的语言。

   苹果需要更多的人来为它生产软件了。自有App Store以来,软件不再是冷冰冰的技术产品,而是变成了一种快速消费的商品。既然是快速消费,就需要更多的生产团队,这意味着苹果必须降低“生产门槛”。

   Swift是一个好的选择。相比Objective-C陈旧笨重的语法,Swift的代码显然要简洁易懂,在WWDC上,费德里吉展示了如何用一行Swift代码实现原本通过Objective-C需要四行才能实现的功能。“它更能发挥程序员的创造力,让程序员能够更自由地表达自己,而不是和语言战斗,”张鸣说。

   “对我来说,Playground的实时显示功能是Swift最吸引人的地方,”资深iOS开发者Cocos2D引擎创始人Ricardo Quesade说,“那就像一个沙盒,让我能够随时测试想法,更迅速地开发,快速地改进。”在苹果大会上,苹果官方特地展示了这项功能,程序员可以在左侧输入代码的同时就在右侧实现代码执行效果。

   Swift也代表更高的效率。在苹果大会上,官方给出了一组各类语言的对比数据,以开发语言Python为类比对象,Objective-C的效率是Python的2.8倍,而Swift则是Python的3.9倍。

   很重要的一点,是Swift解决了“垃圾回收”问题。Objective-C长期以来最受诟病之处是其不支持“垃圾回收”,这是一种自动的内存管理机制—当一部分内存空间不再需要使用时,垃圾回收器会将其自动释放,这使得程序员不需要手动去释放多余内存,可以借此减轻许多负担。但是iOS开发者们一直无法享受到这样的福利,他们必须小心翼翼地管理自己的程序所占用的内存,防止程序莫名其妙地崩溃。Swift终于支持了开发者们梦寐以求的垃圾回收功能。

   不难想象,很多开发者会被这种简单所吸引。“如果苹果决定开源的话,它有潜力去吸引更多别的平台的开发者,我肯定是会用它。”Quesade说,他也会认真考虑将自己的产品移植到这个平台上。

   除了更为友好的Swift语言,开发者在很多方面都能感受到苹果更为开放的态度—第三方输入法开放了;iCloud Drive把苹果一直试图在iOS上隐藏起来的文件系统开放了;Touch ID API把苹果的指纹识别技术开放了……

   这一切都是为了吸引更多聪明的头脑来为苹果开发应用。2013年WWDC公布的数字是,应用商店共有90万款应用,应用量在这12个月中又足足增长了30%多,今年的数字是120万个。苹果商店在今年建立了一套新的规则—原先的排名、搜索和推荐规则都在逐渐失效,希望通过加入“流行应用”、“捆绑销售”和“连续加载”等方式,来改变现有的格局,让更多的应用有被发现的可能。

   一直以来,苹果以能够带来更多的收入吸引开发者。市场研究公司App Anniez在其2013年应用市场关键趋势报告中指出,2013年,Google Play的应用下载量比iOS App Store多15%,不过iOS平台的商业化能力更强,其全年应用营收是Google Play的两倍。

   毫无疑问,如果要赚钱的话,就不得不学习Swift了。在Quesade看来,苹果在可以预见的将来仍然会使用Objective-C代码去支持iOS系统,但是,在新的API上,或许将只使用Swift语言了,也就是说,开发者将会被迫向Swift迁移了。

   联系编辑:lichaowen@yicai.com

分享到:
收藏  |  保存  |  打印  |  关闭

已收藏!

您可通过新浪首页(www.sina.com.cn)顶部 “我的收藏”, 查看所有收藏过的文章。

知道了

0
猜你喜欢

看过本文的人还看过

收藏成功 查看我的收藏
  • 新闻越南:就南海争端3次主动与中国沟通被拒
  • 体育皮尔洛世界杯后退出意大利队 经典主题曲
  • 娱乐黄奕老公早知其出轨 前夫:闪离最开心
  • 财经博古孙女解华润起家史:陈云给两根金条
  • 科技中移动酝酿下半年4G降至600元
  • 博客央视张斌:为什么阿根廷队不招人喜欢
  • 读书优劣悬殊:抗美援朝敌我装备差距有多大
  • 教育中国734所不同类型大学多项指标排行榜
  • 苏鑫:中央或推首套房定向降准政策
  • 刘姝威:房价降下去 股指升起来
  • 徐小明:A股多内幕 市场严重缺乏诚信
  • 别志平:止损止盈的怎么设最适合?
  • 陈思进:美国老百姓为何不愿买房
  • 叶檀:央行与投资者保护基金赚了多少
  • 张化桥:中国必须加息而不是减息
  • 陶冬:负利率难救欧洲经济
  • 沙黾农:重磅利好将逆袭A股
  • 皮海洲:官董撤离 独董能否独起来