新しいデスクトップ アプリケーションの多くが Web サイトによく似ていることに気づきましたか?それはあなたの想像ではありません。
Trello から Slack、Wordpress.com から Github に至るまで、いわゆるデスクトップ アプリケーションが、通知、ファイル システム アクセス、メニューなどのいくつかのネイティブ機能を Web サイトにバンドルすることがますます一般的になってきています。これを可能にする最も一般的なテクノロジは Electron と呼ばれ、 や Microsoft の Visual Studio Code など、思いもよらないいくつかのアプリケーションで使用されています。
Electron を使用すると、開発者は Windows、macOS、Linux 上でアプリを同時にリリースすることが簡単になりますが、ユーザーにとってはマイナス面もあります。まず、電子アプリケーションは膨大です。チャット アプリケーションの Slack は、私の Mac 上で 237 MB のハード ドライブ容量を占有しており、メモリ消費量も少なくありません。何がこれらすべてのリソースを消費しているのでしょうか?そして、なぜ開発者はこれほど非効率的なものを使用しているのでしょうか?
Electron アプリは非常に簡単に作成できます
デスクトップ アプリケーションを作成するのは、特にクロスプラットフォームにしたい場合には困難です。たとえば、ファイル システムへのアクセスは Windows と Linux では動作が異なり、通知の動作も macOS と Windows では異なります。これは、3 つのデスクトップ オペレーティング システムすべて (またはそのうち 2 つ) 用のアプリケーションを作成したい人は、あるデスクトップ オペレーティング システムから別のオペレーティング システムに移植するときに、多くのコードを書き直す必要があることを意味します。
Electron は、3 つの主要なデスクトップ オペレーティング システムすべてで動作する単一のプラットフォームを提供することで、この問題を「解決」します。これは、開発者が通知などのコードを一度記述すれば、それがすべてのオペレーティング システムでネイティブに動作することを期待できることを意味します。開発者にとってはさらに良いことです。Javascript、HTML、CSS を使用してすべてを構築できます。これらのテクノロジは、Web のコーディングを行う人なら誰でもよく知っています。
Electron アプリにはほぼすべての Chromium が付属しています
これはどのようにして可能でしょうか?その理由の 1 つは、すべての Electron アプリに完全な Web ブラウザー、 Chromium がバンドルされているためです。これは、すべてのシステムで開発者が期待するとおりにすべてが動作することを保証するために、プラットフォーム固有の指示とともにバンドルされています。 Slack のデスクトップ バージョンが 200 MB 以上のハード ドライブ容量を占有するのはそのためです。Chrome のほとんどはそこにバンドルされています。
実行するすべての Electron アプリは、多かれ少なかれ Chrome の完全なインスタンスです。ブロガーの Joseph Gentle 氏 が指摘した ように、これは理想的とは言えません。
Slack は、別のオペレーティング システム VM (Chrome) 内で実行される小さな JavaScript プログラムと考えることができます。基本的に IRC でチャットするためには、このプログラムを実行する必要があります。実際の Chrome を開いている場合でも、各 Electron アプリは VM 全体の独自の追加コピーを実行します。
そう、ユーザーにとってはマイナス面もあります。まず第一に、ダウンロードするすべての Electron アプリケーションには Chromium のほとんどがバンドルされており、実行するすべてのアプリケーションはそのコードのかなりの部分を実行します。ここにはネイティブ アプリケーションのようなリソースの共有はありません。つまり、Electron アプリケーションは、プラットフォームを特に念頭に置いて開発されたアプリケーションよりも多くのハード ドライブのスペースとメモリを占有することになります。パフォーマンスを本当に重視する場合は、Electron アプリケーションを避けたほうがよいでしょう。
待てよ、では電子は良いのか悪いのか?
現時点では、コンピューターは非常に強力であるため、ほとんどのユーザーは Electron アプリケーションがいかに非効率であるかにさえ気付かないでしょう。実際、大多数の人は Electron について聞いたことさえありません。私の同僚のほとんどは Slack を使用したことがなく、全員が毎日 Slack を使用しています。多くの人は Trello のデスクトップ バージョンが登場するのを見て興奮していましたが、やはりそれが Electron アプリであるとは知りませんでした。
そして、これらのアプリは実際に、Web サイトよりもオペレーティング システムとよりよく統合されます。彼らは自分たちの窓の中に住んでいます。これらは、優れたキーボード ショートカット、ネイティブ通知、およびブラウザーだけでは同じ方法で実行できないその他の機能を提供します。
そして、Slack、Trello、WordPress.com などのアプリケーションは、Electron が存在しなかったらわざわざデスクトップ バージョンを提供せず、代わりにモバイル バージョンやブラウザ バージョンに重点を置くだろうということは間違いありません。つまり、問題は Electron が悪いかどうかではありません。それは、Electron アプリケーションが何もないよりも優れているかどうかです。私は喜んでイエスと言いたいが、分別のある人は反対するかもしれない。 (そういう人のために、ウェブ版はいつでも利用できます。)





