谷歌發佈新的 Node.js Web 渲染界面 Carlo

谷歌發佈Carlo的早期版本,這是谷歌實驗室用來創建Node.js應用的實驗性項目。Carlo使用Puppeteer實現Node.js應用和Chrome Web瀏覽器之間的通信。

在使用Web技術創建桌面應用方面,Electron目前是主導性的技術。與Electron不同,Carlo並不會嘗試將特定版本的Chrome和Node.js打包在一起,而是依賴於終端用戶的電腦上已安裝的任意版本的Chrome。

Carlo並沒有提供構建真正桌面應用的功能,比如修改瀏覽器視圖的名稱、菜單或圖標。相反,Carlo更像是在本地應用服務器上運行應用並自動在Chrome中瀏覽該應用。

Puppeteer是谷歌的瀏覽器自動化項目,它使用了DevTools協議,Carlo使用這種機制與Chrome瀏覽器實例進行通信。

基於Carlo的應用並不需要在每次Chrome升級的時候發佈更新。這種方式的潛在缺點就是可能會破壞應用程序中的功能。如果無法定位到70或更高版本的Chrome,應用程序將會返回一個錯誤。

推薦使用pkg將Carlo應用打包到可執行二進制文件中。與之不同,Electron提供了豐富的應用程序構建基礎設施。

Carlo可能會重新引發什麼是Web、什麼不是Web的爭論。谷歌的工程師Alex Russell曾說過像Electron這樣的環境不是Web的觀點:

很多的平臺都試圖在允許開發人員使用Web的客戶端-服務端技術的前提下,讓我們獲取一些“額外(exotic)”的能力。按照這種方式,他們不得不拋棄共享價值體系中的一個或多個方面。這些方式說不上糟糕,甚至其中有很多人可以說是技術天才,但這並不是Web。

Carlo所倡導的方式應該非常適合漸進式Web應用(Progressive Web Apps)。爲桌面應用程序尋求完整功能的開發人員可能會傾向於繼續使用Electron。

Carlo可以在Apache 2開源協議下使用。現在,官方鼓勵通過Carlo GitHub項目進行貢獻,貢獻過程應該遵循Carlo的貢獻指南和谷歌的開源行爲指南。

查看英文原文:https://www.infoq.com/news/2018/11/carlo-google-nodejs

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章