如此多的服务器端和移动 Java 应用程序使用 Java 的本机 Java 语言。我们是否可以使用 Jython 来构建企业应用程序,例如网站、应用程序服务器等?
另外,您对 Jython 中的 Java ME 应用程序有何看法。
PS 也欢迎对问题发表评论。
如此多的服务器端和移动 Java 应用程序使用 Java 的本机 Java 语言。我们是否可以使用 Jython 来构建企业应用程序,例如网站、应用程序服务器等?
另外,您对 Jython 中的 Java ME 应用程序有何看法。
PS 也欢迎对问题发表评论。
不,Jython 不是 Java 的合适替代品。例如,如果不使用 Java 编写接口,然后在 Jython 中编写一个利用它的类,它就无法实现接口。
需要的是一个面向 JVM 的等价于 Boo。Boo 是一种针对 .NET CLR 的语言,它大致受 Python 启发但不兼容,并且完全公开了 CLR 的功能(因此与 C# 功能等效)。目前没有与 Java 功能相同的 Pythonic 语言——而且这种语言必然与 Python 不兼容,因为 Python 根本不提供表达某些相关概念(例如接口类型信息)的方法。
由于对此有一些疑问,但我澄清一下:
Jython 不是 Java 的替代品,因为您不能采用任意 Java 项目,而是决定在 Jython 中实现该项目的随机子集,并且开发团队中的任何其他人都不知道或关心。当然,Jython 适用于许多与 Java 相同的项目类,除非您正在构建一个将从 Java 调用的接口,而不是反过来。鉴于“企业应用程序”往往具有许多彼此紧密操作的组件,因此能够构建具有任意外部接口的类很重要……这在纯 Jython 中是不容易做到的。
这在很大程度上取决于您的要求。所有语言都有其优点和缺点。没有完美的语言,对语言选择做出明智的决定是程序员的一项重要技能。
我不同意 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.
不,Jython 不能替代 Java,因为 Python 是动态类型的。是的,Jython 可用于服务器应用程序。
Jython 不适合 Java ME,因为 Java ME 的资源非常有限。也许几年后。
编辑:动态类型,不弱
是的。动态语言是未来。大约一年前,我从 SUN 的代表那里听到了这一点。关于 Jython 的惊人之处在于 Java 库的“本机”使用。服务和其他组件可能会保留在 Java 中,但集成层肯定会朝着动态语言的方向发展。我认为 Python 像 Java 一样是原生面向对象的,这就是它们匹配得如此出色的原因。我不期望 Perl 等其他脚本语言会出现类似的情况,但可以肯定 Ruby 和 Groovy 也是不错的选择。
您可以将 Jython 用于该域。显然,Web 开发世界正朝着 Python 或 Ruby 等动态类型语言发展。Jython 在这个领域很不错,因为它允许在企业中使用完整的“Java 堆栈”(应用服务器、Tomcat、部署和测试基础架构……)。您还可以在 Java 中实现您的业务逻辑。
但是,Jython 不能替代 Java,因为它是 C#。您(可能)提高了程序员的工作效率,但您会损失性能和编译时间检查。这些语言确实不同,并且针对不同的任务进行了“优化”。我建议评估 Jython 的较小、非关键任务,例如开始在其中实施一些测试用例。
我怀疑 Jython 是否对 Java ME 开发有用。原因在其他帖子中给出:资源限制。