Google Appengine:Java 或 Python [重复]

Posted

技术标签:

【中文标题】Google Appengine:Java 或 Python [重复]【英文标题】:Google Appengine: Java or Python [duplicate] 【发布时间】:2011-02-17 11:50:44 【问题描述】:

可能重复:Choosing Java vs Python on Google App Engine

我们将在下一个大型网络项目中使用 Google Appengine 平台。但我们不确定使用哪种风格:Java 或 Python。

能否请您就每种方法的优缺点提出建议?这是更快地构建更可扩展和更高效的解决方案的最佳方式。

提前致谢

【问题讨论】:

Choosing Java vs Python on Google App Engine 非常相似。 【参考方案1】:

对于评论声称“非常相似”的问题,我给出了公认的答案——但那是近一年前的事了。我仍然以同样的方式有偏见(仍然是 Python 专家,Java 生疏),但在其间的一年里,我会说 Java 运行时已经赶上了 Python 运行时——或者,如果还没有完全赶上,它取得了重大进展(当然,两个运行时“并行”也是如此;-)。我在该答案中的大部分一般考虑仍然大致有效。

所以我认为,今天的主要考虑是,团队对 Python 的熟悉程度,以及对 Java 的熟悉程度——如果对其中一种非常熟悉,而对另一种完全不熟悉,则使用您已经知道的,因为“赶上”另一种方式所需的时间可能比您可以通过一种或另一种方式获得的优势更大(对于想要“思维扩展”体验的业余爱好者,我建议相反:借此机会学习什么你还不知道——但就即时生产力而言,坚持你所知道的会增加它;-)。

如果您确定某个“杀手级库”在其中一种运行时运行良好并且您真的热衷于在您的应用中使用,那么这可能是决定性因素,如果对这两种语言的熟悉程度不同在你的情况下不是决定性的。

【讨论】:

+1 我会附和这一点,但也贡献一下,如果您决定使用 Java,Objectify 框架似乎更多比过时的框架更易于使用-box JDO 框架(不是为与 App Engine 数据存储区一起使用而设计的,就像 Objectify 一样)code.google.com/p/objectify-appengine【参考方案2】:

了解这个项目需要做什么类型的事情会很有帮助,您是否需要与许多其他库、应用程序等集成?

这只是一则轶事,但我最近在两个平台上都试用了 GAE,发现 Python 选项方式比使用 Java 和 JDO 更容易上手。其中一部分与同时处理 JDO 有关,但我发现我能够在短短几天内在 Python 中实现与 Java 方面相同的功能。

作为一个对 Python 还比较陌生的人,我仍然需要解决很多事情才能让我在其中感觉更舒服,例如:

单元测试我的控制器和模型类的最佳方法 构建控制器的最佳方式 确定 Django 模板是否令人满意,或者我是否应该尝试使用不同的模板系统

当我尝试为我的 GAE 类编写 Java 单元测试的最佳方法时,我在六篇不同的博客文章和关于如何最好地模拟 App Engine 服务的建议之间来回奔波。有些似乎可以工作,有些看起来像是 hack,但缺乏良好且受支持的解决方案让我感到不舒服。

在所有条件相同的情况下,我建议将 Python 风格用于新建项目。更容易上手,更少的移动部件,在生产环境中没有讨厌的 JVM 启动时间,不需要编译后字节码增强等。

【讨论】:

谢谢马特。你是否使用过 Python gae 和 MVC 框架。我查看了 django-gae 集成,但还没有完成。 还没有,没有。内置的 webapp 框架似乎适合大多数简单的任务,至少目前是这样。

以上是关于Google Appengine:Java 或 Python [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 Google AppEngine 中读取 Java 资源文件

Appengine 上 google Go 与 Python 和 Java 的资源使用情况

java.lang.NoClassDefFoundError: com/google/common/base/MoreObjects 在 appengine 上初始化 pubsub 时

为整个应用设置 Python27 Google AppEngine 默认编码

google.appengine.tools.devappserver2.errors.InvalidAppConfigError

Google AppEngine app.yaml 中的上传有啥作用?