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

相关推荐
辞旧 lekkk1 小时前
【c++】封装红黑树实现mymap和myset
c++·学习·算法·萌新
科普瑞传感仪器1 小时前
从轴孔装配到屏幕贴合:六维力感知的机器人柔性对位应用详解
前端·javascript·数据库·人工智能·机器人·自动化·无人机
星轨初途2 小时前
C++的输入输出(上)(算法竞赛类)
开发语言·c++·经验分享·笔记·算法
n***F8752 小时前
SpringMVC 请求参数接收
前端·javascript·算法
极地星光2 小时前
Qt/C++ 单例模式深度解析:饿汉式与懒汉式实战指南
c++·qt·单例模式
wordbaby2 小时前
搞不懂 px、dpi 和 dp?看这一篇就够了:图解 RN 屏幕适配逻辑
前端
程序员爱钓鱼2 小时前
使用 Node.js 批量导入多语言标签到 Strapi
前端·node.js·trae
鱼樱前端2 小时前
uni-app开发app之前提须知(IOS/安卓)
前端·uni-app
V***u4532 小时前
【学术会议论文投稿】Spring Boot实战:零基础打造你的Web应用新纪元
前端·spring boot·后端
TechMasterPlus2 小时前
VScode如何调试javascript文件
javascript·ide·vscode