Electron と NW.js の違いについて (再調査)
読了まで:約2分
と言う話。
話の前提
まず、 [[Electron]] も [[NW.js]] も、
(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 ブラウザを作りたい!
- Web 技術を使って RSS/Atom News Reader を作りたい!
と言う様な、
信頼できない Web リソースを表示し得る アプリケーションを Web 技術で作る
という場合においては、 Electron を使うのは推奨されず 、 NW.js を用いた方が良い と言え、逆に、
信頼できる Web リソースのみを表示する アプリケーションを Web 技術で作る
と言う場合には、 Electron の方が利用し易い 、と言えるかと思います。
まとめ
つまり、カギとなる考え方は、
信頼できる情報のみを扱うか or 信頼できない情報も含めて扱うか
と言う点で、その観点から言うと、
Electron は 信頼できる情報のみを扱う場合 に用い
逆に、
NW.js は 信頼できない情報を含めて扱う場合 に使う
と考えておけば良さそうです。
以上
です。はい。
まあ、NW.js の方は Chrome の Extension API を備えている様に、 NW.js では Web ブラウザを Web 技術を使って作る 、 みたいな事が割と簡単に出来る様になっているのに対し、Electron はそんなモノはデフォルトでは備えていないし、 また Web ブラウザみたいな、信頼できないリソースを表示する、というのは、あまり想定はされてないっぽい 、 と言えるんじゃないかなー、と僕は思っています。
そのため、僕が一度は作ってみたいなーとか密かに思っている、
Web ブラウザ とか RSS/Atom NEWS Reader 等は、 NW.js を使って作った方が良い
と言う結論になるのでした。
という事で今日の話は以上です。 ちなみに、この記事は正座して書いていたんですが、今、足がかなりシビれてて動けないでござる……