News Hacker|极客洞察

128 50 天前 swift.org
🤔Swift 扩展上架 Open VSX:安装更方便,但 iOS/SwiftUI 仍离不开 Xcode
Swift 只换个 Open VSX,就算 IDE 大升级了?

🎯 讨论背景

这条帖子讨论的是 Swift 语言扩展正式上架 Open VSX Registry(一个面向 VSCode 兼容编辑器的开源扩展仓库)之后,能否让 Cursor(基于 VSCode 的编辑器)、Eclipse Theia(一个可嵌入式开源 IDE 框架)等工具更顺畅地安装 Swift 支持。背景是 Microsoft 去年限制 VSCode 分支访问官方 marketplace,导致很多人只能手动装 .vsix 文件。评论进一步指出,这类扩展主要提供语言服务和补全能力,真正的 iOS/SwiftUI 开发仍然离不开 Xcode(苹果官方 IDE)或额外的 LSP/构建适配层。讨论因此扩展到 Swift 的 C interop、AppCode(JetBrains 以前的 Swift IDE)、以及 Apple 和 Android 工具链开放程度的对比。

📌 讨论焦点

Open VSX 只是把安装路径正规化

很多人指出这条消息最大的变化不是能力升级,而是 Swift 扩展终于从手动下载 .vsix 变成可以在 Open VSX Registry 里直接安装。此前由于 Microsoft 限制 VSCode 分支访问官方 marketplace,Cursor、Codium、Theia 之类编辑器用户只能绕路处理,体验很别扭。现在只是恢复了“正确的安装方式”,所以一些人把标题形容得有点 clickbaity。也有人顺势强调,所有扩展都该优先发布到 Open VSX。

[来源1] [来源2] [来源3] [来源4]

SwiftUI/iOS 仍然不是官方支持重点

评论里反复强调,这个扩展主要面向纯 Swift 开发,不等于完整的 iOS 开发支持。对于 SwiftUI 或更复杂的 App 项目,大家提到需要借助 xcode-build-server、sourcekit-bazel-bsp、SweetPad 这类额外工具,把 Xcode 的构建信息转换成 LSP 可用的数据。即便如此,兼容性仍然不稳定,有人说最简单的项目都可能卡在配置步骤上,也有人直接问 live previews 这类 SwiftUI 体验是否包含在内。总体感觉是:能用,但离替代 Xcode 还很远。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6]

Swift 的核心门槛在 C interop

另一条主线是 Swift 在 Apple 生态外不好用,关键障碍不是语言本身,而是 C interop 和指针类型太别扭。有人认为 Swift 6.2.3 的改进已经明显缓解了这一点,并引用官方对 C library 可用性改善的说明;但反驳者认为示例仍偏 toy,真正遇到复杂函数签名时还是很痛苦。还有人把 AI 辅助编码拉进来,认为它能降低移植和封装旧 C 库的心理门槛;反对者则强调,不必也不该把优秀的既有库全重写一遍。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7]

不少人早就在 Xcode 外做移动开发

有用户表示自己已经在 VSCode、Cursor、vim、Neovim 里做 iOS 开发,只靠命令行工具链、xcodebuild、Gradle 或相关插件完成运行、测试和调试。围绕 Android 的争论尤其激烈:一方认为 Android SDK 本身就是开放的,可以完全不依赖 Android Studio;另一方则承认 IDE 不是必须,但它确实简化了工具版本管理和日常操作。对比之下,iOS 被描述成更强的锁定环境,因为上传 App、Metal 调试等流程仍然严重依赖苹果工具,很多人觉得这比 Android 的开源工具链更难绕开。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8] [来源9] [来源10] [来源11] [来源12]

AppCode 消失后的 IDE 失落感

不少评论把这次消息和 AppCode 的缺位联系起来,认为 JetBrains 放弃 Apple 开发 IDE 是一大损失。有人仍然怀念自己熟悉的 JetBrains 键位和工作流,也有人提到 Kotlin Multiplatform plugin、Noctule 等插件作为临时替代方案。与此同时,少数人认为 Xcode 近来变得更顺手、更响应了,可能和构建系统的改进有关,但这种改善还远没到让人满意的程度。整体上,这一派的情绪是:不是没人想写 Swift,而是 IDE 体验一直拖后腿。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8]

Swift 也被当成脚本/通用语言看待

除了 IDE 和移动开发,评论里还有人把 Swift 当成脚本语言来用,甚至专门提到缓存编译器来解决启动慢的问题。另一些人指出,Swift 早就不只用于 iOS 相关任务,只是缺少足够的工具和生态支持,才一直没真正扩散到更多场景。DikuMUD 移植这类例子被拿来说明,Swift 其实可以用于非 Apple 项目,而且在合适的条件下会相当顺手。

[来源1] [来源2] [来源3] [来源4]

📚 术语解释

Open VSX Registry: 一个面向 VSCode 兼容编辑器的开源扩展仓库,用来替代 Microsoft 官方 marketplace。

LSP: Language Server Protocol,编辑器通过语言服务器提供补全、跳转、诊断等能力的标准协议。

C interop: Swift 与 C 代码互操作的能力,尤其涉及指针、函数签名和旧库封装时最容易出问题。

SwiftUI: Apple 的声明式 UI 框架,常用于 iOS/macOS App 开发。

AppCode: JetBrains 过去的 Swift/Apple 开发 IDE,许多评论把它视为 Xcode 的重要替代品。