Google Appengine:Java还是Python
可能重复的问题:
在Google App Engine上选择Java还是Python
我们打算在下一个大型网页项目中使用Google Appengine平台。但我们不确定该用哪种语言:Java还是Python。
你能告诉我们每种选择的优缺点吗?哪种方式能更快地构建出更具可扩展性和高效的解决方案?
提前谢谢你!
2 个回答
了解这个项目需要做什么是很重要的,比如你是否需要和很多其他库、应用程序等进行整合?
这是我个人的经历,最近我在两个平台上都试用了谷歌应用引擎(GAE),发现用Python来开发要比用Java和JDO简单得多。虽然一部分原因是我同时在学习JDO,但我发现用Python实现同样的功能只花了几天,而用Java却花了好几周。
作为一个对Python还比较陌生的人,我还有很多东西需要学习,才能在这个语言中更加得心应手,比如:
- 如何最好地对我的控制器和模型类进行单元测试
- 如何合理地组织我的控制器
- 判断Django模板是否足够好,还是应该尝试其他的模板系统
当我尝试为我的GAE类编写Java单元测试时,我在好几篇不同的博客和建议之间反复跳转,寻找最好的方法来模拟App Engine服务。有些方法似乎有效,有些则感觉像是临时解决方案,但没有一个好的、被支持的解决方案让我感到不安。
总的来说,我会推荐在新项目中使用Python。它更容易上手,组件更少,生产环境中没有麻烦的JVM启动时间,也不需要后编译的字节码增强等等。
我在这个问题的接受回答下留言,评论说这个回答“非常相似”——不过那已经是快一年前的事了。我现在的看法还是差不多(我对Python很熟悉,但对Java有些生疏),不过在这一年里,我觉得Java的运行环境几乎赶上了Python的——或者说,虽然还没完全赶上,但已经有了很大的进步(当然,两者都是在同时进步的;-)。我在那个回答中提到的大部分一般性考虑现在依然大致有效。
所以我认为,今天最主要的考虑是,团队对Python有多熟悉,对Java又有多熟悉——如果对其中一种非常熟悉,而对另一种完全不熟悉,那就选择你们已经掌握的,因为花时间去“赶上”另一种的成本可能会比你能获得的好处还要大(如果是一个想要“拓宽思维”的爱好者,我会建议反过来:抓住机会去学习你还不知道的东西——但从立即的生产力来看,继续使用你熟悉的东西会更有效;-)。
如果有某个“杀手级库”,你确认它在某个运行环境下运行良好,并且你非常想在你的应用中使用它,那可能会成为决定性因素,前提是你对这两种语言的熟悉程度没有影响你的选择。