在 Google App Engine 上选择 Java 与 Python

2023-12-02

目前 Google App Engine 支持 Python 和 Java。 Java 支持不太成熟。然而,Java 似乎有更长的库列表,尤其是对 Java 字节码的支持,无论用于编写该代码的语言如何。哪种语言能提供更好的性能和更强大的功能?请指教。谢谢你!

Edit: http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine?pli=1

Edit:我所说的“功能”是指更好的可扩展性和包含框架之外的可用库。不过,Python 只允许纯 Python 库。


我有偏见(作为一名 Python 专家,但对 Java 相当生疏),但我认为 GAE 的 Python 运行时目前比 Java 运行时更先进、开发得更好——毕竟,前者多了一年的时间来开发和成熟。

当然,事情将如何发展很难预测——Java 方面的需求可能更强烈(特别是因为它不仅涉及 Java,还涉及基于 JVM 的其他语言,因此它是运行 PHP 等的方式)或 App Engine 上的 Ruby 代码);然而,Python App Engine 团队确实有一个优势,那就是拥有 Python 的发明者 Guido van Rossum 和一位非常强大的工程师。

在灵活性方面,正如已经提到的,Java 引擎确实提供了运行由不同语言(而不仅仅是 Java)编写的 JVM 字节码的可能性——如果您在一家多语言商店中,这是一个相当大的积极因素。反之亦然,如果您讨厌 Javascript,但必须在用户浏览器中执行一些代码,Java 的 GWT(从 Java 级编码为您生成 Javascript)比 Python 端替代方案更丰富、更先进(实际上,如果您选择Python,您将为此目的自己编写一些 JS,而如果您选择 Java GWT,那么如果您讨厌编写 JS,那么 GWT 是一个可用的替代方案)。

就库而言,这几乎是一种洗礼——JVM 受到足够的限制(没有线程、没有自定义类加载器、没有 JNI、没有关系数据库),与现有的 Python 相比,它阻碍了现有 Java 库的简单重用,甚至更多。库同样受到 Python 运行时的类似限制的阻碍。

就性能而言,我认为这是一种洗礼,尽管您应该对自己的任务进行基准测试 - 不要依赖高度优化的基于 JIT 的 JVM 实现的性能,而不考虑它们的大量启动时间和内存占用,因为应用程序引擎环境非常不同(启动成本通常会被支付,因为应用程序的实例被启动、停止、移动到不同的主机等,所有这些对您来说都是透明的——Python 运行时环境通常比 JVM 便宜得多)。

XPath/XSLT 情况(委婉地说......)双方都不是完全完美,叹息,尽管我认为在 JVM 中可能没那么糟糕(显然,可以运行 Saxon 的大量子集) ,需要小心)。我认为值得在以下问题上提出问题应用引擎问题标题中包含 XPath 和 XSLT 的页面 —— 现在只有要求特定库的问题,这是短视的:我并不真正关心如何为 Python 和/或 Java 实现一个好的 XPath/XSLT,只要当我开始使用它时。 (特定的库可能会简化现有代码的迁移,但这并不比能够以某种方式执行“快速应用 XSLT 转换”等任务重要!-)。我知道如果措辞得当(特别是以与语言无关的方式),我会为这样的问题加注星标。

最后但并非最不重要的一点:请记住,您可以拥有不同版本的应用程序(使用相同的数据存储),其中一些是使用 Python 运行时实现的,一些是使用 Java 运行时实现的,并且您可以访问与“默认/活动”不同的版本“ 具有明确 URL 的一个。所以你可以同时拥有PythonandJava 代码(在应用程序的不同版本中)使用和修改相同的数据存储,从而为您提供更大的灵活性(尽管只有一个代码具有“好的”URL,例如 foobar.appspot.com ——这可能只对访问很重要我想是由浏览器上的交互式用户实现的;-)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Google App Engine 上选择 Java 与 Python 的相关文章

随机推荐