有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java谷歌应用引擎Go与Python推荐?

我正在考虑写我的第一个Google App Engine应用程序。C#是我的“母语”,因此用Java编写应用程序当然是最合乎逻辑的。但是,我是一个极客,想借此机会学习一些新东西

因此,它是Python和Go之间的折腾

  • 您是否有基于经验的强烈偏好(理想情况下是在App Engine上编写)
  • 如果你来自C#(或其他类似语言),你的转变如何

共 (6) 个答案

  1. # 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. # 2 楼答案

    最近发布的App Engine Go运行时被标记为实验性的,原因是:Go和Go on appengine都是新的,处于变化状态

    如果你想在云中尝试Go和运行Go应用程序,那就试试吧。如果您想在app Engine上编写生产应用程序,请使用Python或Java

  3. # 3 楼答案

    Python长期以来一直在GAE上受支持——大量经过测试的信息、基础设施等。Go对GAE来说是全新的

    我会在语言层面做出更多决定。从C#开始,选择Python会更“高级”,而选择go会更“低级”。更低级的控制,但也更担心这一点。如果你对应用程序开发感兴趣,就选择Python,如果你对系统开发感兴趣,就选择Python。对我来说,一个重要的方面是Go内置了演员风格的并发性,尽管我不知道在GAE上会有多好的支持

  4. # 4 楼答案

    就我个人而言,我更喜欢Python,因为它比Go成熟得多

    在过去,我艰难地了解到,选择一种不太成熟的技术有什么风险

    警告,我倾向于推荐Python,因为我喜欢它,但你也应该小心,因为我听到了很多关于谷歌在Python应用程序引擎上提供了多少支持的抱怨。人们多年来一直要求升级Python支持,但没有人听到他们的声音

    尽管如此,Java可能是一个更明智的选择,尤其是因为您已经习惯了C#

  5. # 5 楼答案

    Go在GAE上仍处于实验阶段,因此可能不是学习一门新语言的最佳平台。Python绝对是一个不错的选择

    考虑到一种新的语言,不要忘记,选择Java可以得到JVM,它不仅支持Java代码,还支持诸如Scala、Grails、Clojure、JRuby等其他语言

  6. # 6 楼答案

    这个问题很主观,但我还是要回答

    Python更容易学习,拥有更大的开发社区,成熟,并且有很多第三方库可供您集成到应用程序中。这肯定是个赢家

    也就是说,Go是一种设计非常好的语言。远远超过Python。Go是专门为让您在编译时捕获大多数错误而设计的,而Python几乎以其掩盖错误的能力而闻名。Go代码往往更易于维护。Go的效率也比Python高出许多倍,甚至快了几个数量级,这取决于你在做什么

    这两种语言都非常强大,编写代码的速度也非常快——你可以在短时间内完成很多工作。但Go尚未完成,仍处于不断变化的状态,核心API仍在变化。它有一个相对较小的开发人员基础,很少有“真实世界”的使用示例。尽管如此,即使在其开发的早期,它已经被证明是一个具有明确用例的令人信服的替代方案