1、企業(yè)級
Electron 可靠、安全、穩(wěn)定且成熟。 它是眾多公司構(gòu)建其旗艦級產(chǎn)品的首選框架。 We have a list of some of those companies on our homepage, but just among chat apps, Slack, Discord, and Signal are built with Electron. 在 AI 應用程序中,OpenAI 的 ChatGPT 和 Anthropic 的 Claude 都使用 Electron。 Visual Studio Code、Loom、Canva、Notion、Docker 以及無數(shù)其他領先的軟件開發(fā)商都選擇了 Electron。
我們確實將使 Electron 易于使用并為開發(fā)者帶來愉悅體驗作為一項優(yōu)先事項。 這可能是 Electron 如此受歡迎的主要原因——但保持 Electron 活力和蓬勃發(fā)展的是維護者專注于使 Electron 盡可能穩(wěn)定、安全、高性能,并能夠滿足最終用戶的關(guān)鍵任務型用例。 我們正在構(gòu)建的 Electron,適用于那些不允許出現(xiàn)無法修復的錯誤、未修補的安全漏洞和任何類型服務中斷的場景。
2、成熟
據(jù)我們目前的估計,全球大多數(shù)臺式電腦上都運行著至少一個 Electron 應用。 Electron 的發(fā)展得益于其維護者團隊中的人才優(yōu)先化,在管理持續(xù)維護方面培養(yǎng)了卓越且可持續(xù)的工程實踐,并主動邀請選擇 Electron 的公司直接為該項目做出貢獻。 我們是 OpenJS 基金會的一個影響力項目,該基金會本身也是 Linux 基金會的一部分。 我們與 Node.js、ESLint、Webpack 等其他基金會項目,以及 Linux 內(nèi)核或 Kubernetes 共享資源和專業(yè)知識。
對于你這樣的開發(fā)者,所有這些在實踐中意味著什么?
可靠的發(fā)布時間表:Electron 將與 Chromium 的每個次要版本同步發(fā)布一個新的主要版本,通常和 Chromium 在同一天發(fā)布。 為了實現(xiàn)這一目標,需要在構(gòu)建流程、開發(fā)工具以及確保每周的實際工時上付出巨大努力。
去中心化決策:有時,選擇一項技術(shù)也需要你選擇一個人或一家公司。 相應地,這要求你相信該個人或公司永遠不會崩潰、與你直接競爭,或者做出任何其他迫使你重新考慮整個技術(shù)棧的劇烈舉動。 Electron 由一組不同的公司(Microsoft、Slack/Salesforce、Notion 等)維護,并將繼續(xù)歡迎更多有興趣確保其“在決策桌上占有一席之地”的公司。
3、穩(wěn)定性、安全性與性能
Electron 通過將最新版本的 Chromium、V8 和 Node.js 直接與應用程序二進制文件打包在一起,在所有目標平臺(macOS、Windows、Linux)上提供出色的體驗。 在運行和渲染具備極高穩(wěn)定性、安全性和性能的 Web 內(nèi)容方面,我們目前認為該技術(shù)棧當屬同類最佳。
何必打包所有
您可能會疑惑,既然大多數(shù)現(xiàn)代操作系統(tǒng)已經(jīng)自帶了瀏覽器和某種形式的 Web 視圖,為什么我們還要將 Chromium 的 Web 堆棧打包進我們的應用程序? 打包不僅會顯著增加 Electron 維護者的工作量,還會增加 Electron 應用程序的總體積(大多數(shù)應用都大于 100MB)。 許多 Electron 維護者都曾在開發(fā)中采用過嵌入式 Web 視圖,但后來他們認為,犧牲一定的磁盤空間和維護成本是值得的。
如果使用操作系統(tǒng)內(nèi)置的 Web 視圖,您能使用的瀏覽器版本將受限于您需要支持的最低操作系統(tǒng)版本。 我們發(fā)現(xiàn)此方法存在以下問題:
穩(wěn)定性: 現(xiàn)代 Web 技術(shù)棧非常復雜,因此,您遲早會遇到 bug。 如果您使用操作系統(tǒng)的 Web 視圖,那么您唯一的解決辦法就是讓客戶升級操作系統(tǒng)。 如果用戶的機器無法升級(例如無法升級到最新的 macOS 或 Windows 11),您就不得不要求他們購買新電腦。 假如運氣不好,您可能會因此失去一個主要客戶,因為他們不可能僅僅為了讓某個團隊試用您初創(chuàng)公司的應用而升級數(shù)千臺機器。 遇到這種情況,您將 無計可施 。 對于那些雇傭 Electron 維護者的公司來說,即使出現(xiàn)這種情況的風險也是無法接受的。
安全性: 與通過發(fā)布應用更新修復穩(wěn)定性錯誤類似,您也可以發(fā)布安全補丁,而無需讓客戶升級操作系統(tǒng)。 雖然操作系統(tǒng)供應商會優(yōu)先更新其內(nèi)置瀏覽器,但我們從未發(fā)現(xiàn)他們會同樣及時地更新內(nèi)置的 Web 視圖。 打包 Web 渲染器可讓您(開發(fā)者)掌控一切。
性能: 對于簡單的 HTML 文檔,內(nèi)置 Web 視圖有時比捆綁了框架的應用占用資源更少。 但對于更大型的應用,根據(jù)我們的經(jīng)驗,最新版本的 Chromium 能提供比內(nèi)置 Web 視圖更好的性能。 您可能認為內(nèi)置視圖能與其他應用和操作系統(tǒng)共享許多資源,但出于安全考慮,應用必須在各自的沙盒中運行,彼此隔離。 這樣一來,問題就變成了:操作系統(tǒng)的 Web 視圖是否比 Chromium 性能更好? 從眾多應用的實踐來看,我們的經(jīng)驗是:打包 Chromium 和 Node.js 可以幫助我們打造更出色、性能更卓越的體驗。