近日,一个名为 Flutter Starling 的开源项目在开发者社区悄然走红。项目作者用 Swift 和 Flutter 两种语言,从零构建了一套完整的 Linux 桌面系统。消息传出,不少程序员直呼“活久见”,更有评论称“用这两种语言写桌面系统,放在一年前想都不敢想”。

颠覆常规的技术组合

长期以来,Linux 桌面环境的主流技术栈不外乎 C/C++(如 GNOME、KDE)或 Rust(如 COSMIC)。而 Flutter Starling 却走出了一条截然不同的路:底层系统服务、进程管理、文件操作等核心逻辑全部使用 Swift 编写,上层用户界面则完全由 Flutter 渲染。两者通过一套精心设计的 FFI(外部函数接口)桥接层通信,实现了跨语言的无缝协作。

据项目文档介绍,作者深受 macOS 的 SwiftUI 启发,同时也为 Flutter 的跨平台一致性和流畅动画所折服。于是萌生了“把两者搬到 Linux 桌面”的想法。经过数月的迭代,最终实现了从开机到应用启动的全链路自研:Swift 负责守护进程、窗口管理、输入事件捕获,Flutter 则承担了任务栏、设置面板、文件管理器等全部可视界面。

视觉效果与系统性能兼得

从公开的演示视频看,Flutter Starling 的桌面视觉效果令人惊艳。毛玻璃特效、圆角窗口、平滑的动画过渡,完全不输 Windows 11 或 macOS。更难得的是,尽管同时运行 Swift 和 Flutter 两套运行时,系统内存占用仍控制在 1.2GB 左右(包含一个浏览器和三个模拟终端),优于多数传统桌面环境。

作者解释,性能优势主要得益于 Flutter 的 Skia 渲染引擎和 Swift 的高效内存管理。“很多人以为跨语言会导致性能下降,但实际上我们避免了大量不必要的拷贝,桥接层的开销微乎其微。”项目提供了丰富的主题定制接口,用户可以用 Swift 编写的脚本直接控制 Flutter 组件的状态,这在整个开源桌面领域实属首创。

社区反应与争议

项目在 Hacker News 上引发激烈讨论。有开发者惊叹:“Swift 在 Linux 上一直处于边缘地位,这次居然能支撑整个桌面系统,太疯狂了。”也有人质疑:为何不直接使用 Flutter 的 Native Platform Channels,反而要引入 Swift?作者回应称,Swift 在处理底层系统调用时比 C 的安全性和表现力更好,而且能够复用部分 Darwin 生态的代码。

值得注意的是,Flutter Starling 目前仍处于早期 Alpha 阶段,尚未支持 Wayland 协议,也没有多显示器热插拔能力。但它的出现已经为 Linux 桌面探索了一条新路径。正如一位开源社区维护者所言:“真正让我震惊的不是技术难度,而是有人敢于跳出 C/C++ 的舒适区,用现代语言重新想象桌面系统。”

展望未来

该项目的路线图显示,下一步计划支持 Sway 兼容层,并降低内存占用至 800MB 以下。作者还透露,正在尝试用 Swift 编写一套基于协程的 IPC(进程间通信)框架,以替代 DBus。“我们希望证明 Linux 桌面也可以像 macOS 一样精致,同时保持开发效率。”

无论 Flutter Starling 最终能否成为主流,它都已经给沉寂多年的 Linux 桌面注入了一针强心剂。用 Swift 和 Flutter 写操作系统?这不是小打小闹的 Demo,而是一场认真的实验。而这场实验,才刚刚开始。