SwiftUI和Catalyst:苹果的隐形转型战略从未停歇

作者 | Jason Snell 译者 | 杨志昂 编辑 | Yonie 本文借苹果新问世的 SwiftUI 和 Catalyst 分析了苹果产品换代中缓慢又稳定的持续迭代改进过程。无论是硬件芯片、操作系统还是开发者工具,苹果为每次转型换代都打造了特定的过渡性工具和过程,甚至让人们难以察觉到自己其实也置身于技术变革之中。 前段时间在圣何塞,我一直在思考 John Gruber 在 10 年为 Macworld 撰写的一篇文章: https://www.macworld.com/article/1151235/apple-rolls.html 这篇文章的内容是说,苹果的产品设计不会像人们普遍认为的那样在极短时间内就会完成。相反,苹果的产品开发是一场马拉松,而不是短跑冲刺。在科技行业,没有任何一家公司拥有苹果那样的显著业绩。 Gruber 写道:“苹果的产品开发是一个缓慢又稳定的持续迭代改进过程。该过程如此缓慢,如果实时地去观察它,这个过程很容易被人忽略。而人们往往事后才猛然惊觉,苹果的平台开发过程竟然这么非凡卓越”。 在这篇文章发表 9 年后的今天,苹果依然进行着漫漫长跑,我们正置身于苹果产品开发的缓慢过程之中。在我们周围,这一切正在发生,苹果继续不紧不慢地进行着它的长期游戏,一路拖拽着那些并不情愿拥抱变革的人们跨越过渡时期,而因为这一过程非常缓慢,以至于在苹果宣布“已完成”之前,人们甚至都没有意识到正在发生什么。

持续的特权

多年来,苹果所做到的远远超越了产品转型换代本身。Mac 电脑已经从摩托罗拉 680x0 处理器转到 PowerPC 芯片,再转到英特尔芯片。据传言,将来还有可能全面过渡到苹果自行设计的 ARM 芯片。而在软件方面,苹果从传统的 Mac OS 转向 Mac OS X,然后又在 OS X 的基础上构建了一个新的操作系统 iOS。 对于用户来说,这些转型换代相对而言还算平滑。苹果在两次处理器芯片换代期间都将仿真技术引入了 Mac OS 系统,保证旧软件可以在新硬件上透明无碍地运行。 从传统的 Mac OS 到 Mac OS X 操作系统的过渡过程更加坎坷,即便如此,苹果也耐心地给了所有人大量时间去完成这个适应过程,直到 Mac OS X 10.2 Jaguar 上市,OS 9 才被正式宣布死亡(详见下方链接)。即便如此,Jaguar 还可以在一个特殊的兼容环境下继续运行传统的 Mac OS APP。虽然这样的过渡并不是完全无缝的,但这种方式还是很奏效的,一直等到大多数 APP 已经升级到 OS X 才宣布正式切换操作系统。 相关链接: OS 9 才被正式宣布死亡: https://www.macworld.com/article/1001445/06wwdc.html

APP 的忒修斯之船

当然,对于 APP 软件开发人员来说,这段旅程更加坎坷。从传统的 Mac 操作系统到 OS X 的转换是由苹果公司打造的 Carbon 提供支持。Carbon 是一套工具,可以让为旧的 Mac OS 编写的 APP 在新的 Mac OS 上运行。但 Carbon 只是一个过渡框架,是帮助 Mac 开发者通往 OS X 的桥梁,而 OS X 的原生系统叫作 Cocoa(从 NextStep 带来的)。 使用传统 Mac 系统的开发人员利用 Carbon 将他们的 APP 迁移到新的 OS X 上,但随着时间的推移,Cocoa 作为新操作系统的原生接口才是未来的发展趋势。于是,在一个决定性的时刻,苹果违背了之前的承诺,宣布永远不会有 64 位的 Carbon APP。这是板上钉钉的事:未来大家都得用 Cocoa。事实上,随着苹果在今年秋季的发布会上发布 Mac OS Catalina,Carbon 最后残留的一分领地也将被清除干净。 然而,在某种意义上,传统时代的 Mac APP 依然能存活下来。就像忒修斯之船(详见下方链接)一样,这些 APP 被更新了很多次,以至于几乎没有任何原始遗迹保留下来。这就是苹果公司实现其掌控的一种方式,用缓慢的、无形的转变魔术推动开发人员逐渐调整他们的 APP,只要有用户继续使用这些 APP,技术革新的轮子就会自己转动起来。 比如,我每天都在 Mac 上使用由 Bare Bones Software 公司开发的 BBEdit APP。它最初是为传统的 Mac OS 操作系统开发的,在 PowerPC 芯片过渡期幸存下来(想必经历了一番开发环境变革的折腾),然后用 Carbon 工具迁移到 Mac OS X(为了尽享新操作系统特性和 64 位的性能),终于登上了 Cocoa 的忒休斯之船。虽然最原始的 BBEdit 1.0 已经所剩无几了,但作为一个 Mac APP,BBEdit 仍然经久不衰。 相关链接: 忒修斯之船: https://en.m.wikipedia.org/wiki/Ship_of_Theseus

