isN*_*247 11 python java google-app-engine go
我正在研究编写我的第一个Google App Engine应用程序.C#是我的"本地"语言,所以用Java编写应用程序当然是最符合逻辑的.但是,我是一个极客,并愿意抓住机会学习新的东西.
因此它是Python和Go之间的折腾.
Nic*_*son 13
最近发布的针对App Engine的Go运行时标记为实验性的原因:Go和Go-on-appengine都是新的并且处于变化状态.
如果你想在云端试验Go并运行Go应用程序,那就去吧.如果要在App Engine上编写生产应用程序,请使用Python或Java.
这个问题和他们来的一样主观,但无论如何我都会咬人.
Python更容易学习,拥有更大的开发社区,已经成熟,并且有许多第三方库可供您集成到您的应用程序中.这肯定是胜利者.
也就是说,Go是一种设计精良的语言.远远超过Python.Go专门设计为允许您在编译时捕获大多数错误,而Python几乎可以掩盖您的错误.Go代码往往更容易维护.Go也比Python大大提高效率 - 快几倍甚至几个数量级,取决于你正在做什么.
这两种语言都非常强大,编写代码的速度非常快 - 您可以在很短的空间内完成很多工作.但Go尚未完成,仍处于不稳定状态,核心API仍在不断变化.它有一个相对较小的开发人员基础,很少有"真实世界"的用法示例.尽管如此,即使在开发的早期阶段,它已经被证明是具有明确用例的引人注目的替代方案.
我最近为GAE做了一个Python应用程序来自C#我没有问题/能够在几天内修补文档并使用SDK(我之前有过python的经验).
Python是非常直观的,它是必要的和OO,可能需要稍微改变C#的思维,但没有任何革命性 - 使用交互式解释器将允许你在一天IMO中提取它.学习如何使用数据存储区并找出其他GAE特定的API(blobstore,图像,邮件)可能会更多的工作(它的具体情况如事务/组,一致性模式......)但你可以随时找出这些东西/当你在你的应用程序中需要它时.
有一点需要注意 - 最近宣布的定价方案使得Python在GAE ATM上成为一个糟糕的选择,因为它无法处理当前的请求,这导致每个请求有一个"实例".对于Go ATM也是如此(据我所知).如果我正确记住邮件列表对话,JVM OTOH每个实例可以同时处理大约20个请求.而且您将按实例/小时付费.如果您计划在不久的将来发布应用程序,这使JVM成为最实用的选择.
同样使用JVM你可以使用Scala(一种新的/酷语言)和一个类似Lift的框架,理论上它应该允许你移植你的代码/避免锁定(免责声明:我说理论上因为我只是开始使用Scala并且有没有实际的升力经验).
因此,我建议您浏览邮件列表,看看其他人对最近的更改有何看法.