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

Javascript node.js是Perl和Python等传统脚本语言的可行替代方案吗?,javascript,node.js,scripting,cross-platform,v8,Javascript,Node.js,Scripting,Cross Platform,V8,最近,我不再喜欢Perl作为跨平台通用脚本语言,niether Python和Ruby也从未真正吸引过我 但是我在浏览器中越来越习惯使用JavaScript,它在V8等当代引擎中的性能非常好,node.js已经真正流行了好几年了 但是node.js主要用于服务器端网络编程。正如它在其主页上声明的那样: 基于V8的事件驱动I/O服务器端JavaScript环境 我想知道node.js目前是否适合作为*nix和Windows上的通用脚本语言,以替代Perl、Python和Ruby 我没有发现很多关于

最近,我不再喜欢Perl作为跨平台通用脚本语言,niether Python和Ruby也从未真正吸引过我

但是我在浏览器中越来越习惯使用JavaScript,它在V8等当代引擎中的性能非常好,node.js已经真正流行了好几年了

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

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

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


我没有发现很多关于它被这样使用的讨论,但它似乎有一个广泛的社区,我没有注意到有任何东西说它不适合这种使用。这种方式广泛使用吗?还是说它缺少这类东西的关键功能或模块?

就Node.js而言,我看不出它会成为使用javascript作为通用脚本语言的主流方式。主要原因是Node.js中99%的库和函数都是异步的。由于异步的性质,您必须完全改变您的想法。没有可用的同步方法是一个绊脚石。由于代码不再是线性的,所以它使事情变得不像脚本

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

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

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

简言之:

之所以采用node.js,是因为它是异步的。 由于缺少同步功能,node.js作为客户端通用脚本工具并未被采用


请记住,这是基于我自己的经验和观点,而不是我在互联网上找到的文章或数字,所以请自己尝试一下,并形成自己的观点。

很多JavaScript工具都运行在node.js之上,而不仅仅是服务器上的东西。真的吗?任何指示。正如我所说的:
我没有发现太多关于以这种方式使用它的讨论
Coffeescript编译器或npm是流行的例子。谢谢。不过,这些并不一定是Perl和Python所使用的日常脚本任务。例如,在谷歌搜索时问我的问题,我看不到任何有用的线索:还有关于这些用途的问题,所以似乎还没有出现,或者还不足以引起注意……最好的办法是自己试试看,然后自己决定。应该注意的是,“node.js会成为主流吗?”“node.js可用作通用编程语言吗“这是两个不同的问题。如果你想雇佣开发人员或其他人阅读你的代码,它们有时是相关的。人们很容易被各种新工具和技术迷住,但却忘了你自己/你的公司正被这些技术所束缚。您的代码可能会影响未来的人力资源决策!:)感谢您的回答@AndyD-对我来说,异步特性是其吸引力的一部分,即使是对于通用脚本,但我可能会错过一些还没有尝试过的东西。所有node.js文件系统函数在“fs”模块中都有同步选项。是的,但http.request和child_process.exec之类的东西没有(尽管这可以通过以下依赖项来缓解)