SlideShare une entreprise Scribd logo
1  sur  12
Télécharger pour lire hors ligne
RustとWasmの現実

株式会社アトラエ タガミショウゴ

Rust, Wasmって最近巷でよく聞きませんか?

- “Rustが流行っているらしい”

- “Rustは早いらしい”

- “WebAssemblyってのがJavaScriptの代わりになるらしい”

でも、実際のところどうなのか?またそれぞれどういったものなのか?を完全に理解して
いる方は少ない印象(かくいう僕もよく分かっていませんでした)。



なので、ざっと理解できるレベルまで今日はお話ししていきます。

RustとWasmの現実

Rustとは

- FirefoxのMozilla社が開発元

- 特徴:

- (1) 実行速度が速い(C, C++と同じくらい) 

- (2) 低レイヤーのプログラムから、Webまで幅広くカバーできる 

- (3) 「安全性」が担保されている 

- (4) ツール群が充実している 

Rustは速いの図

https://benchmarksgame-team.pages.debian.net/benchmarksgame/which-programs-are-fastest.html
Rustはなぜ早いのか?

- JavaやPythonなどの言語はインタプリタやコンパイラを介して、独自の仮想マシン
用の言語を生成するので、ちょっと時間がかかります(それでも早い

- 一方、C, C++, Rustはコンパイル後の最終結果は直接機械語になります

- また、仮想マシンを持たないGoよりも早いのは、Rustにはガベージコレクション(GC)
がないという理由からです

- GCとは使う予定のないメモリ領域(ガベージ)を解放し、使えるメモリ領域を増やす、
という処理をしてくれるやつです

- Rustは手動でメモリ管理をするのではなく、「所有権」「借用」「ライフタイム」という新
しい仕組みでこれを回避

ちなみに、Rustのコードはこんな感じ

https://news.mynavi.jp/article/rust-13/
Rustのプロダクション使用例

- Firefoxのブラウザエンジンのコア部分(ここが起源)

- Dropboxではデータセンター効率化のためのストレージシステム

- yelpのリアルタイムA/Bテストフレームワーク

- FastlyのWebAssembly実行環境を提供するLucet

- AWS Lambdaの仮想化システム

- Cookpadのマイクロサービスの一部分

- サイバーエージェントの広告配信サーバー

RustとWasmの現実

WebAssemblyとは

- WebAssembly(略してWasm)はブラウザで動く新しいプログラミング言語(フォーマッ
ト?)

- ネイティブコードに変換しやすく、バイナリ列で表現されており、早い

https://ja.wikipedia.org/wiki/WebAssembly
WebAssemblyのユースケース

- 前提:JavaScriptを全く置き換えるというものではない(現状は)

- 例えば、処理速度が求められる部分やC/C++からの移管先

- C/C++で書かれたアプリゲームを、Webゲームに移管する時の方法 

- 画像、動画編集、画像認識などのアプリケーションをWeb上で実行する 

- 現状、WasmはDOMを直接触れない関係で、JavaScriptといい感じに共存している

- イメージとしては、基本的にはJavaScriptで書き、処理速度が求められる部分を
WebAssemblyで書くみたいなのが良さそう

まとめ

- RustやWebAssemblyはこれから2,3年で使用例が増えてくると思うけど、すぐすぐ
「アトラエでも使うぜ!」という段階ではない!

- 有りうるとすると、DSチームやインフラ周りで計算機構の高速化あたりをPythonか
らRustにする、とか

- いずれにせよ、新しいプログラミング言語を学ぶのは楽しい!


Contenu connexe

Tendances

今さらだけどMySQLとライセンス
今さらだけどMySQLとライセンス今さらだけどMySQLとライセンス
今さらだけどMySQLとライセンス
Hidenori Ishii
 
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Hibino Hisashi
 
MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話
Yoshinori Matsunobu
 

Tendances (20)

An Internal of LINQ to Objects
An Internal of LINQ to ObjectsAn Internal of LINQ to Objects
An Internal of LINQ to Objects
 
CloudStack再入門!15分でおさらいするCloudStackの基礎
CloudStack再入門!15分でおさらいするCloudStackの基礎CloudStack再入門!15分でおさらいするCloudStackの基礎
CloudStack再入門!15分でおさらいするCloudStackの基礎
 
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するCEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
 
今さらだけどMySQLとライセンス
今さらだけどMySQLとライセンス今さらだけどMySQLとライセンス
今さらだけどMySQLとライセンス
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
 
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
 
MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
 

Similaire à Rust と Wasmの現実

[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
Funada Yasunobu
 
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...
Funada Yasunobu
 
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
Yuki KAN
 

Similaire à Rust と Wasmの現実 (8)

Rust + web assemblyやってみた
Rust + web assemblyやってみたRust + web assemblyやってみた
Rust + web assemblyやってみた
 
OSSで実現するハイブリッドクラウド4ノードクラスタ ~Pacemakerのチケット機能で災害対策~
OSSで実現するハイブリッドクラウド4ノードクラスタ ~Pacemakerのチケット機能で災害対策~OSSで実現するハイブリッドクラウド4ノードクラスタ ~Pacemakerのチケット機能で災害対策~
OSSで実現するハイブリッドクラウド4ノードクラスタ ~Pacemakerのチケット機能で災害対策~
 
Exaリーディングのすゝめ
ExaリーディングのすゝめExaリーディングのすゝめ
Exaリーディングのすゝめ
 
fukinfra Vol3 LT 20120629
fukinfra Vol3 LT 20120629fukinfra Vol3 LT 20120629
fukinfra Vol3 LT 20120629
 
RVM with Server Environment
RVM with Server EnvironmentRVM with Server Environment
RVM with Server Environment
 
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
 
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラス...
 
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
 

Rust と Wasmの現実