Google App Engine -- Java 还是 Python?

8

我注意到这个问题在以下帖子中被提出。有没有人两种语言都用过,可以明确地告诉我哪种更好?看起来Python可能会更容易实现和更快一些?


更快是指更有效地使用CPU还是更快地开发应用程序?Java在速度方面可以与C++“接近”,而Python通常落后很多。 - Jonathon Faust
3
根据我在eBay上买到的这个好表计,Java比Python更好31%。什么?该死的东西坏了! - bobince
10个回答

17

目前为止,这两种实现都相当成熟和稳定,它们的功能非常相似(我认为它们还不完全相等,但是朝着这个方向发展)。因此,如果你已经掌握了其中一种语言,我建议“只需去做”。如果你已经掌握了两种语言,那么你不需要我的建议;-)。

如果你两种语言都不会,但是想要尝试一些在GAE JVM端支持的非Java语言(我相信这包括Scala、服务器端Javascript、JRuby等),那么值得一试。如果你两种语言都不会,并且不想冒险使用“非一流支持的语言”,我绝对同意你的观察:Python更容易学习(但当然我有偏见,偏爱Python ;-)。


8
我曾经使用过这两种语言,我的结论是最大的区别在于库。理论上,两者都有很好的库可以做几乎所有的事情,但实际上许多库无法与应用引擎一起使用:
  • 所有Java库都是纯Java编写的,应该可以工作,但由于应用引擎不允许线程,甚至不允许所有*java.**依赖项,所以会有问题。
  • 另一方面,Python拥有更少的库,并且其中许多只是本地C库的包装器,也无法工作。:(
由于这两个版本对库的支持都很差,所以我称之为平局。对于非常简单的“只显示一些内容”的Web应用程序,当然不需要任何外部库。
我现在使用Python,因为它很厉害。;)

4

“更好”的定义是主观的。对于GAE,哪种语言“更好”取决于你对哪种语言更为熟悉。如果你熟悉Java,就用它,如果你熟悉Python,就用它。我认为没有客观标准能够指出其中一种比另一种“更好”。


3

在这里,你需要考虑的不仅是语言,还有库、框架和工具等相关因素。

如果你既没有语言背景,也没有网页开发经验,我认为Python更容易入门。它已经存在了很长时间,可能会有更多的支持和知识可用。通常做一些简单的事情是比较容易的,而且我认为Python框架更加轻量级。

尽管如此,我更喜欢使用Java。然而,我的理由是有争议的,我不想引起争端:D。


3

Python是Google AppEngine最初设计的语言,并且得到了比Java更长时间的支持(Java相对较近才被包括在内)。此外,Python的创造者Guido van Rossum也在AppEngine的Python方面工作。而Java的创造者则不具备这一点。

似乎关于AppEngine上Python的文档和文章比Java要多,可能是因为Python在AppEngine中使用的时间更长。

我的建议:使用Python。 但这并不意味着Java是一个糟糕的选择,因为它并不是,我只是认为在这种情况下Python是更好的选择。


2

Python(主观而言)


1

对于所有 GAE 项目,选择使用 .py 文件作为编程语言(此处)的原因是代码更易读、行数更少,同时 Python 比 Java 更高级,可以用更少的代码解决同样的问题。大致估计,使用 Python 编写相同的函数所需的代码量只有 Java 的十分之一。


1

我使用Python,因为在AppEngine中始终可以获得Django的最佳表现


0

我使用Groovy(Grails)与GAE进行编程。它有Java的库集合,与Python相比,大致具有相同数量的代码行。是的,它不是100%的Java(如果你想要的话),但非常接近。 最大的区别大概在于Java虚拟机的速度,这也是Groovy(Grails)变得如此受欢迎的原因之一 - 尤其是像我这样不喜欢Python的人。)


0

在appengine中可能可以使用Jython,因此您可以同时使用两者。关于Python生产力与Java生产力的争论,我想说的一件事是,Java具有优秀的IDE来加速开发,而Python在这个领域确实缺乏,因为它的动态性质。因此,即使我更喜欢使用Python作为语言,但我不认为它与Java相比在使用新框架时能够提供相同的生产力提升。此外,我还没有能够让Google应用引擎的Python版本在Netbeans中工作,这真是一件非常痛苦的事情。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接