在Google App Engine上选择Java与Python

问题:

目前,Google App Engine支持Python和Java。 Java支持不太成熟。然而,Java似乎有更长的库列表,特别是支持Java字节码,无论用于编写该代码的语言如何。哪种语言会更好的表现和更多的权力?请指教。谢谢!
 编辑: http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine?pli=1
 编辑:
通过“权力”,我意味着更好的可扩展性和框架之外的可用库的包含。 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)。
在图书馆方面,它几乎是一个洗涤 – JVM有足够的限制(没有线程,没有自定义类加载器,没有JNI,没有关系数据库)阻止现有Java库的简单重用现有的Python或更多的现有Python类似于Python运行时的限制,库也受到同样的阻碍。
在性能方面,我认为这是一个洗涤,虽然你应该对自己的任务进行基准测试 – 不要依赖于高度优化的基于JIT的JVM实现的性能,可以减轻其大型启动时间和内存占用空间,因为应用程序引擎环境是非常不同的(启动成本会经常被支付,因为您的应用程序的实例被启动,停止,移动到不同的主机等),所有这些都是显而易见的 – 这些事件通常比Python运行时环境比使用JVM要便宜得多)。
XPath / XSLT的情况(被委婉的)不是完全完美的,但是叹为观止,尽管我认为在JVM中可能会更糟糕(其中显然,撒克逊的大量子集可以运行,一定要小心)。我认为这是值得在XPath和XSLT的标题页面开启问题 – 现在只有问题需要特定的图书馆,这是近视的:我不在乎如何一个好的XPath / XSLT实现,对于Python和/或Java,只要我使用它。 (具体的库可能会减轻现有代码的迁移,但这不如重新执行诸如“快速应用XSLT转换”等任务的一些方式!我知道我会把这样一个问题放在一个很好的措辞上(尤其是以语言无关的方式)。
最后但并非最不重要的一点:请记住,您可以使用不同版本的应用程序(使用相同的数据存储区),其中一些应用程序是使用Python运行时实现的,一些与Java运行时可用,您可以访问与“默认/活动”不同的版本“一个明确的URL。因此,您可以同时使用Python and Java代码(在不同版本的应用程序中)使用和修改相同的数据存储,给予您更多的灵活性(尽管只有一个将具有“nice”URL,如foobar.appspot.com – 这可能很重要,只有访问互动用户浏览器,我想象;-)。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Choosing Java vs Python on Google App Engine

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

57 − = 56