近日有人在 Hacker News 上询问了有关 Node.js 和 .Net Core(2024)生态系统,此前在 2016 年也有过同样问题的讨论。引发激烈讨论,有喜欢 Node.js 的、有喜欢 .Net 的,还有 Go 和 Java。
下面摘选几个不同角度的热点评论:
评论1:"两者都可以,但我更倾向于 .Net"
网友 "Atotalnoob":
两者都可以。这真的取决于你的使用情况。在我看来,对于 .NET,开发体验要好得多,但它也更昂贵,通常需要 Windows(是的,Linux 上也完全可以使用 .NET)。微软在从头到尾构建更好、更简单的工具方面投入了大量资源。如果你是 Azure 店铺,部署将非常容易。
我还没有看最新的基准测试结果,但我曾经看过的时候,C# 在性能、多线程等方面是一个明显的赢家。Node.js 在任何方面都不慢,但也不是不慢。
Node.js 擅长开发速度和像 Next.js 或其他 SSG 中的 BFF 模式。.NET 将引导你进入更好的设计模式,以便未来更易于维护。在 Node.js 周围还有更多需要注意的地方,这主要是由于 JavaScript 的怪异性。
如果你同时使用 Node.js 后端和前端,那会非常不错。这是一种语言,如果你使用 TypeScript,你可以共享类型!
总的来说,两者都有取舍。当你在它们之间做出选择时,我更关心的是你的团队构成、技能组合和项目类型。
如果你逼我做选择,我会选择 .NET。"
上面有一点是认同的,Node.js 服务端同前端是一种语言,因为大家都是用 JavaScript,学习成本总归是要低些的,有些通用的模块是可以共享的,例如,使用 TS 后,类型就可以共享啊!
评论2: "Node.js 生产力方面无语伦比"
网友 @dzonga:
.NET Core 相当不错。如果我没记错的话,它们甚至采用了与 Express 类似的 API。
是的,它也很快。比 Node 还要快。有类型等。但是 C# 是一种复杂的语言。而且它不断添加新特性。在 .NET 世界中有很棒的工具等。
但是你知道为什么 JavaScript / Node.js 会出色吗?JS 是一种简单的语言。当然,像 Clojure 这样的 Lisp 也很简单。但只有一种语言接近 JavaScript 的简洁性 -- Go 语言。
但是 Go 语言像 JavaScript 一样灵活吗?
在 JavaScript 领域可能唯一不太好的是工具。但就服务器端的东西来说,比如处理 JSON / 转换 JSON,这正是信息类应用所需的 -- 也就是我们大多数人工作的应用的大部分内容。Node.js 在生产力方面是无与伦比的。
所以,是的,Node.js 能够用 20% 的工作获得 80% 的结果。
评论3:"选择 JS 开发,因为不想与 Windows 人才打交道!"
我知道你不是在询问技能背后的人格,但我宁愿选择一个 JS 开发,而不是一个 .NET 开发(即使(也许特别是).NET Core 可以在 Linux 上运行),我甚至会更换整个技术栈,以避免与 Windows 人才打交道。基于 Microsoft 的生态系统中的 ClickOps 思维令人震惊。
这哥们不知道与 Windows 有啥恩怨,以至于选择选择 JS 开发的原因是不想与 Windows 人才打交道 😂
评论4:"我选择 go"
最后有一个由 @moomoo11 评论到 "正确的答案是 Go"
网友 @kcartlidge 回复到
我使用 Go、Node 和 C#(还有当前的 Python、Ruby 和 PHP),正确答案是没有正确答案。
你能做到的最接近的就是使用你已经了解的知识。
如果你已经得出结论你已经了解的知识无法完成工作,那么理论上你已经掌握了缺失功能的知识,这让你能够根据特定的使用情况进行正确的技术评估。
就好像有人说,我总是首先考虑 Go,还有人说 Go 是一个更糟糕的选择!正确上面 @kcartlidge 回复的,这里可能真的没有正确答案!
评论5: "赚钱还得是我 PHP"
这种讨论怎能没有我 PHP?网友 @delfinom 回复到:
你要使用最适合你应用程序的工具。这就是任何语言争论的答案。
这就是人们即使只运行 PHP,也能赚取数百万利润的方式。
前段时间知乎上有个 "2024年nodejs凉了吗?凉到什么程度了?",既然能有这么热烈的讨论,至少还没凉透吧,正常使用吧!没什么问题的。引用一句话:"世上只有两种编程语言:一种被人骂,一种没人用"。