在 Github 上查看

Jython 3 功能和可行最小产品

这是一份讨论文档,试图描述并一定程度上优先考虑 Jython 3 的功能,这些功能基于从 jython-dev 和非列表电子邮件中收集的各种意见。

定位

我们认为,如果 Jython 3 ...,人们将继续采用和使用 Jython。

可行最小产品 (MVP) 是尽可能接近所有这些目标,也就是说,如果它离任何一个目标都相差甚远,那么它就不是可行的。这并不排除不成熟的 alpha 版本的可用性。(这是一个公共项目,因此任何人都可以构建它。)

版本和形式

性能

如果这些选择有效,那么 Python 字节码解释器就是一个合法的 MVP。

平台和环境

很难用 MECE 的方式列举所有可能性。它是多维的,尽管并非所有组合都有意义。本节中的哪些内容是 MVP?

操作系统平台

运行时环境

这些定义并不精确,但目的是在 Java 运行的任何地方运行,并充分利用每个环境。

在嵌入式频谱的末端,Jython 可能只有在 Python 不直接可用(而 Java 可用,显然)的情况下才具有吸引力。

重要的集成

基于我们注意到的项目(例如,通过报告的错误)的非科学、不完整的列表。

存在一个更广泛的 Python 生态系统,它们尚未使用 Jython,因为它们依赖于 C 中的扩展。例如,没有 numpy,SciPy 中就没有太多内容。

我们如何找到时间和合作者来测试这些环境的集成?我们是否对这些环境有足够的了解,以避免无意中造成困难?

功能

实现和 API 功能

可用于嵌入和扩展编写者的 Java API 将受到“内部”实现选择的很大影响。反过来说,过早的 API 选择可能会以不可取的方式限制实现自由。

对于对象模型来说尤其如此,因为为了效率起见,在 API 中交换的对象将是我们内部使用的实现。

这可能比 CPython 更容易,因为 Java 为我们提供了良好的封装工具:接口、包和模块。(模块在这里很重要。Jython 2 中的许多实现细节都变成了公共 API,只是为了跨越我们自己的包边界。)

Jython 2 中不应复制的功能