导读 | 有人在 Quora 上提问,为什么谷歌不喜欢 Node.js 呢,Google 的 UX 工程师和来自 Node.js 团队的开发者分别回答了他们对这个问题的看法,对于编程语言来说,每一门语言都有它自己的优势,重要的是如何用它去解决问题。 |
对于任何语言,谷歌对其都秉持着中立的态度,只有所谓的 Big Three(Java、Python 和 Go)例外,这些语言有着自己特别的优势,在项目中使用它们不需要进行额外的说明。
作为一家企业,谷歌对 Node.js 并没有什么偏见。我写过很多 React 代码,它们都依赖 Node ,其中一些代码甚至现在还在谷歌的 megarepo 中。
当然,可能也会有一些个人或是团队不太喜欢 Node.js 。谷歌内部的确有一些人不喜欢它,但是同时也有很多人能够看到 Node.js 的价值,尤其是 Cloud 团队。
Node.js 是目前 Cloud Functions 唯一支持的语言
它也是 App Engine 灵活环境的一部分
它还是很多产品的客户端 library(Compute Engine,、Cloud Storage 以及 Datastore 等)
谷歌的 V8 团队与 Node.js 团队有着紧密的合作。在最近的 Node.js 8 中,我们对之后的 V8 保证了 ABI 兼容性。如果没有两个团队间的紧密合作,我们无法做到这一点。
Node.js 还在和 V8 团队一起开发 PromiseHook API ,它允许开发者使用 C++ 检测所有 promise 。它让我们可以在 domain module 中加入对 promise 的支持,而且也是新的 async_hooks API 中的一个主要组件。
由此可见,说谷歌讨厌 Node.js 完全是一派胡言。
在使用 Node.js 的时候,你不能一次性处理多个 core ,比需要要对多个 instance 进行 spin 。更糟的是,它的 cluster API 到现在依然还只是实验性功能。
我之所以不喜欢 Node.js ,是因为在使用 headless 浏览器运行测试的时候,你智能使用一个 core 。除非你能学会如何将测试的 load 进行分配,否则在真实浏览器中运行测试的速度会更快。
调试也是个问题,如果你使用的是cluster library,它会无法正常工作。我非常希望 Node.js 能解决这个问题。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/industrynews/106197.html