と言う話。
話の前提
(Chromium ベースの ) Web 技術でデスクトップアプリケーションを作れる
という所は同じです。
それで、そこまでは同じなんですが、そこだけに着目していると、
あれ? Electron と NW.js って何が違うんだ??
となると思います。というか、以前この件について調べたはずの自分でさえ、そうなっていました。
しかしながら、 Electron と NW.js は、構造とか API とかの違いがあるだけではなく、
そもそもの 想定された使い方 が 違う
と判ったので、今日はサクっとその辺りまとめてみます。
Electron と NW.js の違い
先に結論から書きますが、まず、
Electron は ネイティブアプリケーション を Web 技術で作る
という事を目的にしているのに対し、
NW.js は Web アプリケーション を ネイティブアプリケーション化 する
という事を、恐らくは目的にしています。
それで、これの何が違うかというと、僕も混同しがちだったのですが、 Electron はあくまで、
デスクトップアプリケーションを構築するという目的 に対して Web 技術を使えるようにしてある
のが本来の有り方っぽく、基本的には、
信頼できない Web ページ等をデスクトップに持ち込むだめの道具ではない
という造りになっています。 それに対し、 NW.js は、 Electron と同じ様なコトは出来つつも、基本的には、
信頼できない Web ページ等 でも、 セキュリティ設定に気をつければ デスクトップに安全に持ち込める
という造りになっています。 つまり、もう少し具体的に言うと、例えば、
と言う様な、
信頼できない Web リソースを表示し得る アプリケーションを Web 技術で作る
という場合においては、 Electron を使うのは推奨されず 、 NW.js を用いた方が良い と言え、逆に、
信頼できる Web リソースのみを表示する アプリケーションを Web 技術で作る
と言う場合には、 Electron の方が利用し易い 、と言えるかと思います。
まとめ
つまり、カギとなる考え方は、
信頼できる情報のみを扱うか or 信頼できない情報も含めて扱うか
と言う点で、その観点から言うと、
Electron は 信頼できる情報のみを扱う場合 に用い
逆に、
NW.js は 信頼できない情報を含めて扱う場合 に使う
と考えておけば良さそうです。
以上
です。はい。
まあ、NW.js の方は Chrome の Extension API を備えている様に、 NW.js では Web ブラウザを Web 技術を使って作る 、 みたいな事が割と簡単に出来る様になっているのに対し、Electron はそんなモノはデフォルトでは備えていないし、 また Web ブラウザみたいな、信頼できないリソースを表示する、というのは、あまり想定はされてないっぽい 、 と言えるんじゃないかなー、と僕は思っています。
そのため、僕が一度は作ってみたいなーとか密かに思っている、
と言う結論になるのでした。
という事で今日の話は以上です。 ちなみに、この記事は正座して書いていたんですが、今、足がかなりシビれてて動けないでござる……