+8613426109659
webmaster@21cto.com

苹果正在悄悄重写 iOS,但不是用 Swift 或 Objective-C

编程语言 1 43 15小时前
图片

导读:苹果公司正在iOS操作系统上进行一场类似于Thanos那样的重大变革,而这一变革的细节却并未引起大多数开发者的足够关注。请跟随本文的深入分析,一起探索这一变革的全貌。

在苹果公司强大的开发生态系统背后,iOS的部分功能正在悄然经历重写。这一过程并非采用Swift语言,也不是Objective-C,而是采用了一种全新的编程语言。在社区中,有一半的人至今仍在半开玩笑地将这种新语言比作是洒在键盘上的ASCII码。


的确,当你在凌晨两点还在与Xcode的崩溃问题作斗争,或者试图让你的应用程序不再随机抛出“EXC_BAD_ACCESS”错误时,苹果的工程师们正在默默地重写你脚下的代码基础。


目前,苹果公司的招聘信息、泄露的提交记录以及社区中的信息都明确表明,苹果正在将Rust语言引入iOS生态系统,这并非空穴来风。如果你已经在苹果的生态系统中工作了很长时间,你就会明白苹果公司不会轻易地进行“试验性”的尝试。


那么,这为什么如此重要呢?因为苹果公司从C语言和Objective-C的基础转向了内存安全、并发友好的系统级编程语言,这意味着你的应用程序(以及整个iOS平台)可能会运行得更快、崩溃更少,甚至可能让你不再质疑自己的职业选择。


简而言之,为了提高安全性和性能,苹果公司正在使用类似于Rust的语言重写iOS系统的关键部分。


这可能不会完全取代Swift,但确实意味着将会有一些改变。


苹果公司要解决的核心痛点


作为全球用户规模最大的消费级操作系统之一,iOS的代码量以千万行计,其中大部分代码仍然是用C语言和Objective-C编写的。


苹果公司曾经的历史包袱带来了几个现实的难题:

·内存安全风险→ C语言及其衍生语言容易留下可以被利用的安全缺陷;

·复杂度负担→ 维护数十年的代码树,自然会导致开发节奏变慢;

·安全压力攀升→ 许多零日漏洞都与不安全的内存访问有关。


换句话说,苹果公司不仅追求速度,还要求稳定、精确和可控,同时在保证安全性的同时不能牺牲性能,而且在性能和速度方面也不能有任何妥协。


新语言的闪亮登场


尽管尚未正式公布,但从职位描述、社区线索以及开源代码的痕迹来看,苹果公司似乎正在内部试用一种新自研的编程语言。


这种新语言可能融合了以下三类特征:

·近似Swift的语法 → 更加亲近开发者,易于阅读和编写;

·借鉴Rust的所有权模型 → 默认实现安全的内存管理;

·深度对接LLVM → 在性能和跨平台后端方面拥有更强的控制力。


我们可以将它类比为一种面向内核和底层框架的Swift(仅是类比,并非等同)。

为什么不直接使用Rust?


这确实是一个好问题——Rust已经证明了自己既快速又安全。然而,苹果公司在核心基础设施上很少将关键点交给外部栈,更倾向于端到端的自控,原因包括但不限于:


·工具链主权(Xcode / LLVM / Clang的一体化);

·iOS / macOS构建系统的深度耦合与可演进性;

·在法律和知识产权层面的完全自由(无外部治理依赖)。


Rust确实启发了这条路线图;然而,苹果公司更希望拥有一套从语法到编译后端都能完全掌控的语言和生态系统。


旧栈与新栈的对比(示意)


当前(iOS内部)


+-------------------------+| Objective-C / C / Swift ||  - 性能尚可             ||  - 内存不安全           |+-------------------------+


下一步,分模块替换:


+-------------------------+| New Apple Language      ||  - 性能关键路径          ||  - 内存默认安全          |+-------------------------+


迁移如何落地(决策树思路):


+----------------------------+                | 该子系统是否既敏感于性能又 |                | 伴随高安全风险?           |                +-------------+--------------+                              |                       是     |      否                              |                       v       |      v            用新语言重写/封装 |  暂留 C / Swift


预期优先迁移:内核模块、安全框架、低层守护进程(daemons)等既要性能又要安全的部位。


基准表现(推测性质)


根据内部研究和论文线索的归纳,早期的试验显示: 


折中在于:编译耗时略有增加,但换来的是显著的内存安全收益和缺陷面的缩减。

现在,让我们来看看不同编程语言代码风格的对比。


Objective-C(旧式):


NSString *name =@"iPhone";NSLog(@"Hello, %@", name);

Swift(现代级):


let name = "iPhone"print("Hello, \(name)")

新苹果语言:


根据公开内容推测的代码可能看起来像这样。


let name: String = "iPhone"print("Hello, \(name)")// 默认安全,约束更强


从代码风格来看,新苹果语言更接近Swift,但在内存和并发等底层方面有更严格的约束,以减少在底层场景下的崩溃级错误。


更大的版图策略


这并非仅仅是追赶潮流,更多的是苹果公司为了保护其价值万亿美元的平台所采取的策略:


·每消除一个内存缺陷,都在节约补丁和应急处理的高昂成本;

·每阻断一次利用链,都在保护数十亿设备的安全边界;

·每把工具链握在手里,都在加强苹果公司一贯的垂直整合能力。


因此,在这场语言之争的背后,实际上是安全、效率与控制权三者之间的平衡策略。


结语


在短期内,开发者可能不会在App Store的公开列表中看到这门新语言。相反,它更可能在苹果公司内部悄悄地服役多年,先将关键的底层部分替换稳妥。可以确定的是:未来的iOS,不会只有Swift。它很可能运行在一门以安全为先的系统级语言之上——一门你如今几乎没听过的语言。


历史常常重演,一旦苹果公司将闭环打磨得顺滑、论证有效,随后软件开发以及整个产业界的跟随效应,往往也就为期不远了。

作者:场长

参考:

https://medium.com/@devlinktips/apple-is-quietly-rewriting-ios-and-its-not-in-swift-or-objective-c-4af4dc57877

评论

我要赞赏作者

请扫描二维码,使用微信支付哦。