现在是切换到 Swift 的合适时机吗?

现在是切换到 Swift 的合适时机吗?

唐天勇唐天勇

回答这个问题之前,让我们先来简要地回顾一下 Swift 的发展状况。

时间退回到 2014 年 6 月。那时 Swift 刚刚发布,开发者们普遍认为 Swift 还达不到生产环境的标准,再加上一些以偏概全的 benchmark,甚至有人认为 Swift 不过是个玩具。大家有理由相信经历了几十年考验的 Objective-C 将继续承担生产工具的重任。

2015 年 Apple 对 Swift 进行了一些针对性的改进,包括性能提升和语言方面的增强(引入了 Error Handling、Protocol Extension 等)。2015 年 8 月 Apple 发布了 Swift 2,并于同年将其开源。2016 年 Swift 延续了如火如荼的发展态势,Apple 也计划在今年秋季发布 Swift 3 的稳定版。就在写这篇文章的时候,Swift 3 语言的演变已经达到了最后阶段,一切都在良好有序地进行着。

下面我们来看看从 Objective-C 切换到 Swift 的利弊。

优势

  • 类型安全:得益于 Swift 天生的特性,有些错误可以提前到编译期间发现。
  • 跨平台:Apple 不仅希望在自家设备上运行 Swift,还希望把领土扩大到其他平台。现在 Swift 已经支持 Linux、FreeBSD 了。Windows 上也出现了 MinGW 或 CygWin 的非官方移植版本。

缺点

  • 语法尚不稳定:未来新版的 Swift 可能还会产生语法上的不兼容,增加代码维护的难度。
  • ABI 还不稳定:原定在 Swift 3 中稳定的计划被推迟了,这意味着 Swift 对 library 或 framework 的支持还不够好。
  • 第三方库有待积累:因此有时可能还需要依赖 Objective-C 的库。

不过 Swift 和 Objective-C 可以相互操作,也就是说我们能毫不费力地在 Swift 中使用 Objective-C 的第三方库。如果没有发布 library 或 framework 的需要,语法和 ABI 的不稳定并不应该成为切换到 Swift 的阻碍,因此在我看来就没有太强烈的理由再对 Swift 说 NO 了。

最近我们也看到有越来越多的公司开始拥抱 Swift 了,其中不乏像 Facebook 这样的大公司。Facebook 前不久发布的 Swift SDK 虽然还只是 Objective-C SDK 的 wrapper,但这也标志着 Swift 在日趋成熟,是时候可以委以重任了。LeanCloud 也响应用户呼声,在一周前发布了 Swift SDK

如果一年前问我能不能切换到 Swift,我一定会给出保守的回答。但现在我认为该是切换 Swift 的绝佳时机了。虽然 Swift 距离稳定还有一段路要走,但至少可以说「Swift is not dead」,它会青春盎然地向前进,而不是偃旗息鼓失掉了方向。

头图:toptal.com

文章被以下专栏收录
8 条评论
推荐阅读