node.js是传统脚本语言(如Perl和Python)的可行替代方案吗?

hip*_*ail 28 javascript scripting cross-platform v8 node.js

最近,我已经不再喜欢Perl作为跨平台的通用脚本语言了,而且Python和Ruby也没有真正吸引过我.

但是我已经越来越习惯于在浏览器中使用JavaScript,它在V8等现代引擎中的表现相当不错,而node.js现在已经真正起飞了几年.

但node.js主要用于服务器端网络编程.正如它在其主页上声明的那样:

基于V8的事件驱动的I/O服务器端JavaScript环境.

我想知道node.js目前是否也适合作为*nix和Windows上的通用脚本语言,作为Perl,Python和Ruby的替代品.

我没有太多关于以这种方式使用它的说法,但它确实似乎有一个广泛的社区,我没有注意到任何说它不适合这种用途.这种方式被广泛使用吗?或者它缺少这类事物的关键功能或模块?

And*_*dyD 27

就Node.js而言,我无法看到它成为使用javascript作为通用脚本语言的主流方式.主要原因是Node.js中99%的库和函数的异步性质.由于异步性质,你必须完全改变你的想法.没有可用的同步方法是绊脚石.它会减少脚本,因为代码不再是线性的.

因此,大多数时候你都在考虑采用这种简单的原因:我可以在Ruby/Python /中更快/更简单地编写它(只需尝试下载5个不同的文件,压缩它们并复制它们使用Node.js到另一个文件夹)

随着人们越来越习惯于以异步方式思考和编程,将node.js作为通用脚本工具的采用可能会发生变化.

如果节点中的每个异步函数都有一个同步版本,那么采用会有所不同,人们最终会得到不可扩展的node.js服务器,因为他们选择在某些地方使用同步方法.可以说,节点不会变得流行,因为性能数字不会让它脱颖而出.

简而言之:

node.js的采用正在发生,因为它具有异步性质.由于缺少同步功能,因此没有采用node.js作为客户端通用脚本工具.

请记住,这是基于我自己的经验和意见,而不是我在互联网上找到的文章或数字,所以请亲自尝试并制定自己的意见.

  • 应该注意的是,“node.js 是否会成为主流”和“node.js 是否可用作通用编程语言”是两个不同的问题。尽管如果您关心能够雇用开发人员或其他人阅读您的代码,它们有时是相关的。 (2认同)