Dart vs Rust vs Java
Dart vs Rust vs Java 强语言类型写 Web 页面 Build Size 比较。
Dart
# install dart
$ brew tap dart-lang/dart
$ brew install dart
# install webdev tools
$ dart pub global activate webdev
# create a new project
$ dart create -t web quickstart
$ cd quickstart
$ webdev serve
# build
$ webdev build --output web:build
Build size: 60KB
Rust
简单 Demo
$ cargo generate --git https://github.com/rustwasm/wasm-pack-template
$ cd wasm-game-of-life
$ cargo install wasm-bindgen-cli
$ cargo add web-sys
$ wasm-pack build --target=web
参考 online-demo
Build size: 20KB
Yew 框架
参考 Rust Web
Build size: 90KB
Polyfill 200KB,此处应该 IE11 兼容大小,不含在内
Java
Java 编译成 WebAssembly,有个测试 JWebassembly 项目,Demo 如下:
Build size: 10KB
teavm
目前 teavm 主要是 java 编译到 js,编译到 wasm 仅是实验性质,支持不完善。
java wasm 项目目前比较少且不活跃,按照 部分用户的回答,wasm 可能并不适合运行 java:
GC, lack of many things: exception handling, stack walking, page protection, signal handling, etc
其他对比
- Dart 是 Google 主导开发,持续性维护状态未知,暂不开放社区
- Rust 是 Mozilla 主导开发,社区活跃