Skip to content

MobileWebAppModuleLoaderUseCase

uupaa edited this page May 26, 2015 · 15 revisions

このエントリの原版は2011年の冬に書かれました。2011年に予想した Mobile Web Application の未来とは次のようなものでした。

  • モバイル端末の CPU が Many Core 化する
  • ネットワークは LTE がデフォルトになる
  • パケットフリーではなくなり、高価な定額制と、安価な従量制に二分化している
  • Mobile Web Application は WebWorkers を主体としたマルチスレッド構造にシフトする
  • どこでも動作するモジュールの需要が高まる
  • ES.next (ES6) が使われ始めている

当時は、WebModulePattern を「コードをシンプルに維持しつつ、次世代の ES6::modules がブラウザに実装されるまでの繋ぎ」と考えていました。 そして、CommonJS や AMD などは、ES6::Modules の登場により、3〜5年後には全て不要となっている状況が望ましいと考えていました。

Module pattern

以下は、モジュールパターンの一覧です。
2015年においては、browserify や webpack の台頭により、AMD(Require.js)を採用する事例も減りつつあります。

Module pattern
ES6::modules export ...
import ...
WebModuleIdiom `var GLOBAL = GLOBAL
Browser Module pattern <script src=...>
CommonJS Module pattern require(...)
AMD define(...)

ES6::Modules と Mobile Web Application

ES6 には import export 構文が追加され、ES6の構文を使うと見慣れたスタイルでモジュールを記述し利用することが可能になりました。

しかし Mobile Web Application においては、サーバとクライアントの距離的な問題と回線の問題があり、 ES6::Modules を使ったモジュールシステムは、モバイルのユースケースとマッチせず、従来からの問題の多くが解決されず、そのまま残る事になりました。

以下で詳しく説明します。

TBD

Clone this wiki locally