カラクリスタ

「輝かしい青春」なんて失かった人のブログ

Electron と NW.js の違いについて (再調査)

と言う話。

話の前提

まず、 ElectronNW.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 を使って作った方が良い

と言う結論になるのでした。


という事で今日の話は以上です。 ちなみに、この記事は正座して書いていたんですが、今、足がかなりシビれてて動けないでござる……