4

如此多的服务器端和移动 Java 应用程序使用 Java 的本机 Java 语言。我们是否可以使用 Jython 来构建企业应用程序,例如网站、应用程序服务器等?

另外,您对 Jython 中的 Java ME 应用程序有何看法。

PS 也欢迎对问题发表评论。

4

5 回答 5

4

不,Jython 不是 Java 的合适替代品。例如,如果不使用 Java 编写接口,然后在 Jython 中编写一个利用它的类,它就无法实现接口。

需要的是一个面向 JVM 的等价于 Boo。Boo 是一种针对 .NET CLR 的语言,它大致受 Python 启发但不兼容,并且完全公开了 CLR 的功能(因此与 C# 功能等效)。目前没有与 Java 功能相同的 Pythonic 语言——而且这种语言必然与 Python 不兼容,因为 Python 根本不提供表达某些相关概念(例如接口类型信息)的方法。


由于对此有一些疑问,但我澄清一下:

Jython 不是 Java 的替代品,因为您不能采用任意 Java 项目,而是决定在 Jython 中实现该项目的随机子集,并且开发团队中的任何其他人都不知道或关心。当然,Jython 适用于许多与 Java 相同的项目类,除非您正在构建一个将从 Java 调用的接口,而不是反过来。鉴于“企业应用程序”往往具有许多彼此紧密操作的组件,因此能够构建具有任意外部接口的类很重要……这在纯 Jython 中是不容易做到的。

于 2009-03-29T09:06:35.317 回答
4

这在很大程度上取决于您的要求。所有语言都有其优点和缺点。没有完美的语言,对语言选择做出明智的决定是程序员的一项重要技能。

我不同意 Charles 的观点,即 Jython 无法替代 Java,因为您无法实现接口。在动态语言中,它被视为您不需要接口的功能(请参阅鸭子类型)。

Jython 采用 Python 的出色语言特性,并将其与对大量 Java 库的轻松访问相结合。然而,它在开销方面确实有代价,而且作为一种相当新的语言,你需要更少的程序员和支持来支持你。

Jython 的好处是,如果出现性能问题,您可以用 Java 重写单个模块。速度问题在您可以使用硬件解决问题的服务器上不太明显。在手机上,性能仍然是关键,我看不出 Jython 在不久的将来会在那里产生重大影响。

So will Jython replace Java? No, I don't think it will - the momentum behind Java is too great. But we will see increasingly more software with parts written in Jython and other languages targeting the JVM.

于 2009-04-01T23:32:39.703 回答
3

不,Jython 不能替代 Java,因为 Python 是动态类型的。是的,Jython 可用于服务器应用程序。

Jython 不适合 Java ME,因为 Java ME 的资源非常有限。也许几年后。

编辑:动态类型,不弱

于 2009-03-29T09:00:21.027 回答
1

是的。动态语言是未来。大约一年前,我从 SUN 的代表那里听到了这一点。关于 Jython 的惊人之处在于 Java 库的“本机”使用。服务和其他组件可能会保留在 Java 中,但集成层肯定会朝着动态语言的方向发展。我认为 Python 像 Java 一样是原生面向对象的,这就是它们匹配得如此出色的原因。我不期望 Perl 等其他脚本语言会出现类似的情况,但可以肯定 Ruby 和 Groovy 也是不错的选择。

于 2009-03-30T14:09:30.510 回答
0

您可以将 Jython 用于该域。显然,Web 开发世界正朝着 Python 或 Ruby 等动态类型语言发展。Jython 在这个领域很不错,因为它允许在企业中使用完整的“Java 堆栈”(应用服务器、Tomcat、部署和测试基础架构……)。您还可以在 Java 中实现您的业务逻辑。

但是,Jython 不能替代 Java,因为它是 C#。您(可能)提高了程序员的工作效率,但您会损失性能和编译时间检查。这些语言确实不同,并且针对不同的任务进行了“优化”。我建议评估 Jython 的较小、非关键任务,例如开始在其中实施一些测试用例。

我怀疑 Jython 是否对 Java ME 开发有用。原因在其他帖子中给出:资源限制。

于 2009-03-29T10:26:31.957 回答