谷歌发布新的 Node.js Web 渲染界面 Carlo(10)

发布于2019-04-21 20:21:43

谷歌发布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

相关推荐:


12 月 7 日北京 ArchSummit 全球架构师峰会上,来自 Google、Netflix、BAT、滴滴、美团 等公司技术讲师齐聚一堂,共同分享“微服务、金融技术、前端黑科技、智能运维等相关经验与实践。详情点击 https://bj2018.archsummit.com/schedule