发布十年后,苹果的Swift语言走向衰落
发布十年后,苹果的Swift语言走向衰落
2024 年的 WWDC 上,AI 的风头已经盖过了一切,苹果向人们展示了一系列的新特性,宣布把 AI 能力融入到了整个生态之中。社交媒体上讨论的焦点显然也是各种各样的 AI 功能,大家似乎已经忘了,WWDC 其实是一个关于开发者的大会。
与开发者直接相关的,苹果还对外公布了 Swift 6 的细节。我仍然记得, 2014 年时,移动互联网正如日中天,那一届的 WWDC 上,Swift 正式问世,它是一门基于 C 和 Objective-C 的编程语言,最初被设计用于开发 iOS 和 OS X 的应用程序。
在这之前,若想在 iOS 上开发应用程序,那 Objective-C 是唯一的选择。但 Objective-C 的缺点也显而易见,它的语法冗长,学习曲线陡峭,内存管理复杂,缺乏众多现代语言特性。于是,Swift 语言被寄予厚望。
现在,一转眼,十年过去了。今天我们来聊聊 Swift 吧。
Swift 的缘起和野心
2010 年的夏天,时任苹果开发者工具部门主管的 Chris Lattner 计划为 OS X 和 iOS 平台开发新一代的编程语言。这位 Chris Lattner 来头可不小,他曾经参与创建过许多重要的编译器项目,比如 LLVM、Clang。
那年,移动互联网正在风头之上,诞生于 80 年代的 Objective-C 暮气沉沉,已经无法承载苹果下一个阶段的发展目标。Chris 看到了诸如 Rust、Python 等新语言的闪光点,也听到了内外部许多工程师吐槽 Objective-C 毫无建树。他心里清楚,Objective-C 的很多固有缺陷,仅仅靠渐进式的优化是无法解决的。
于是,他小规模和同事商量后,决定要为苹果打造一个立于时代前沿的编程语言。
接下来,Chris 用了近一年的时间实现了大部分基础语言结构,之后另一些语言专家加入进来持续改进。到了 2013 年,该项目成为了苹果开发工具组的重中之重,Chris 带领着他的团队逐步完成了一门全新语言的语法设计、编译器、运行时、框架、IDE 和文档等相关工作,并在 2014 年的 WWDC 大会上首次登台亮相。
这门语言的名字就叫做:Swift,Logo 是一只轻盈飞扬的雨燕。
很多人以为,Swift 的发展目标仅仅是支撑苹果生态应用的发展。但如果你留意的话,当年在《The Swift Programming Language》电子书中,Chris 曾经明确写过他对 Swift 的期许:
Swift is intended to be the first industrial-quality systems programming language that is as expressive and enjoyable as a scripting language. [ … ] It ’ s designed to scale from ‘ hello, world ’ to an entire operating system.
后来,在采访中,他补充说:"从一开始,我们就是要将 Swift 打造成为一门通用的语言。这也许有点痴人说梦,但是大家等着,过几年就知道了。无论是我还是苹果的其他人,都把 Swift 当成是未来世界的主流语言来看待的,它将会超越 Python,甚至有一天取代 C。"
也就是说,无论是应用开发、脚本语言还是底层的系统设计,Swift 都可以胜任。这是它的目标和野心。
Swift 开源,并向其他平台延展
理解了这个出发点,我们也就明白了为什么 Swift 会开源。
在 2015 年的 WWDC 大会上,苹果发布了 Swift 2.0 ,并宣布于年底开源 Swift 语言。当时很多人没有注意到,Swift 2.0 中有一个重要的特性是引入了对 Linux 的支持。显而易见,苹果从没把 Swift 局限于自己的生态之中。
可以这么讲,目前世界范围内,主流的编程语言都是开源的。一方面,开源可以汇聚公司之外开发者的力量。另外一方面,开源社区也可以帮助 Swift 核心团队收集开发者的反馈。毫无疑问,这些都有利于 Swift 更快地走出苹果,成为一个通用的编程语言。
几个月后,开源社区陆续有开发者把 Swift 语言移植到新的平台当中。诸如 Android、Linux ARM、FreeBSD 和 Windows。Swift 的发展顺风顺水,在开发者社区中,它的影响力逐步超越了 Objective-C,并且像 IBM 这样的重要选手也逐步参与进来,推进 Swift 在服务端上的工作。
2016 年的 WWDC 上,苹果依旧按照固定的节奏发布了 Swift 3.0 ,一切井井有条地在进行之中。此时,在苹果的生态之中,Swift 语言已经站稳脚跟,但服务器端,又有另外一匹黑马杀了出来:Go 语言。
还记得吧, 2014 年 Swift 发布之时,也正是 Docker 火热之时。随后的几年里,以 Docker 和 Kubernetes 为核心的技术在云计算领域大为流行,他们被称为云原生——为云而生的新一代技术。而云原生技术中重要的开源项目都是用出自 Google 的 Go 语言编写的,这间接促进了 Go 语言在服务器领域的流行。
Swift 看起来并没能渗透进入服务器领域。
或许一门编程语言想要获得更多开发者的信任,也需要时间的积累。至少 Chris 是这么认为的。后来,一次采访中,记者问他,Swift 已经发展到 3.0 版本了,为什么大家看起来还是用 Swift 来写 iOS 应用?言外之意是 Swift 并没能破圈。
Chris 仍旧自信地回答道:" 我现在根本不担心 Swift 在服务器端最后不会成功。现在最大的问题是大家还觉得 Swift 只是苹果自己搞出来的东西。他们觉得 Swift 不过是苹果自己的玩具,只能用在苹果自己的 iOS 系统和 macOS 系统上。所以我们应该加大开源和构建社区的力度。现在外行对于 Swift 的态度还可以接受,慢慢地 Swift 就会在系统开发领域追上来。"
核心人物逐步淡出
出人意料的是, 2017 年 1 月,Swift 的核心人物 Chris Lattner 宣布自己将离开苹果公司,加入特斯拉。写给社区的邮件中,他说他接下来仍然会继续作为 Swift 核心团队的成员,推动 Swift 的发展。
随后 2017 年的 WWDC 上,苹果照例发布了 Swift 4.0 。不过,值得注意的一个细节是,这一年的主论坛中,苹果没有再提到 Swift,虽然分论坛中仍旧有不少 Swift 相关的话题。或许我们可以做一个推测:Chris 离开之后,随着开源进展的深入,苹果把 Swift 的发展重点也放到了开源社区的经营上。
很多年后再回看,我仍旧觉得 Chris 的离开对于 Swift 的影响是决定性的。有趣的是,Chris 在特斯拉也没待多久,便辗转去了 Google。在 Google 待了三年后,他又加入了一家芯片创业公司 SiFive 负责平台工程。2022 年初,离开那家创业公司后,Chris 自己创业,成立了 Modular AI,准备重建人工智能基础设施。
2023 年 5 月,Modular AI 宣布推出一门全新的编程语言 Mojo。为什么要做 Mojo 呢?Chris 解释说,一开始创业,他也没想到要再做一门编程语言。后来,他和团队发现,在 AI 编程中,上层框架和下层硬件的鸿沟实在是太大了,为此,开发者不得不多写一些额外的适配代码。他们实在无法忍受这种复杂性,于是 Mojo 便诞生了。
你可能会好奇,为什么 Chris 没有使用 Swift 来解决这个问题?
因为闹翻了。2021 年夏天,Chris 已经退出 Swift 核心团队。据后来的表述,主要原因是他无法忍受糟糕的沟通氛围,他和其他社区成员的想法越来越被忽视,团队的透明度也出现问题。他同时认为,自己在 Swift 的影响力已经减弱,而他关心的一些核心设计理念,比如简洁性,似乎已经不再是大家所信奉的东西。
也就是说,从 2021 年年中之后,Chris 已经不再参与 Swift 的开发工作了。
Swift 继续发展,但也慢了下来
自从 2019 年发布 Swift 5 以来,一直到今年,Swift 没有再进行大的版本迭代,转而,它不断强化 5.x 版本。2019 年, 5.0 实现了 ABI 稳定性,并发布了 SwiftUI。2020 年,Swift 5.3 开始支持 Windows。2021 年,Swift 5.5 将 Concurrency 加入了标准库,以增强 Swift 的并发编程能力。2022 年,又引入 distributed actor 能力。2023 年,Swift 5.9 支持 C++ 互操作特性。
但我不禁想问,Swift 实现当初的目标了吗?
根据苹果官方的数据,目前已经有 100 多万个 App 使用 Swift 开发。与十年前相比,Swift 的生态早已经成熟了不少。去年,苹果甚至用 Swift 重写了 Foundation 库,它被誉为 macOS 和 iOS 应用程序的基石。
一个不可回避的事实是,越来越多的开发者已经在使用类似 Flutter 之类的跨平台软件来开发应用,而 Flutter 使用的编程语言是 Dart。当然,如果想开发原生的 iOS、macOS 应用,那 Swift 当之无愧是最佳选择,它在多方面的能力都优于 Objective-C。
同时,虽然 Swift 仍在努力破圈,增加了诸多服务端语言才需要的能力,但在服务端语言的市场中,Swift 几乎没有什么渗透。系统级语言层面,C++ 之外,Rust 语言找到了新的生态位,Swift 也没什么踪影。而当下大火的 AI 编程,虽然 Swift For TensorFlow 曾经野心勃勃,但目前看,也仍然还局限在 iOS 开发中,鲜有新的建树。
在刚刚结束的 WWDC 2024 大会上,Chris 当年的继任者,苹果语言和运行环境总监 Ted Kremenek 仍旧放出豪言说,Swift 是取代 C++ 的最佳编程语言。"Swift 的安全性、速度和易用性,加上内置的 C 和 C++ 互操作性,意味着 Swift 是继任 C++ 的最佳选择。"
当然,这次他的话并没有在社区中引起什么强烈反响,甚至我搜了很久,才在某个角落里找到 Swift 相关的新闻。一个不争的事实是,Swift 并没有像当年预想的那样,成为一门通用和广受欢迎的编程语言。
并且,我认为,Swift 最好的发展时机已经过去了。也许再过几年,苹果也不得不承认,Swift 最合适的位置仍然是成为苹果生态内最好的编程语言。一统天下,替代 C++ 之类的豪言壮语,也就只能停留在梦想的层面了。
-
- 贾跃亭坐不住了
-
2024-06-15 09:46:35
-
- 懂车帝想单飞,最大的挑战来自雷军
-
2024-06-15 09:44:19
-
- 北大才女4分钟演讲,整个世界都沉默了
-
2024-06-15 09:42:03
-
- 济水在哪里?@济南人,一起唤起这些不能忘却的记忆
-
2024-06-15 09:39:47
-
- 不少人喜欢在家里客厅挂鹿头,寓意着对美好生活的向往与追求
-
2024-06-14 01:56:55
-
- 北京漫天粉橙晚霞,你看到了吗?宛如油画,美得让人心醉
-
2024-06-14 01:54:38
-
- 扮演小丑女的明星,陈美嘉美出新境界,而她美颜开十级还是辣眼
-
2024-06-14 01:52:21
-
- PDD被传分手,女方发声尽显高情商,难怪PDD发誓只会娶她
-
2024-06-14 01:50:04
-
- 太原的这个海洋馆真的美炸了,你不去看看吗
-
2024-06-14 01:47:47
-
- 她24岁一举成名,事业巅峰远嫁国外,今45岁却成单亲妈妈!
-
2024-06-14 01:45:30
-
- 苏有朋老婆照片走红, 比林心如漂亮, 两人孩子已经会打酱油了
-
2024-06-14 01:43:13
-
- 十佳歌手主题有哪些?
-
2024-06-14 01:40:56
-
- 生活中大智若愚的3大生肖,多做事少说话,日子会越来越好
-
2024-06-14 01:38:39
-
- 神话Andy婚礼曝不合“少了他合体”公司无奈:当天状态不好
-
2024-06-14 01:36:22
-
- 不必急着跟风给苹果WWDC2024打差评
-
2024-06-13 03:15:41
-
- 音乐剧《觉醒年代》唱响羊城,主创主演揭晓背后的故事
-
2024-06-13 03:13:25
-
- 高位贷款的买房人,每天都在盼着存量房贷利率下降
-
2024-06-13 03:11:08
-
- 苹果下了一盘大棋
-
2024-06-13 03:08:52
-
- 大模型军备竞赛远未结束,但已注定成为少数人的游戏
-
2024-06-13 03:06:36
-
- 都要冲量和普及智驾,但华为和小鹏选了不同的道路
-
2024-06-13 03:04:19