Cython/Jython 是一种独立的语言吗?
Is Cython/Jython an independent language?
所以我花了很多时间试图弄清楚 Cython
和 Jython
是什么,但我仍然(更)像刚开始计算机编程的人一样感到困惑。我听说 Cython
是一个扩展,但是..是 也是 和独立语言??
我认为我理解的是:
Cython
/Jython
只是 Python
,您可以使用 C
或 C++
/Java
库分别只有一点点 Cython
/Jython
语法。
这意味着在 C
或 C++
/Java
和 C++
/Java
和,这是通过使用静态类型变量完成的。
或者 Cython
/Jython
只是某种 有时 但不是独立使用的扩展?我的意思是,您仍然会在 Python
中编写所有内容,然后,对于您宁愿使用 C
或 C++
/Java
的任务,您会使用 Cython
/Jython
代替? (我知道我仍然需要 Python 安装和类似的东西,因为它是依赖的。)
因为如果它真的更好,除了它还在开发中的障碍,因为它是相当新的,所以不需要 C
或 C++
/Java
完全 消失,因为它们像 Python
一样简单,但像 C
或 C++
/Java
?
一样强大
CPython 与 Jython 相当。它们是 Python 语言的实现。 CPython 是事实上的标准,是用 C 编写的。Jython 是用 Java 编写的,在 JVM 上运行。它还允许在很大程度上访问 Java 生态系统。该语言还有其他实现,例如 PyPy 或 Pyston。
Cython 完全不同。它允许我们用 C 或 Pyrex(Python 语言的一个子集)为 Python 编写扩展。 Cython 加快了用它编写的部分的执行速度。
Jython 是 Python 语言在 Java 虚拟机上的实现,因此 Jython 是 Python 而不是 CPython。 Cython 是 CPython 的扩展,与 Python 没有太多共同之处,除了语法上的一些相似之处。
Jython is an implementation of the Python language for the Java platform. Jython 2.7 implements the same language as CPython 2.7, and nearly all of the Core Python standard library modules. (CPython is the C implementation of the Python language.)
编写 Jython 类似于编写标准 Python。主要区别在于,由于它编译为 Java 字节码,您可以顺利地与 Java 库交互。当然对JVM有要求,但是没有全局解释器锁(著名的GIL)。
Cython is an optimising static compiler for both the Python programming language and the extended Cython programming language (based on Pyrex)
因此,Cython 首先被认为是一个编译器。它将您的 Python 代码编译为 C
,然后您可以编译(使用标准 C
编译器)和 运行。
为了进一步促进与 C/C++
的集成,它还扩展了用于指定类型、定义不同类型的函数以及与 C/C++
代码交互的语法。一方面,这些允许 Cython 生成更高效的代码,绕过 Python VM 通常执行的缓慢解释,另一方面,使 Python 的编写扩展成为在公园散步,因为你不需要熟悉 Python C-API
.
所以,回答你的问题:
Cython/Jython is just Python and you can use C or C++/Java libraries respectively with just a little bit of Cython/Jython syntax.
差不多,是的。 Jython 是 Python 并使用 Java Libraries
和基本的 import
语句。 Cython 与 Python 非常相似,并且如您所说,使用了一些语法来与 C/C++
接口。
It's meant to speed up performance as well as improve code readability when a task would be more efficient to write in C or C++/Java; and this is done by using statically typed variables.
对于Cython
,这是目标,对于Jython
,则不是。这就是 Cython
提供扩展语法来指定类型而 Jython
不提供的原因。
两种语言都独立使用(在你的意思的意义上)但是,Cython 通常是在分析 CPU-bound Python 代码之后部署的,并且确定瓶颈。
好的。 Jython 是 Python 的一个实现,它将 python 源代码转换为 java 字节码或大多数人所说的目标代码。因此,您基本上使用 python 语法编写程序,但编译为目标代码时源代码的输出是 java 字节码
另一方面,Cython 是一种实现,其中 python 语言中的标准模块已被翻译成 C 语言。所以在这里,当你基本上使用一个模块时,它是python标准模块,但为了效率,在引擎盖下,它的C语言或代码被执行
所以我花了很多时间试图弄清楚 Cython
和 Jython
是什么,但我仍然(更)像刚开始计算机编程的人一样感到困惑。我听说 Cython
是一个扩展,但是..是 也是 和独立语言??
我认为我理解的是:
Cython
/Jython
只是Python
,您可以使用C
或C++
/Java
库分别只有一点点Cython
/Jython
语法。这意味着在
C
或C++
/Java
和C++
/Java
和,这是通过使用静态类型变量完成的。
或者 Cython
/Jython
只是某种 有时 但不是独立使用的扩展?我的意思是,您仍然会在 Python
中编写所有内容,然后,对于您宁愿使用 C
或 C++
/Java
的任务,您会使用 Cython
/Jython
代替? (我知道我仍然需要 Python 安装和类似的东西,因为它是依赖的。)
因为如果它真的更好,除了它还在开发中的障碍,因为它是相当新的,所以不需要 C
或 C++
/Java
完全 消失,因为它们像 Python
一样简单,但像 C
或 C++
/Java
?
CPython 与 Jython 相当。它们是 Python 语言的实现。 CPython 是事实上的标准,是用 C 编写的。Jython 是用 Java 编写的,在 JVM 上运行。它还允许在很大程度上访问 Java 生态系统。该语言还有其他实现,例如 PyPy 或 Pyston。
Cython 完全不同。它允许我们用 C 或 Pyrex(Python 语言的一个子集)为 Python 编写扩展。 Cython 加快了用它编写的部分的执行速度。
Jython 是 Python 语言在 Java 虚拟机上的实现,因此 Jython 是 Python 而不是 CPython。 Cython 是 CPython 的扩展,与 Python 没有太多共同之处,除了语法上的一些相似之处。
Jython is an implementation of the Python language for the Java platform. Jython 2.7 implements the same language as CPython 2.7, and nearly all of the Core Python standard library modules. (CPython is the C implementation of the Python language.)
编写 Jython 类似于编写标准 Python。主要区别在于,由于它编译为 Java 字节码,您可以顺利地与 Java 库交互。当然对JVM有要求,但是没有全局解释器锁(著名的GIL)。
Cython is an optimising static compiler for both the Python programming language and the extended Cython programming language (based on Pyrex)
因此,Cython 首先被认为是一个编译器。它将您的 Python 代码编译为 C
,然后您可以编译(使用标准 C
编译器)和 运行。
为了进一步促进与 C/C++
的集成,它还扩展了用于指定类型、定义不同类型的函数以及与 C/C++
代码交互的语法。一方面,这些允许 Cython 生成更高效的代码,绕过 Python VM 通常执行的缓慢解释,另一方面,使 Python 的编写扩展成为在公园散步,因为你不需要熟悉 Python C-API
.
所以,回答你的问题:
Cython/Jython is just Python and you can use C or C++/Java libraries respectively with just a little bit of Cython/Jython syntax.
差不多,是的。 Jython 是 Python 并使用 Java Libraries
和基本的 import
语句。 Cython 与 Python 非常相似,并且如您所说,使用了一些语法来与 C/C++
接口。
It's meant to speed up performance as well as improve code readability when a task would be more efficient to write in C or C++/Java; and this is done by using statically typed variables.
对于Cython
,这是目标,对于Jython
,则不是。这就是 Cython
提供扩展语法来指定类型而 Jython
不提供的原因。
两种语言都独立使用(在你的意思的意义上)但是,Cython 通常是在分析 CPU-bound Python 代码之后部署的,并且确定瓶颈。
好的。 Jython 是 Python 的一个实现,它将 python 源代码转换为 java 字节码或大多数人所说的目标代码。因此,您基本上使用 python 语法编写程序,但编译为目标代码时源代码的输出是 java 字节码
另一方面,Cython 是一种实现,其中 python 语言中的标准模块已被翻译成 C 语言。所以在这里,当你基本上使用一个模块时,它是python标准模块,但为了效率,在引擎盖下,它的C语言或代码被执行