WASM·技术趋势

Mix Lab味知实验室

共 5079字,需浏览 11分钟

 · 2021-09-26

今天看到一则故事,一名程序员@Andreas Kling 辞掉工作,全职开发操作系统。正如其签名档一样:I like computers!

对技术的热爱已经超越了工作本身,完全是兴趣所在

shadow

Andreas

Kling

I quit my job to focus on SerenityOS full time

ace

作为无边界学习爱好者,我们需要时刻留意技术的发展趋势~~




Adrian

Mouat

hi~大家好,我是Container Solutions的Chief Scientist,给大家分享一些关于云计算未来的观点:

WASM将无所不在:编译、部署、IoT、插件生态系统;

Rust 编程语言的将流行,未来几年有望在 RedMonk 排行榜上超过 Go;

有可能会出现百亿级、利用智能合约奴役全人类的 AI 公司;

AI 的发展有可能在多个行业中造成大规模的破坏,会导致大量工作岗位消失(如卡车司机);

GPT3 类的助手将广泛被使用,艺术家、作曲家、作家、程序员、设计师都会使用,AI帮助我们高效地自动完成所有事情;

有点意思,今天我重点解读下WASM~~

shadow


WebAssembly

2021.9.22

WASM


简称 Wasm,是一种为栈式虚拟机设计的二进制指令集。Wasm 被设计为可供类似C/C++/Rust等高级语言的平台编译目标,最初设计目的是解决 JavaScript 的性能问题。webassembly.org




#增强web应用

WebAssembly是一种新的编码方式,可以在现代的网络浏览器中运行,它是一种低级的类汇编语言,一种二进制格式,可以接近原生的性能运行。

WASM 的启动时间比 V8 快,并且能够在具有少量内存和存储(可能低于 1GB 内存和 50MB 存储)的物联网设备上运行。

对于web而言,WebAssembly具有巨大的意义:使得以各种语言编写的代码都可以以接近原生的速度在Web中运行。以前无法以此方式运行的客户端软件都将可以运行在Web中。列举两个案例:



TensorFlow.js
官方团队实现了在 WebAssembly 中使用 SIMD 和多线程来增强 TensorFlow.js
 



FFMPEG
著名的音视频库。使用C写的 FFMPEG 导出了 WebAssembly 格式,从而使 FFMPEG 可以在浏览器中运行。
 
 

#走出浏览器,进入云端

最初WebAssembly仅支持在浏览器内部使用。近些年,已经逐步扩展,在浏览器之外,通过WASI(系统接口)来实现,从而在服务器也可以使用WASM。
 
引用Docker联合创始人Solomon Hykes(2019年3月27日)在宣布 WASI 时发推文所说的一句感想。
 

Solomon

Hykes

如果2008年存在WASM+WASI,我们就不需要创建Docker。

可以大胆地说,服务器上的 Webassembly 是计算的未来。

shadow

 
#跨语言支持

WebAssembly可以从以下语言编译而成:C/C++、Rust、AssemblyScript、C#、F#、Go、Kotlin、Swift、D、Pascal、Zig、Grain。
 

无界

引用我超喜欢程序猿的一句diss用语:

Talk is cheap ,    
show me the code

个人比较推荐学习rust来上手wasm ,@无界 看完以下的项目,你会喜欢上rust吗?

shadow


# Rust

这是知乎上的一个问题:写wasm项目选C++还是Rust?

一般我会查找awesome来全面了解某个topic,比如awesome-rust。经过一番查找,挑选一些rust非常好玩的开源项目分享给大家~~
 


Veloren
使用Rust写的多人RPG游戏

It is inspired by games such as Cube World, Legend of Zelda: Breath of the Wild, Dwarf Fortress and Minecraft.

veloren.net


 
citybound
这是一个城市建设游戏,使用微观模型生动地模拟城市中数百万人相互作用产生的有机体。

A city building game that uses microscopic models to vividly simulate the organism of a city arising from the interactions of millions of individuals.


aeplay.org/citybound

 
 

valora
rust开发的生成艺术代码库

A brush for generative fine art.


github.com/turnage/valora

 

 


Linfa
机器学习库,这个我非常喜欢

A comprehensive toolkit for Statistical Learning in Rust.


rust-ml.github.io/linfa

 

 

AmethystGame Engine
使用rust写的游戏引擎

Data-driven game engine written in Rust


amethyst.rs

 

 
bevy
另一款游戏引擎

A refreshingly simple data-driven game engine built in Rust
Free and Open Source Forever!


bevyengine.org

github.com/bevyengine/bevy

 


 
img_hash
感知哈希算法(perceptual hash algorithm),它的作用是对每张图像生成一个“指纹”(fingerprint)字符串,然后比较不同图像的指纹。结果越接近,就说明图像越相似。

A Rust library for calculating perceptual hash values of images
github.com/abonander/img_hash
 


tesseract.js
著名的OCR库,通过rust实现了js版本~

Pure Javascript OCR for more than 100 Languages


github.com/naptha/tesseract.js

 

opus

感谢今天的#趋势 分享
🤖✖️❤️

我来总结下本次分享的重点:

- 增强web应用

- wasm走出浏览器,进入云端

- 跨语言支持,重点推荐学习rust


如果对以上话题感兴趣

👨🏼‍🎤👩🏻👨🏻‍💼👤🦸🏻🧑🏻‍🎤

欢迎加入社群,当然还有设计方向的活动:

超越“门票”的门票-设计挑战赛

关注后回复:群聊   ⤵️


浏览 72
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报