跨平台的客户端gui到底是选“原生”还是web

我们讨论的是客户端的"前端"gui部分是选"原生"还是"web",而不是讨论客户端用"js"还是"原生"。为什么这么说呢?我们应该把客户端也分为"前端"和"后端",如果客户端没有"后端",那么不在讨论范围。

我们看一下"前端"的定义:(Front-End) 通常指与用户直接交互的部分,即用户看到、操作并与之互动的界面。它涵盖了视觉设计、交互逻辑,主要关注用户体验(User Experience, UX)和用户界面(User Interface, UI)。

前端设计的核心是以用户为中心,在技术实现中平衡功能、性能与美学,同时关注长期维护成本和扩展性。

美观和维护成本,肯定是web占优势的,我们重点关注一下性能。

前端的性能优化是这样说的:加载速度、渲染效率、首屏体验。其实就是界面的加载速度,能不能让用户感觉不到卡顿。这一点呢,其实web和原生的差别并不大,只要技术没用错,带客户端的web也完全感觉不到卡顿。

所以从gui部分对比,我们得到的结论是web技术是最佳的选择。

现在我们来看"性能"的真正对决,"后端"。对于"原生"来说,我们一般把客户端全部使用c/c++或者rust的叫做"原生"。问题来了,用"web"的,别人也可以c/c++或者rust呀。挂一个"127.0.0.1的webapi"不就可以了。你可能要用web发送请求给api,到返回数据给api需要资源开销,webapi本身也需要性能开销。确实有一点,但是单机webapi的这点开销,非常的小。除些之外,性能和原生是一模一样的。

最重要的一点是开发速度,web框架的开发速度比"原生"快N倍,速度就是金钱。等你慢慢悠悠用"原生"把项目做出来,人家早就把位置占完了,而且你的项目也并没有什么优势。

"原生"的代表框架,qt。确实很优秀,但是社区版只能用基础功能,好用的组件都贵得要命。

"web"的代表框架,electron。百搭的框架,你看人家用electron就觉得全是js?别人也带个127.0.0.1的c/c++或者rust后端,一样跑得飞起。

再看rust的"web"的代表框架,tauri。直接把rust后端和web前端合并使用的,如果rust代码用得多,性能根本就不会差。

不管用什么web框架,一大堆开源免费的组件,效果完虐qt那些收费的组件。

所以,推荐web做客户端。

相关推荐
Thneonl4 小时前
一个人从 Rust 内核做到 React 前端:我做了一个云原生 SRE 巡检图谱桌面工具
rust
Eloudy5 小时前
ReAct 原理简介
前端·javascript·人工智能·react.js·agent·gpu
程序员爱钓鱼5 小时前
Rust Struct结构体详解:定义自己的复杂数据类型
后端·面试·rust
qz_Serene5 小时前
C++:类和对象(上)
开发语言·c++
ZJU_统一阿萨姆6 小时前
【DSH】如何将 DeepSeek Harness 嵌入生产环境?万字解构 DeepSeek Agent Harness 的运行机制与安全边界
前端·javascript·安全
用户921080262866 小时前
4. 前端地图大量点位实时更新优化:后端推增量,前端做 diff
前端
SoaringHeart6 小时前
Flutter最佳实践:Web项目中文字体首次加载乱码问题解决
前端·flutter
苏灿烤鱼6 小时前
公司**不可计算,就自己做操作系统
rust·typescript·agent
郝学胜-神的一滴6 小时前
干货版《算法导论》17:二叉树核心原理、遍历逻辑与高阶实操全解
数据结构·c++·python·算法·计算机·编程
hetao17338376 小时前
2026-08-09~08-14 hetao1733837 的刷题记录
c++·算法