要約 / ポイント
Tauri、Deno、Electrobunのような新しいフレームワークはElectronの王座を奪うと約束していますが、私たちの実世界でのテストは衝撃的な現実を明らかにしました。パフォーマンス、バンドルサイズ、開発者の苦痛に関する真実を暴くため、私たちは同じ要求の厳しいアプリをこれら4つすべてで構築しました。
肥大化戦争:400MBのバンドルは失敗である
バンドルは現代のデスクトップアプリの状況における戦場です。同一の画面録画ツールであるテストアプリケーションは、デプロイメントサイズに大きな違いがあることを示しています。かつて標準だったElectronは323MBです。Tauriはわずか57MBでトップを走り、deno desktopが111MBでそれに続きます。しかし、Electrobunは驚異的な418MBに膨れ上がり、このカテゴリーで間違いなく敗者となりました。(注:すべてのサイズには、組み込みのFFmpeg用の45MBが含まれています)。
Electrobunの巨大なサイズは、重大なアーキテクチャ上の欠陥に起因しています。そのネイティブシステムウェブビューには、JavaScriptベースの画面録画機能に不可欠なScreen Capture APIや`getDisplayMedia`のような必須APIがありません。これにより、開発者はコア機能を有効にするためだけに、完全なChromiumインスタンスをバンドルせざるを得なくなり、約200MBの肥大化が追加されます。DenoのAPIはこれらの機能を正常に実装しており、この重いオーバーヘッドを回避できます。
Tauriは優れた戦略を採用しています。画面録画のような集中的なタスクをRust backendにオフロードし、macOSのScreen Capture Kitのような強力なnative OS frameworksを活用しています。このアプローチにより、ウェブビューはUIのみを処理し、単一のビデオフレームも処理することはありません。その結果、バンドルサイズは劇的に小さくなり、パフォーマンスも最適化され、効率的なデスクトップアプリ開発の明確な道筋を示しています。
パフォーマンスの神話:起動と現実
起動パフォーマンスはしばしば初期のユーザーの認識を左右しますが、ここでの結果は驚くべきものです。予想に反して、deno desktopは242msで最速で起動し、Electronの273msとTauriの311msを上回りました。Rustバックエンドとシステムウェブビューを持つTauriが即座に起動するという期待は、レンダリングエンジンが依然として起動時間を必要とするため、誤りであることが判明しました。
次に、根強く残る「Tauriは10倍軽い」というメモリの神話を明確にします。ディスク上のバンドルサイズは確かにElectronよりも劇的に小さいですが、実際の実行時メモリフットプリントははるかに近いです。Electronは128MBを消費し、Tauriは109MBを使用しました。この数値は、macOSが個別に起動するシステムウェブビュープロセスを正確に考慮しており、完全な計算が行われる前に、誤って低い初期メモリ使用量(例:36MB)が報告されることがよくあります。
Tauriは、特に画面録画のような要求の厳しいタスクにおいて、runtime performanceで真に優れています。集中的なビデオ処理をネイティブコードにオフロードし、macOSのScreen Capture Kitのようなシステムフレームワークを活用することで、優れた結果を達成します。この方法はブラウザベースの制限を回避し、ブラウザベースのアプリケーションでは匹敵するのが難しいスムーズな60 FPS recordingをTauriが提供できるようにします。そのバックエンドはオーディオミキシングとMP4の最終処理を処理し、パフォーマンスをさらに最適化します。
開発者の試練:コード、クラッシュ、そしてハック
ElectronとTauriは成熟したシンプルな開発者体験を提供しますが、その現代的な代替手段での道のりは決してそうではありませんでした。同じ画面録画アプリケーションを構築することで、新しいフレームワークにとって、苛立たしいセットアップの課題、説明のつかない依存関係、さらにはシステムクラッシュによって特徴づけられる開発者の試練が露呈しました。安定性と実装の容易さが依然として重要な差別化要因です。
deno desktopは、その印象的な起動速度にもかかわらず、開発者体験において重大な欠陥を露呈しました。画面録画が開始され、その後アプリケーションウィンドウが非表示になると、プロセス全体が予期せず終了してしまうのです。このため、開発者は場当たり的な回避策を講じることを余儀なくされました。ウィンドウを非表示にする代わりに、アプリケーションのクラッシュを防ぐために画面外に移動させる必要があったのです。これは、deno desktopのプラットフォームが大幅な成熟を必要としていることを示唆しています。
Electrobunは、まさに苛立たしい開発者の試練を提示しました。そのネイティブシステムウェブビューには、JavaScriptベースの画面録画に必要な重要なScreen Capture APIと`getDisplayMedia`関数が欠けていました。この技術的な不足により、Chromiumインスタンス全体をバンドルする必要が生じ、アプリケーションのすでに巨大なサイズに、回避可能な200 MBもの余分な肥大化が加わりました。さらに、このパッケージは、3Dレンダリングを一切行わないアプリにもかかわらず、Three.jsやBabylon.jsを含む3Dレンダリングライブラリを不可解にも取り込んでいました。
評決:あなたの次のデスクトップアプリスタック
Tauriは、軽量なフットプリントと最高のパフォーマンスを求めるデスクトップアプリケーションにとって、決定的な勝者として浮上します。わずか57MBのバンドルサイズとネイティブバックエンドの画面キャプチャにより、優れたランタイム効率を実現します。あなたのチームはRustを受け入れる必要がありますが、その引き換えに比類のないリソース最適化が得られます。
Enjoying this? Get one like it in your inbox each morning.
one email a day · unsubscribe in two clicks · no third-party tracking
Electronは、エコシステムの成熟度、安定性、広範な知識ベースを優先するTypeScriptファーストのチームにとって、揺るぎない王者であり続けています。323MBのバンドルサイズと273msの起動時間にもかかわらず、その分かりやすい開発者体験と堅牢なコミュニティは、多くのプロジェクトにおけるパフォーマンスの懸念を軽減します。信頼性が高く、よく理解された道筋を提供します。
deno desktopは、242msという迅速な起動と111MBのバンドルを誇る、有望な候補です。しかし、アプリケーションのクラッシュや主要機能に対する場当たり的な回避策に代表される現在の不安定さは、本番環境での危険な選択肢となります。今後の動向に注目しつつも、注意して進めるべきです。
Electrobunは、この厳格なテストにおいて、最悪の結果となりました。必須APIのためにChromiumを同梱する必要があったことによる肥大化した418MBのバンドル、773msという遅い起動時間、そして複雑な開発者の試練が相まって、実行不可能な選択肢となっています。本格的な開発ではElectrobunを無視してください。
よくある質問
最もバンドルサイズが小さかったフレームワークはどれですか?
Tauriがわずか57 MBで明確な勝者でした。これはElectron(323 MB)、Deno Desktop(111 MB)、そして特にElectrobun(418 MB)よりも大幅に小さいものでした。
TauriはElectronより速いですか?
起動速度では、Deno Desktopが最も速く、驚くべきことにElectronとTauriの両方を上回りました。しかし、TauriはネイティブシステムAPIを直接使用するため、60 FPSの画面録画のような要求の厳しいタスクにおいて優れたランタイムパフォーマンスを発揮しました。
Electrobunのバンドルサイズがこれほど大きかったのはなぜですか?
Electrobunのネイティブシステムウェブビューには、テストアプリケーションに必要なScreen Capture APIが欠けていました。このため、Chromiumブラウザ全体をバンドルせざるを得なくなり、最終パッケージに約200 MBの肥大化が加わりました。
TypeScript開発者にとって最適なElectronの代替品は何ですか?
Rustを避けたいチームにとって、Electronは最も成熟し安定したプラットフォームであり続けています。Deno Desktopは有望ですが、現在は安定性の問題に悩まされており、純粋なTypeScriptプロジェクトにはElectronがより安全な選択肢となります。
