unknown-neko / unknown-neko.github.io

0 stars 0 forks source link

WebAssembly + Ruby + Railsは実用に耐えうるのか調査 #29

Closed unknown-neko closed 10 months ago

unknown-neko commented 10 months ago

なぜWebAssembly?

現状でフロント側の動的な動きは、JavaScript側のライブラリが優勢。 ただ、ライブラリ側が戦国時代で、地雷原を走り切れるかと言うと怪しい。

ブラウザ側も

からの脱却を図っている兆しは見える(Google近辺、Microsoft近辺で争いが起こると思う)

.net か Google側かでだいぶ話が変わってくるが、WebAssemblyの調査が必要。

突破口

スマホに入れるアプリは便利アプリも多いが、スマホゲーもまあまあやっていることは多い。 Unreal EngineはWebAssemblyを吐ける。 スマホゲーと言えばネイティブアプリが求められるものの、こちらもSwiftとKotlinで移植担当は正直吐く。

iPhone、Androidを問わずWebViewでWebAssemblyを開くだけなら移植担当は楽。 プロダクトの質に人員を回せるようになる。

アプリ側には3Dモデルや画像だけ入れておいて、アプリ側のグラ ⇔ WebAssemblyでバイパスさえ通せれば アプリ側のアプデは3Dモデルや画像に絞れる。 フロントの機能的部分はWebAssemblyを毎回読み込むだけで終わるようになる。

スマホ側のアプデ頻度も、一気に下げられる気がする。

WebAssemblyの問題点

4G回線や1Gbpsの固定回線では、毎回WebAssemblyを読み込んでいたらダウンロードが遅すぎる。

WebAssemblyの問題点の解決方法

インフラの時流が変われば自然解決する気がする。

この辺で回線速度が間に合うのであれば

といったことはできる(?)

unknown-neko commented 10 months ago

.net MAUIの技術書をまだ読めていないものの、WebAssemblyは何か狙っているとは思う https://learn.microsoft.com/ja-jp/shows/dotnetconf-2022/dotnet-loves-webassembly-in-dotnet-7

過去には、WebAssemblyのF#実験ページをMicrosoftが公開していた。 (うろ覚え)

unknown-neko commented 10 months ago

書籍名:「なぜ、あなたの仕事は終わらないのか」 を思い出すと、WebAssembly側はベーパーウェア戦法もありえる。

リスクはムチャクチャ高い。 中国の通信速度60MB付近問題の解決が、いつ頃になりそうか調査が必要。

unknown-neko commented 10 months ago

KotlinのコードからWebAssemblyバイナリを生成可能、Kotlin/Wasmがアルファ版として提供開始 2023年12月11日 https://www.publickey1.jp/blog/23/kotlinwebassemblykotlinwasm.html

フロントエンドJavaScript ⇒ バックエンドJVM系列 ↓ node.jsでもバックエンドやりたい!って流れから・・・


バックエンドJVM系列 ⇒ フロントエンドもJVM系列でやりたい!

っていう、JavaScript近辺の歴史の逆Verが来ている・・・?

WebAssemblyなら

WebAssemblyのバイナリサイズ次第にはなるものの、CDNにキャッシュ置けて凄そう。

「WebAssemblyへ行け」という天啓の狼煙か・・・?


ドル高 + 米内のインフレで、iOSアプリ開発税とかiPhone税への謀反が始まったか・・・? MSはAndroid寄りだし、バックエンド有用言語組もAndroid + WebAssembly突撃令ってやつなのか!?

unknown-neko commented 10 months ago

あなたの知らないmrubyの話 1(かも) https://qiita.com/Hir0_IC/items/e2d51254d04d6e317b70

ゴッド言語過ぎて泣く

unknown-neko commented 10 months ago

RubyとRails Wayを宗派とする限り、人生いつだってFire Bomberで楽しいぞ

DYNAMITE EXPLOSION https://www.youtube.com/watch?v=99H-7oojA34

HOLY LONELY LIGHT https://www.youtube.com/watch?v=LqQLpA4uBEc

unknown-neko commented 10 months ago

Web­Assembly https://www.rust-lang.org/ja/what/wasm

JavaScriptとのすてきな共演 置換ではなく、拡張 WebAssemblyの目的はJavaScriptを終わらせるのではなく共存して、処理が重いタスクやレイヤの低いタスクの処理をサポートすることです。これらのタスクは、パフォーマンスに重点を置くRustだからこそ恩恵を受けられると言えるでしょう。

一般的なツールチェーンとの連携 RustのWebAssemblyパッケージはnpmのようなパッケージレジストリに公開できます。webpackやParcelなどをバンドルしてリリースすることもできます。管理にはnpm auditやGreenkeeperのようなツールが使えます。

シームレスな相互運用 RustとWebAssembly、JavaScript API間をバインドするコードは自動生成できます。web-sysのようなライブラリを使えば、各ウェブプラットフォームへのバインディングをパッケージ済みの状態で提供することもできます。

unknown-neko commented 10 months ago

WebAssembly の概要 - MDN Web Docs https://developer.mozilla.org/ja/docs/WebAssembly/Concepts