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

相关推荐
killerbasd14 小时前
牧苏苏传 我不装了 4/7
前端·javascript·vue.js
Ricky_Theseus14 小时前
C++右值引用
java·开发语言·c++
吴声子夜歌14 小时前
ES6——二进制数组详解
前端·ecmascript·es6
码事漫谈14 小时前
手把手带你部署本地模型,让你Token自由(小白专属)
前端·后端
吴梓穆14 小时前
UE5 c++ 常用方法
java·c++·ue5
云栖梦泽14 小时前
Linux内核与驱动:9.Linux 驱动 API 封装
linux·c++
ZC跨境爬虫14 小时前
【爬虫实战对比】Requests vs Scrapy 笔趣阁小说爬虫,从单线程到高效并发的全方位升级
前端·爬虫·scrapy·html
爱上好庆祝15 小时前
svg图片
前端·css·学习·html·css3
Morwit15 小时前
【力扣hot100】 1. 两数之和
数据结构·c++·算法·leetcode·职场和发展
橘子编程15 小时前
JavaScript与TypeScript终极指南
javascript·ubuntu·typescript