java谷歌应用引擎Go与Python推荐?
我正在考虑写我的第一个Google App Engine应用程序。C#是我的“母语”,因此用Java编写应用程序当然是最合乎逻辑的。但是,我是一个极客,想借此机会学习一些新东西
因此,它是Python和Go之间的折腾
- 您是否有基于经验的强烈偏好(理想情况下是在App Engine上编写)李>
- 如果你来自C#(或其他类似语言),你的转变如何李>
你可以在下面搜索框中键入要查询的问题!
我正在考虑写我的第一个Google App Engine应用程序。C#是我的“母语”,因此用Java编写应用程序当然是最合乎逻辑的。但是,我是一个极客,想借此机会学习一些新东西
因此,它是Python和Go之间的折腾
# 1 楼答案
我最近为GAE开发了一个Python应用程序,来自C#我没有遇到任何问题/能够在几天内修复文档并使用SDK(我以前有一些Python经验)
Python非常直观,它是命令式的,面向对象的,可能需要从C#的思想上稍微改变一下,但没有什么革命性的——使用交互式解释器可以让您在一天内学会它。 学习如何使用数据存储并找出其他特定于GAE的API(blobstore、image、mail)可能需要更多的工作(包括事务/组、一致性模式等细节)但你可以在你的应用程序中随时随地找到这些东西
需要注意的是,最近公布的定价方案使Python在GAE ATM上成为一个糟糕的选择,因为它目前无法处理请求,这导致每个请求有一个“实例”。就我所知,Go ATM也是如此。如果我能正确地记住邮件列表对话,JVM OTOH每个实例可以同时处理约20个请求。您将按实例/小时付费。如果您计划在不久的将来发布应用程序,这使得JVM成为最实际的选择
同样使用JVM,你可以使用Scala(一种新的/很酷的语言)和Lift这样的框架,理论上应该允许你移植代码/避免锁定(免责声明:我说理论上是,因为我只是从Scala开始,没有Lift的实际经验)
所以我建议大家看看邮件列表,看看其他人对最近的变化有什么看法
# 2 楼答案
最近发布的App Engine Go运行时被标记为实验性的,原因是:Go和Go on appengine都是新的,处于变化状态
如果你想在云中尝试Go和运行Go应用程序,那就试试吧。如果您想在app Engine上编写生产应用程序,请使用Python或Java
# 3 楼答案
Python长期以来一直在GAE上受支持——大量经过测试的信息、基础设施等。Go对GAE来说是全新的
我会在语言层面做出更多决定。从C#开始,选择Python会更“高级”,而选择go会更“低级”。更低级的控制,但也更担心这一点。如果你对应用程序开发感兴趣,就选择Python,如果你对系统开发感兴趣,就选择Python。对我来说,一个重要的方面是Go内置了演员风格的并发性,尽管我不知道在GAE上会有多好的支持
# 4 楼答案
就我个人而言,我更喜欢Python,因为它比
Go
成熟得多在过去,我艰难地了解到,选择一种不太成熟的技术有什么风险
警告,我倾向于推荐
Python
,因为我喜欢它,但你也应该小心,因为我听到了很多关于谷歌在Python应用程序引擎上提供了多少支持的抱怨。人们多年来一直要求升级Python支持,但没有人听到他们的声音尽管如此,Java可能是一个更明智的选择,尤其是因为您已经习惯了
C#
# 5 楼答案
Go在GAE上仍处于实验阶段,因此可能不是学习一门新语言的最佳平台。Python绝对是一个不错的选择
考虑到一种新的语言,不要忘记,选择Java可以得到JVM,它不仅支持Java代码,还支持诸如Scala、Grails、Clojure、JRuby等其他语言
# 6 楼答案
这个问题很主观,但我还是要回答
Python更容易学习,拥有更大的开发社区,成熟,并且有很多第三方库可供您集成到应用程序中。这肯定是个赢家
也就是说,Go是一种设计非常好的语言。远远超过Python。Go是专门为让您在编译时捕获大多数错误而设计的,而Python几乎以其掩盖错误的能力而闻名。Go代码往往更易于维护。Go的效率也比Python高出许多倍,甚至快了几个数量级,这取决于你在做什么
这两种语言都非常强大,编写代码的速度也非常快——你可以在短时间内完成很多工作。但Go尚未完成,仍处于不断变化的状态,核心API仍在变化。它有一个相对较小的开发人员基础,很少有“真实世界”的使用示例。尽管如此,即使在其开发的早期,它已经被证明是一个具有明确用例的令人信服的替代方案