Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 哪种动态语言可以轻松使用其他语言的库?_Python_Ruby_Perl_Module_Dynamic Languages - Fatal编程技术网

Python 哪种动态语言可以轻松使用其他语言的库?

Python 哪种动态语言可以轻松使用其他语言的库?,python,ruby,perl,module,dynamic-languages,Python,Ruby,Perl,Module,Dynamic Languages,告诉你为什么认为Python、Perl、Ruby等最容易插入来自其他语言的模块,只需很少的思考 为了澄清,举一个例子:我想用Python编写业务逻辑,但使用作为Perl模块方便存在的功能 换句话说,哪种语言“只适用于”大多数模块?这三种语言都有非常好的、清晰的工具,可以调用子流程中的任何可执行文件(包括可执行文件,如python somethingelse.py或ruby somethingelse.rb) 使用您最熟悉的工具。这三种语言都有非常好的、清晰的工具,可以只调用子流程中的任何可执行文

告诉你为什么认为Python、Perl、Ruby等最容易插入来自其他语言的模块,只需很少的思考

为了澄清,举一个例子:我想用Python编写业务逻辑,但使用作为Perl模块方便存在的功能


换句话说,哪种语言“只适用于”大多数模块?

这三种语言都有非常好的、清晰的工具,可以调用子流程中的任何可执行文件(包括可执行文件,如
python somethingelse.py
ruby somethingelse.rb


使用您最熟悉的工具。

这三种语言都有非常好的、清晰的工具,可以只调用子流程中的任何可执行文件(包括可执行文件,如
python somethingelse.py
ruby somethingelse.rb

使用你最了解的东西。

这看起来是达到这个目的的方法,因为

这只鹦鹉目前拥有各种各样的动物 不同语言环境下的语言实现 完成阶段,包括Tcl, Javascript、Ruby、Lua、Scheme、PHP、, Python、Perl 6、APL和.NET 字节码转换器

我认为,在这些语言中,您使用哪种作为本模块的“主要驱动程序”,哪种作为本模块的“来宾”并不重要——只需检查您选择的一种语言的Parrot实现是否完整和成熟(因为Parrot是一个相当新的项目,而且其中一些语言的实现也是如此).

这似乎是实现这一目标的途径,因为

这只鹦鹉目前拥有各种各样的动物 不同语言环境下的语言实现 完成阶段,包括Tcl, Javascript、Ruby、Lua、Scheme、PHP、, Python、Perl 6、APL和.NET 字节码转换器


我认为,在这些语言中,您使用哪种作为本模块的“主要驱动程序”,哪种作为本模块的“来宾”并不重要——只需检查您选择的一种语言的Parrot实现是否完整和成熟(因为Parrot是一个相当新的项目,而且其中一些语言的实现也是如此).

如果要插入Perl模块,最适合的语言是Perl。Perl能够正确地表示用Perl编写的代码的语义和功能。这真的不应该令人震惊

如果你有一个独立的程序,你想在它自己的进程中从另一个程序调用,而不是不断地交互,这些语言中的任何一种都可以用任何语言编写的程序来实现。在这一点上,您实际上并没有在程序中使用其他语言,而是调用其他问题


有几个项目将各种配对和项目(如Parrot)结合起来,这些项目寻求为大量语言提供一个平台以实现兼容性,而项目(如.NET)几乎意外地提供了以前不兼容语言之间的兼容性。但是,我不认为其中大多数都像您希望的那样健壮、成熟,并且适合组合普通代码。

如果您想插入Perl模块,最适合的语言是Perl。Perl能够正确地表示用Perl编写的代码的语义和功能。这真的不应该令人震惊

如果你有一个独立的程序,你想在它自己的进程中从另一个程序调用,而不是不断地交互,这些语言中的任何一种都可以用任何语言编写的程序来实现。在这一点上,您实际上并没有在程序中使用其他语言,而是调用其他问题


有几个项目将各种配对和项目(如Parrot)结合起来,这些项目寻求为大量语言提供一个平台以实现兼容性,而项目(如.NET)几乎意外地提供了以前不兼容语言之间的兼容性。然而,我不认为其中的大多数都像您希望的那样健壮、成熟,并且适合于组合普通代码。

我将在这里从更高的体系结构级别来回答。问题是你想做什么。。。您想用Python编写业务逻辑并从Python调用Perl函数吗?或者你想执行一个脚本?如果是,双方将如何沟通


我怀疑,但不知道,ParrotVM可能允许您这样做,但正如Mike指出的,这是有困难的。跨语言工作很难,就像跨程序的IPC很难一样,除非使用某种形式的松耦合(与语言没有那么紧密的联系)。为此,你可以考虑用一种语言设置控制器,让其他人通过队列进行交谈,或者不管你喜欢哪种机制,无论你在哪个平台上。你怎么做并不重要(暗示一场关于最佳机制的辩论),但经过适当设计,它使跨语言交流和构建插件变得非常容易。例如,您可能有一个队列,用于
进程\u新用户
。任何在该队列中注册的脚本都可以访问数据,这样新开发人员就可以轻松地为其程序部分添加功能。将其解释为:您可以轻松地使用不同的脚本语言来实现这一点。

我将在这里从更高的体系结构级别进行回答。问题是你想做什么。。。您想用Python编写业务逻辑并从Python调用Perl函数吗?或者你想执行一个脚本?如果是,双方将如何沟通

我怀疑,但不知道,ParrotVM可能允许您这样做,但正如Mike指出的,这是有困难的。跨语言工作很难,就像跨程序的IPC很难一样,除非使用某种形式的松耦合(与语言没有那么紧密的联系)。为此,你可以考虑用一种语言设置控制器,让其他人通过队列进行交谈,或者不管你喜欢哪种机制,无论你在哪个平台上。你怎么做并不重要(暗示一场关于最佳机制的辩论),但设计得当会让你说话