前言
系列写了十期,每一期都在讲"怎么做"。最后一期换个方向:该不该做。
技术选型最难的不是学一个新框架,是在一堆选项里判断"现在该不该押注它"。Makepad 尤其如此——它看起来很美,但资料少、生态小、不确定性高。
这篇是写给我自己的判断总结。如果你也在犹豫要不要把 Makepad 放进项目里,希望这个框架能帮你省掉一些纠结的时间。
1. 先回答最核心的问题:Makepad 解决了什么
不要被 GitHub 的 star 数和官网的酷炫 demo 带偏。回到最本质的问题:Makepad 在 Rust 客户端生态里到底填补了什么空缺?
Rust 做桌面应用,目前有三条成熟路线:
| 路线 | 代表 | UI 在哪写 | 适合 |
|---|---|---|---|
| WebView 壳 | Tauri | HTML/CSS/JS | 有前端团队、快速交付 |
| 即时模式 | egui | Rust | 工具面板、调试器、内部工具 |
| 原生渲染 | Makepad | Rust DSL | 想做不同于 WebView 的 Rust 原生 UI |
Makepad 不是来替代 Tauri 的。它是在回答另一个问题:如果我不用 WebView,也不满足于 immediate mode 的视觉表现,Rust 里还有没有第三条路?
这就是 Makepad 的位置。它不是"更好的 Tauri",是"不同的 Tauri"。理解了这一点,后面的判断才有意义。
2. 适用场景:这三类项目现在就可以考虑
2.1 开发者工具和内部平台
这是目前 Makepad 最稳的场景。JSON 查看器、API 调试工具、日志分析面板、构建系统 GUI——这些工具的用户是开发者自己,对 UI 精致度要求没那么高,但对性能、启动速度、跨平台一致性有要求。
Makepad 的优势在这里刚好对路:启动快(原生编译,不是 WebView 加载)、体积小(8-12MB)、跨平台三端一套代码。我做的 JSON 查看器现在每天在用,比之前开 Chrome 插件快得多。
2.2 对渲染和动画有要求的应用
Makepad 用着色器渲染 UI,支持 2D/3D 混合。官方 demo 里的 Splash 动画、glTF 模型加载、地图渲染,都是 WebView 路线很难优雅做到的事。
如果你的应用需要平滑动画、复杂图形、数据可视化、甚至轻度 3D——Makepad 的渲染管线比 WebView 方案有天然优势。
2.3 想长期押注 Rust 生态的团队
如果你的团队已经在用 Rust 做后端或系统层,前端可能没有 Web 团队可以用,也不想为桌面端单独招前端——那 Makepad 提供了一个"全 Rust"的路径。
UI 在 Rust 里写,逻辑在 Rust 里写,状态管理没有跨语言边界。这对小团队或一人项目来说,开发体验的一致性可能比生态成熟度更重要。
3. 暂时不适合的场景:这三种情况建议等一等
3.1 需要快速交付的商业产品
如果你下周要出 MVP,下个月要上线——选 Tauri。这不是贬低 Makepad,是尊重现实。
Makepad 的文档密度、社区案例数量、搜问题时能立刻搜到答案的概率,都远不如 Tauri。遇到一个问题可能要自己翻源码解决,这在快速交付的节奏里是致命的。
3.2 重度依赖系统级 UI 组件的应用
Makepad 自己渲染一切。好处是完全控制,坏处是你没有系统原生的文件选择器、日期选择器、右键菜单、系统托盘。每多一个需求,就是多一段要自己写的代码。
如果你的应用需要大量系统级交互——比如和 Finder 集成、调用系统通知、拖拽文件到其他应用——这种场景下 Makepad 的"自己渲染一切"会从优势变成负担。
3.3 移动端优先的应用
Android 和 iOS 的构建链路能跑通,官方示例在移动端能运行。但"能跑"和"能上架"中间隔了太多东西:性能调优、触控体验打磨、应用商店合规、不同屏幕尺寸适配。
如果你的产品主要是移动端,Makepad 现阶段不值得赌。等它移动端的生态像桌面端一样稳定了再说。
4. 团队采用前要问自己的几个问题
如果你在带一个团队考虑 Makepad,有几个问题比"技术好不好"更重要:
4.1 你们有没有人能看懂框架源码
Makepad 的问题是:遇到 bug 时,你大概率搜不到现成答案。这时候需要有人能进仓库翻源码、看 issue、甚至提 PR。
如果你的团队里没有这样的人——不是说技术不行,是说没有"遇到问题能自己读框架源码"的习惯——那入坑 Makepad 的路会比想象中坎坷很多。
4.2 你们接受多长的学习曲线
Makepad 的 DSL、事件模型、布局系统、样式方式,都是一套独立的东西。有 Rust 基础的人大概一周能上手写 demo,一个月能写小工具,三个月能做到真正的生产级。
这段时间你能不能接受?团队里的其他人能不能接受?如果答案是否定的,那就不是技术问题,是组织问题。
4.3 你们对"不成熟"的容忍度有多高
Makepad 在快速迭代中。API 可能变,某些功能可能缺失,文档可能滞后。这不是批评——所有高速成长的开源项目都有这个阶段。
关键是你的心态:如果你喜欢"参与成长"的过程,愿意贡献反馈、提 issue、甚至 pr,那这是对的时机。如果你只是想"用一个成熟的东西把事情做完",那可能还没到。
5. 和竞品的坦诚对比
写到这里,我必须坦诚地把 Makepad 和两个主要竞品放在一起比一次。不是"谁更好",是"什么场景选谁"。
5.1 Tauri vs Makepad
| 维度 | Tauri | Makepad |
|---|---|---|
| UI 开发方式 | Web 技术(HTML/CSS/JS) | Rust DSL(Splash/script_mod) |
| 前端人力复用 | ✅ 可以直接复用 | ❌ 需要学新的 |
| 启动速度 | WebView 加载有延迟 | 原生编译,秒开 |
| 体积 | 3-5 MB | 8-12 MB |
| 生态成熟度 | 插件丰富、社区大 | 插件少、社区在成长 |
| 渲染能力 | WebView 的渲染 | GPU 着色器渲染,2D/3D 混合 |
| 系统集成 | 有官方插件(通知、更新等) | 大部分要自己写 |
一句话:要快、要稳、有前端团队 → Tauri。想做和 Web 不一样的东西、愿意投入学习成本 → Makepad。
5.2 egui vs Makepad
| 维度 | egui | Makepad |
|---|---|---|
| UI 模式 | Immediate mode | 混合(声明式 DSL + 即时模式事件) |
| 上手速度 | 非常快 | 中等 |
| 视觉表现 | 偏"工具感" | 可以做更精致的 UI |
| 适合做什么 | 调试面板、配置器、内部工具 | 桌面应用、轻量产品 |
| 渲染后端 | 多后端(glow/wgpu) | 自研着色器渲染 |
一句话:做"给自己用的工具"选 egui,做"给别人用的产品"看 Makepad。
6. 我现在的判断
十期写完,我自己的项目是这样选的:
- 快速出活的内部工具 → 仍然用 Tauri 或 egui
- 想认真打磨的桌面应用 → 上 Makepad
- 移动端 → 暂时不碰 Makepad
- Web 端 → Makepad WASM 作为补充,不作为主力
不是每一类项目都要选 Makepad。选正确的工具做正确的事。
我对 Makepad 的判断是:它现在不是在"替代"谁,而是在"开辟"一条新路。 这条路现在人少、路况差、导航不全。但方向是对的——Rust 做客户端,需要一条不同于 WebView 的路。
如果你愿意接受这条路上的坎坷,现在就是加入的好时机。如果你需要的是"马上到目的地",等路修好再说。
总结
十期系列,从"为什么关注 Makepad"写到"怎么判断该不该用"。
回头看一下,第一期我的判断是"先关注,不急着上生产"。十期之后,我的判断变成了"某些场景可以上生产了,但不是全部"。
最重要的变化不是 Makepad 变强了多少——它确实在变强——而是我对自己项目的需求判断更清晰了。技术选型最难的不是"学新东西",是"搞清楚自己到底要什么"。