Java Cython/Jython是一种独立的语言吗?

Java Cython/Jython是一种独立的语言吗?,java,python,c,jython,cython,Java,Python,C,Jython,Cython,所以我花了很多时间试图弄清楚什么是Cython和Jython,而我仍然(更)像刚开始计算机编程的人一样困惑。我听说,Cython是一种扩展,但是..也是一种独立的语言 我想我理解的是: Cython/Jython就是Python,您可以分别使用C或C++/Java库,只需使用一点点Cython/Jython语法 当使用C或C++/Java编写任务更高效时,它意味着加快性能并提高代码可读性,而这是通过使用静态类型变量实现的 或者说,Cython/Jython只是某种有时使用但不独立使用的扩展?我的

所以我花了很多时间试图弄清楚什么是
Cython
Jython
,而我仍然(更)像刚开始计算机编程的人一样困惑。我听说,
Cython
是一种扩展,但是..也是一种独立的语言

我想我理解的是:

  • Cython
    /
    Jython
    就是
    Python
    ,您可以分别使用
    C
    C++
    /
    Java
    库,只需使用一点点
    Cython
    /
    Jython
    语法

  • 当使用
    C
    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


    赛顿完全不同。它允许我们用C或Pyrex(Python语言的子集)为Python编写扩展。Cython加快了用它编写的部件的执行速度

    Jython是Java虚拟机上Python语言的一个实现,因此Jython是Python而不是CPython。Cython是CPython的一个扩展,除了在语法上有一些相似之处外,与Python没有太多共同之处。

    Jython是用于Java平台的Python语言的实现。Jython2.7实现了与CPython2.7相同的语言,以及几乎所有的核心Python标准库模块。(CPython是Python语言的C实现。)

    编写Jython类似于编写标准Python。主要区别在于,由于它编译为Java字节码,因此可以与Java库进行平滑的交互。当然,它对JVM有要求,但没有全局解释器锁(著名的GIL)

    :

    Cython是Python编程语言和扩展Cython编程语言(基于Pyrex)的优化静态编译器

    所以,Cython首先被认为是一个编译器。它将Python代码编译为
    C
    ,然后编译(使用标准
    C
    编译器)并运行

    为了进一步促进与
    C/C++
    的集成,它还扩展了用于指定类型、定义不同类型的函数以及与
    C/C++
    代码接口的语法。一方面,这些允许Cython生成更高效的代码,通过Python VM通常所做的缓慢解释,另一方面,由于您不需要熟悉
    Python C-API
    ,因此为Python编写扩展非常容易


    因此,要回答您的问题:

    Cython/Jython只是Python,您可以分别使用C或C++/Java库,只需使用一点Cython/Jython语法

    差不多,是的。Jython是Python,它使用
    Java库
    和基本
    import
    语句。Cython与Python非常相似,正如您所说,它使用了一些语法来与
    C/C++
    接口

    当一个任务用C或C++/Java编写效率更高时,它意味着提高性能和代码可读性;这是通过使用静态类型变量实现的

    对于
    Cython
    这是的目标,对于
    Jython
    则不是。这就是为什么
    Cython
    提供了扩展语法来指定类型,而
    Jython
    没有


    这两种语言都是独立使用的(您的意思是),但是Cython通常是在分析CPU绑定的Python代码并确定瓶颈之后部署的。

    Ok。Jython是Python的一个实现,它将Python源代码转换为java字节码或大多数人所称的目标代码。因此,您基本上使用python语法编写程序,但编译为目标代码时,源代码的输出是java字节码


    另一方面,Cython是一个实现,其中python语言中的标准模块已被翻译成C语言。在这里,当您基本上使用一个模块时,它是python标准模块,但是为了效率起见,在后台,它的C语言或执行的代码是

    好的,那么如果完全不同,我应该删除我问题中的Jython部分吗?所以基本上我只是用Python写,然后不用C写某些任务,我用“Cython”,它同样快,除了有两种语言的库,基本上是Python,除了一些C语法(Cython语法),但是,我实际上不能用Cython写程序。我明白了吗?Cython不一样。它为CPython工作。允许您使用类似Python的语法编写一些代码(具有静态类型和其他语法差异)。Cython将这些代码编译成C并获得性能提升。CPython和Jython只是Python,一个用C编写,一个用Java.CPyt编写