前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WASM·技术趋势

WASM·技术趋势

作者头像
mixlab
发布2021-10-12 11:30:38
1.6K0
发布2021-10-12 11:30:38
举报

今天看到一则故事,一名程序员@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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-09-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 无界社区mixlab 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档