Swift 横空出世:苹果为开发者重新造了一门语言

六月二日凌晨(北京时间),苹果 WWDC 2014 的主题演讲一开场,全场开发者还以为今年只是常规的系统更新——直到克雷格·费德里西站上舞台,宣布了一件谁都没猜到的事:苹果要发布一门全新的编程语言,名字叫 Swift。那一瞬间的惊呼,我隔着屏幕都能感受到。这是苹果十几年来第一次为它的开发者平台推出一门自有语言,意义远远超过一次常规的系统升级。这篇文章,就聊聊 Swift 横空出世这件事,以及它背后苹果的盘算。

先给判断:Swift 本身好不好用,还要时间检验;但苹果愿意为开发者重新造一门语言,说明它真正意识到,下一代平台的竞争,归根结底是对开发者心智的争夺。这是苹果从”封闭高冷”转向”讨好开发者”的一个重要信号。

现代编程语言与代码流光的科技意象

一、苹果为什么要自己造一门语言

要理解 Swift 这件事有多惊人,得先知道苹果过去用什么。过去十几年,开发 iOS 和 Mac 应用,用的都是 Objective-C——一门上世纪八十年代就成型、带着浓厚 Smalltalk 和 C 混合血统的老语言。它能干活,但写起来啰嗦、方括号满天飞、语法古怪,新人上手门槛极高。更要命的是,它的很多设计放在今天看来已经陈旧,开发者抱怨了很多年。

苹果不是没想过改良,但 Objective-C 包袱太重,牵一发动全身。于是他们干脆另起炉灶,由核心团队的 Chris Lattner 牵头,悄悄研发了一门全新的语言——这就是 Swift。它站在现代编程语言设计的肩膀上:借鉴了 JavaScript、Python、Rust、Go 这些年的经验教训,目标是既安全、又现代、还跑得快。

发布会上最燃的一幕,是那个叫 Playgrounds 的实时互动环境。主讲人一边在左边敲代码,右边的结果立刻跟着变——改一行、看一眼,像在画画一样写程序。这种即时反馈,对习惯了”写完编译半天”的开发者来说,冲击力是颠覆性的。苹果想用这种方式告诉所有人:写代码,可以既强大又好玩。

二、第一印象:Swift 好在哪

这几天我拿到 Xcode 的测试版,把官方那本语言指南从头读了一遍,又动手写了几个小例子,说几点直观感受。第一是语法干净。过去 Objective-C 里那种嵌套方括号、冒号满天飞的写法不见了,Swift 的代码读起来更接近现代语言,甚至有点像在写脚本。类型推断让你不必处处写类型声明,代码短了不少。

第二是它把”安全”刻进了语言骨子里。最典型的是可选值(Optional)的设计——它强迫你明确处理”一个值可能为空”的情况,从语法层面干掉了 Objective-C 时代那些恼人的空指针崩溃。别小看这个改动,iOS 应用崩溃率里,相当一部分就是空值没处理好造成的。苹果等于用语言设计,替你把一类 bug 提前挡在了门外。

第三,也是最务实的一点:Swift 和 Objective-C 可以在同一个工程里混着写。这太关键了——它意味着你不必推翻重写,可以在老项目里一点点掺进 Swift,渐进式迁移。苹果显然不希望开发者因为换语言而流失,这个”无痛过渡”的设计,是真正懂工程的人做出来的。官方还说,Swift 编译出来的代码性能相当可观,很多场景下不输甚至超过 Objective-C。

还有一个细节让我印象很深:它把脚本语言那种”轻、快、随手写”的体验,和系统级语言那种”安全、高性能”的要求,第一次比较好地捏合在了一起。过去你要么用 Python、Ruby 图个快,却要忍受性能和部署的麻烦;要么用 C、Objective-C 换来性能,却要承受繁琐和不安全。Swift 想做的,是让你在写一个小脚本般顺滑的语言时,编译出来的却是能直接跑在硬件上的高效代码。这种定位,在今天的主流语言里其实是相当稀缺的,也是苹果真正下功夫的地方。再加上 Playgrounds 那种所见即所得的环境,它对初学者尤其友好——苹果显然想降低入行门槛,把更多本来可能投奔安卓或 Web 的年轻人,拉进自己的开发者大军。

苹果多设备生态与开发平台的意象

三、比语言更大的信号:苹果在向开发者低头

把 Swift 放进这次 WWDC 的整体里看,你会发现苹果今年的姿态明显不一样了。iOS 8 一口气开放了一大堆过去死死攥在手里的能力:第三方键盘终于可以装上了,应用之间终于可以互相扩展了,Touch ID 的指纹可以给第三方 App 用了,还新推出了健康平台 HomeKit、智能家居框架,以及让开发者免费调用的云服务。

熟悉苹果的人都知道,它过去以”封闭”著称,什么都要自己说了算。可这两年,安卓阵营凭借开放和碎片化的生态,在全球市场份额上一路紧逼。苹果终于意识到:再把门关得死死的,开发者就要跑光了。于是今年一口气把抽屉拉开了一条缝。Swift 正是这个大转向里的一环——用一门更好学、更好写的语言,把更多开发者吸引到自己的平台上来。毕竟,平台之争的下半场,比的是谁家的应用生态更繁荣。

顺便一提,月底谷歌的 I/O 大会也要开了,安卓那边照例不会闲着。一个用新语言讨好开发者,一个靠开放和便宜机器铺量,两家的路数越来越分明,但目标是一致的——都想把开发者和用户,牢牢留在自己的院子里。

四、冷静看:换一门语言没那么轻松

激动之余,我也得说几句扫兴的。首先,Swift 现在还只是 1.0 的初版,接口设计还在快速变动,苹果自己都明说测试版之间语法可能不兼容。现在就把核心业务用 Swift 重写,大概率会被后续版本的改动折腾得死去活来。

其次,存量是绕不过去的坎。整个 iOS 生态积累了这么多年,大量成熟的第三方库、中间件都是用 Objective-C 写的,Swift 现在几乎没有自己的库生态。新项目也许可以尝尝鲜,老项目想全面切换,那是一场旷日持久的工程。我的建议是:现在就该学,就该在 Playgrounds 里玩,但生产环境里的关键代码,再观望几个版本,等语言和工具链都稳了再说不迟。

五、对国内开发者意味着什么

国内做 iOS 开发的队伍极其庞大, Swift 的出现,对这批人是个不大不小的坎。好在它语法现代、资料会很快跟上来,学习成本远低于当年啃 Objective-C。我身边不少做 iOS 的朋友已经开始翻官方文档了。我的建议是:把它当成一次升级内功的机会,而不是一次被迫的逃难——语言是工具,真正值钱的还是你对平台、对产品、对用户体验的理解。

结语。六月的这场 WWDC,表面上是一门新语言、一次系统升级,骨子里却是苹果在平台战争里主动求变。Swift 能不能真的一统苹果开发的天下,现在下结论为时尚早;但它的出现至少说明一件事:在今天这个时代,再强势的平台,也得弯腰讨好开发者。对我们这些写代码的人来说,多一门值得学的新语言,永远不是坏事。至于它到底香不香,我打算这个夏天,多写几行代码再回来汇报。

赵久龙 站长

852 文章
0 粉丝
0 评论

0 条评论

还没有评论,快来抢沙发吧!

发表评论

客服