老外写了一篇为什么 WASM 流行不起来的文章。

2022-03-23 13:55:43 +08:00
 3dwelcome
最近追赶潮流,学习把 Swift 移植到 web 开发的项目,https://swiftwasm.org/ 有提供完美操作 DOM 的 JS KIT 库。

感叹这是好东西啊,Swift 是目前最新的语言,去网上一顿搜索,最后发现 WASM 那么多年,技术早已成熟,市场却一直止步不前。

好奇查到去年这篇文章,https://blog.bitsrc.io/whats-wrong-with-web-assembly-3b9abb671ec2 ,里面的内容,就是说 Web 开发人群和传统语言开发人员,是完全不同的两批人。

会用 TS/JS 的前端,他们根本不需要 WASM 的存在。前端 NPM 已经有足够多的积累,能用 TS/JS 这把锤子,敲任何前端的钉子,他们并不需要 WASM 这项新技术。

感叹浏览器这些年的迅猛发展,早已把浏览器开发领域的内部世界和外部世界,隔离成了两个世界。
7009 次点击
所在节点    随想
30 条回复
Buges
2022-03-23 14:01:39 +08:00
不止吧,wasm 目前还不完善,很多东西还在草案阶段,生态支持差,操作 dom 性能低下,而且带 runtime 的语言 runtime 太大等问题都没有解决。
nomagick
2022-03-23 14:06:46 +08:00
WASM 就好比浏览器的 ffi

ffi 这个东西早就成熟了几十年,也没见他们在各自的语言里扑腾出什么花来,
也没见 C 代码猛调 Java 函数,也没见 C++取代 Python 实现核心功能

不过前端和其他语言开发人员确实是两批人,这是前端行业的大问题,老是融入不了大家庭
3dwelcome
2022-03-23 14:07:07 +08:00
@Buges https://madewithwebassembly.com/ 上有项目大全,2019 年刚出来还挺火,google earth 和 doom3 移植之类的。

但是最近发展越来越颓废,很少有重量级项目出现。

前端不会去用,后端也懒得用。这就是 wasm 的尴尬处境。
DOLLOR
2022-03-23 14:20:07 +08:00
我觉得 wasm 更多的意义是把其他语言编写的基础设施移植到前端,成为前端的基础设施。形成“JS/TS 为主+其他语言为辅”的生态。

而 wasm 操作 dom ,用“其他语言编译成 wasm”,试图干掉 JS 的做法就本末倒置了。
实际上在 wasm 出现之前,就有“其他语言编译成 JS”这种技术路线,同样也没流行起来。
3dwelcome
2022-03-23 14:25:54 +08:00
@DOLLOR 前端同学想要通过 nodejs 写后端。后端同学想要通过别的语言写前端。

结果大家谁都不服谁,各占一片疆土,谁都不肯让步。
murmur
2022-03-23 14:27:31 +08:00
wasm 的意义在于 JAVA + script ===WASM===> JAVAscript
Rwing
2022-03-23 14:47:54 +08:00
看看 C#的 blazor ,出来几年了,已经纳入到微软的 web 框架 asp.net 中了,也有一些生产应用。
3dwelcome
2022-03-23 14:59:31 +08:00
@Rwing 这篇文章的内容,就是原来用 C#的后端,会通过 wasm 多一个浏览器发布平台。本来后台管理界面是 windows 上运行,现在浏览器里也能用。

但是传统前端是不会去改学什么 C#的,React/VUE 组件够多了,有这点时间学 C#,早就把需求给写完,去楼下喝咖啡了。
aneostart173
2022-03-23 15:30:32 +08:00
浏览器历史包袱太重啦,最早浏览器只是一个类似报纸的东西,谁知道后来变成了 OS 。
除非把 html 和 css 都扫进垃圾堆。
juzisang
2022-03-23 15:57:12 +08:00
生态也是一个重要因素吧,其它语言的各种 UI 库有现在的前端丰富吗?构建界面有前端简单吗,看国内国外一大票软件都用 Electron 来构建应用就能看出来,前端都去侵占其它语言构建软件的市场了。
gjquoiai
2022-03-23 16:22:33 +08:00
wasm 现在的场景似乎集中于高性能前端应用和插件系统,已经离传统前端很远了。不过前端应用复杂到一定程度肯定还是得用回 wasm ,毕竟也没别的提升性能的手段了。
wobuhuicode
2022-03-23 16:30:32 +08:00
wasm 主要是走错了门。需要密集型计算的 JS 做不了?那就交给后端呗,核心业务全部都是后端化。
adoal
2022-03-23 16:40:05 +08:00
互联网开发,糙、快、猛 rules all
3dwelcome
2022-03-23 16:49:10 +08:00
@gjquoiai "不过前端应用复杂到一定程度肯定还是得用回 wasm "

国内互联网一个前端项目就是三个月到半年,复杂前端属于极少数需求。

页面卡一般都是 DOM 过多,wasm 也解决不了。

就算有性能瓶颈,后期不是转 flutter ,就是用原生语言重新开发了。也没 wasm 什么事情。
mxT52CRuqR6o5
2022-03-23 17:15:15 +08:00
增加技术栈数量会增加维护难度,所以正常的工程上的考虑,如果是 js web 项目不会考虑再去用其他语言开发 wasm 项目子模块(顶多引入已经封装成 js 调用的一些 wasm 库),要么就是完全不考虑 js ,上其他语言 all in wasm
flashback313
2022-03-23 17:23:33 +08:00
写 js 的人嫌 wasm 麻烦,写其他语言的人不想写前端
gjquoiai
2022-03-23 17:39:07 +08:00
@3dwelcome #14 emm 我只好说你说的这种项目当然不需要 wasm 。。。确实场景肯定很少,但真的到了这个程度也只有 wasm 可用。现在越来越多东西搬到了 web 上,从原型设计到在线文档,都是 wasm 的目标用户。
duke807
2022-03-23 17:48:45 +08:00
@wobuhuicode 錯,密集計算後端做的話,再乘以用戶數量,服務器根本抗不住,抗的住費用也受不了。

對性能有非常高要求的才會用 wasm ,所以大多是配合 C/C++,而且大多數可以直接用的 C/C++ 程序是 linux 程序,傳統前端會 C 和 linux 的人極少。

有調查顯示,有一半的 wasm 用戶是為了加密自己的代碼,傳統 js 代碼容易被分析。其中很多加密是為了做壞事怕被發現。
duke807
2022-03-23 17:50:25 +08:00
@duke807 一半以上
HFX3389
2022-03-23 19:41:28 +08:00
wasm 现在我觉得流行用在视频加密播放那一块,想把网站的视频下载下来结果看到 WASM 人都傻了...完全不会

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/842337

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX