vim.wasmがすごい
(WebAssemblyを勉強してみた!)
PROFILE
- @yukpiz(Twitter/Github)
- redish Inc(Engineer)
- #golang #vim #crypko
- #AWS #Rails #Angular #Android
- #Fishing #Anime #小型船舶操縦士1級
redish Inc
レストラン予約代行のコンシェルジュサービス
Service Vision: レストラン体験を豊かに
Company Vision: 全ての繋がりを価値あるモノに
採用もあるよ!
vim.wasm?
- https://rhysd.github.io/vim.wasm/
- vim/vimの実験的なWebAssemblyコンパイル
- テキストエディタがブラウザで動いている
- vim.jsではない、なにこれ?
WebAssembly?
- 2015年6月に発表された
- ブラウザ上で実行可能なバイナリフォーマット
- C/C++, Rust, Go, C# → wasm
- 2017年11月に主要ブラウザが対応している
C/C++ → emcc/em++ → wasm/js/html
↓
↓
Cで書いた関数をjavascriptで呼び出してみる
Module.ccall('Uhh', null, null, null);
// (」・ω・)」うー!
var result2 = Module.ccall('Nya', 'string', null, null);
console.log(result2); // (/・ω・)/にゃー!
var result3 = Module.ccall('add', 'number', ['number', 'number'], [3, 5]);
console.log(result3); // 8
Golang for WebAssembly(Go 1.11+)
Cだとちょっとつらいけど、GoだとライブラリのWebAssembly化捗るよね!
Qt for WebAssembly
qt/qtbase(wip/webassembly)
qmake環境構築間に合わず・・
まだまだこれから
- WebAssemblyがJavaScriptを置き換えるか? == No
- WebAssemblyが何を目指しているのか、ドキュメントにしっかり書いてあった
- ちゃんと使ってみて勉強してみたら色々わかってきた
- これまでパフォーマンス面でJavaScriptで実現の大変だったところをサポート
- 新しい技術の1つとして色んな言語やライブラリのサポートが楽しみ
- なんかおもろい
期待
- Qt(for WebAssembly)
- Vim(vim.wasm)
- OpenCV(Build cv-wasm.wasm)
- Golang(WebAssembly (“wasm”) support)