缓慢,却永不停歇

使用 SwiftUI 让我们回到今天这个时间点,苹果正在同时进行多项转型。Catalyst 将于今年秋季上市,它将允许那些精通 iOS APP 开发的开发人员继续使用这些技能来开发 Mac APP。可预见的是,这将引发把 iPad APP 转为 Mac APP 的一波热潮,而且会让这些 APP 更像原本就是为 Mac 开发的原生 Mac APP。不仅如此,Catalyst 还为 iOS 开发者提供了熟悉的工具集和通向一个全新操作平台的捷径,让专业 APP 可以跨越更广泛的苹果操作平台,包括 iPad 和 Mac 平台。 iOS APP 目前运行在配备了苹果自行设计的 ARM 处理器的设备之上,如果传言属实,芯片全面过渡到苹果自行设计的 ARM 处理器将是另一个即将发生的转变。但考虑到所有 Mac 和 iOS 开发人员都已经在使用苹果的 Xcode 工具来开发 APP,我怀疑为转到新的处理器架构,苹果公司早已准备好了一个相当简单的过渡方式。 此外还得提及 SwiftUI,对于普通用户来说这可能是一个更难理解的概念,但对苹果来说,这是一个巨大的进步。这可谓是一个苹果的终极长期游戏。作为长期游戏的一部分,苹果在五年前就引入了 Swift 语言,看得出苹果有意基于 Swift 在其所有平台上打开设计和构建 APP 的全新方式。 从短期来看,iOS APP 开发人员即将通过 Catalyst 跨越到 Mac 平台。从长远来看,苹果正在为所有苹果设备创建一种新的、统一的开发方法,而这种统一方法会基于 Swift 和 SwiftUI 语言。从这个角度来看,Catalyst 更像是一种过渡性技术,而不是苹果平台的未来。 但我们在这里讨论的是苹果的长期游戏,所有过渡性技术都是长期游戏的一部分。不远的将来,Catalyst 会把这些 APP 迁移到 Mac 上。越来越多的 iOS 和 Mac 的开发人员将掌握 Swift 和 SwiftUI 语言,他们可以通过 Catalyst 把 iOS 上的特性集成至 Mac APP。为了在 Mac 上使用,还可以将 Mac 的一些特性集成到 iOS APP 上。从此,所有开发者都可以开始体验 SwiftUI,逐步构建新的接口,用以替换旧的接口。 然后,我们或许会在 2020 年的某个时候回过头来看现在这个时间点,这才意识到所有关于 UIKit、AppKit 和 Catalyst 的讨论都已经成为过去时。很有可能在未来那个时刻我们的 APP 已经全都是用 Swift 编写的,而界面都是用 SwiftUI 创建的。在苹果缓慢而稳定的迭代和持续改进过程中,一切都将发生改变。苹果漫长的游戏从未停歇,甚至让人们难以察觉到自己其实也置身于技术变革之中。 英文原文: https://www.macworld.com/article/3402057/swiftui-and-catalyst-apple-executes-its-invisible-transition-strategy.html