Web框架和跨平台应用未来

大学老师在一个课上说过一个事情,大致表述为:

Web已死,Internet永生 --> App已死,Web永生

当时没什么概念,什么web,什么app,死了生了的。但随之知识的深入,逐渐有了深刻的理解。
前一句是《连线》杂志的话,有一点时代性了。后者我觉得就是,用web技术来构建gui,天然是跨平台的。Web的UI框架拥有强大的复用性,相较于用传统的GUI开发工具开发不同平台的应用,web框架支持跨平台的话,就可以实现 “Write Once Run Anywhere”

  • 原生客户端开发工具:功能最强大,最兼容,但是要同时招聘三个客户端(桌面,网页,移动)开发人员,或者更多(平台细分,iOS,Android)。

  • WEB:功能弱,但只需要招聘一个web开发人员,然后不同的build工具就好了。

之所以用web的UI做各种客户端,只是为了满足降低开发成本,另一方各种框架也正在成熟发展。

技术是种子,市场是土壤,资本是化肥和农药。巨硬搞过很多超前概念的产品,不是说技术不够,是市场不适合,不给你发力的机会。比如Web Assembly,可能很有前景,但目前还不行。

跨全平台可以说是一个程序员的终极梦想,但是目前基于web框架构建的跨平台应用,各种移动app本质就是套壳浏览器,内部使用webView,这好像是绕弯子行为,但它的低门槛和低成本就是存在的必然性。

而如今,谷歌的flutter,苹果随后紧接着出了swiftui,然后kotlin的compose,java依托graal升级javafx
Web大抵是老了,各种想要支持原生的跨平台UI框架正在预热。自绘引擎时代已经有雏形了。

我制作了一个表格,简单的描述一下当下的跨平台框架

Web 桌面端 iOS Android Linux 语言 备注
Flutter ✔️ ✔️ ✔️ ✔️ ✔️ Dart 主要还是跨移动端
Electron ✔️ ✔️ ✔️ ✔️ ✔️ JS 最适合web和桌面端
MAUI ✔️ ✔️ ✔️ ✔️ C# 设计基于安卓,其他平台向其靠拢
Blazor ✔️ ✔️ C# 前后端集成
Unity/Mono ✔️ ✔️ ✔️ ✔️ ✔️ C#
Qt ✔️ ✔️ ✔️ ✔️ ✔️ C++ 主要桌面跨平台
Tauri ✔️ ✔️ ✔️ ✔️ ✔️ Rust

Java、Python和JS,天生就是跨平台的语言,所以他们也不存在怎么样的“跨平台框架”,简要写一下JS相关的几个热门框架。

JS 模板语法 案例 备注
React-native React 抖音,美团,京东,爱奇艺 不支持小程序
uniapp vue 大众点评,小米商城 多webview模式,支持小程序
Ionic Angular NHS,bobcat 单webview模式,支持小程序,Vue,

来自overflow developer 2023的数据,排名第一是.NET没截到。

Web框架和跨平台应用未来_第1张图片
Web框架和跨平台应用未来_第2张图片

结语

我觉得无论如何,最后都会向wasm概念靠拢,大一统才是趋势啊。没有任何人想对不同操作系统开发不同的适配应用,成本和风险都太高,不过目前仍然还是web占据跨平台的赛道,比如election,react-native还是主流。

虽然现在让我选我还是选自由的web,个人兴趣在此,也偏向桌面开发,但如果我有移动端需求,我可能会选flutter了。
Web死而复生,生而又死,虽是调侃,但也是否定之否定之理啊

文章来源于我的个人博客:Web框架和跨平台应用未来

你可能感兴趣的:(开发语言,经验分享,flutter)