跨平台的客户端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做客户端。

相关推荐
Boom_Shu2 小时前
浅拷贝与深拷贝
开发语言·c++·算法
云水一下2 小时前
Vue.js从零到精通系列(七):高级特性实战——Teleport、异步组件、自定义指令与TypeScript深度结合
前端·vue.js·typescript
qq4356947012 小时前
Vue05
前端·vue.js
Mortalbreeze2 小时前
C++ Lambda表达式详解:从捕获列表到底层原理
开发语言·c++
qq_422152573 小时前
PDF 解密工具怎么选?2026 年文档密码移除方案与注意事项
java·前端·pdf
YHHLAI3 小时前
前端工程化调用 AI 多模态生图模型:Qwen Image Demo 实战
前端·人工智能
为何创造硅基生物3 小时前
LVGL
c++·ui
只做人间不老仙3 小时前
C++ grpc 拦截器示例学习
开发语言·c++·学习
触底反弹3 小时前
一文彻底搞懂 JavaScript 栈和队列(建议收藏)
javascript·算法·面试
To_OC3 小时前
我一直以为 Ajax 是个黑盒,直到我写了这 50 行代码
前端·后端·全栈