@
ciaoly 理论上是可以的,但:
- 原生平台的描述性技术,都是对上一代面向对象甚至面向过程 API 的封装(比如 SwiftUI 和 AppKit/UIKit 的关系)。这就导致你用这些技术稍深入一点,就难免要回过去学旧 API 是怎么回事
- 而 Web 从头到位是个完整的抽象层,99.9%的时候你都不需要纠结 Web 引擎到底是怎么绘图的。即使用 Canvas ,也是因为真的要画一个图,而不是有什么界面 HTML+CSS 写不出来
- 原生平台的技术不跨平台,跨平台的( Java 、Flutter 、Xamarin 、Qt )在单个平台又容易有坑
- 网页套壳很容易实现「我做了一个客户端,同时又自动有了一个网页版」
- Web 技术是开放的,所以任何严重影响开发者体验的事都可以很快被社区力量改进。第一方平台的反例参考 Xcode
- (私货,玻璃心请轻喷)相当一部分中低层前端虽然看起来经常在学新技术,但实际上非常不愿意走出 JS 主导生态的舒适区,瞧不起传统后端语言(这两年 Go 起来之后,Node 吹少很多了,不知道有没有联系),瞧不起 Native UI. 而前端现在是门槛最低,(也许)需求最大,供应也最大的领域,so……
---
BTW ,如果能用系统 WebView+一些更标准的原生接口(我也不知道还缺哪些),现在大家吐槽的 Electron 毛病都能少一些。更理想的是有一种能把 Web 和原生 UI 无缝融合的技术,允许渐进式地把关键组件切换到原生实现,不知道现在成熟了没