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