您会推荐Python或NodeJS来创建实时Web服务吗?

时间:2017-02-12 07:12:46

标签: javascript python node.js django socket.io

我想创建一个实时实时的Web应用程序(信息中心)。考虑到维护项目的时间和复杂性,维护 API ,我正在寻求关于我应该为项目选择什么堆栈的建议,以便长期维护它。

以下是我的一些要求:

  • 在仪表板上实时更新有关最近事件的信息。

  • 该服务的正确API。

  • 关注问题,而不是处理配置和调整。

问题:我对自己的选择感到困惑,并且发现很难做出有助于我长远的决定。

以下是我在研究后发现的一些事情:

  • Python和NodeJS都有websockets的框架(SocketIO,Greenlets,Twisted等)。但是,JavaScript中对异步处理的支持更好。

  • 回调地狱可能很糟糕。实际上,您不能指望函数的返回值对于所有调用都是异步的(有Promises)。但是,必须遵循体面的编程实践。

  • Python使您可以更好地控制代码,并且更易于维护。

  • 对我来说,Javascript因为惊喜而臭名昭着,经过一些更新后就破坏了。社区正在快速发展,但对于企业级应用程序来说,这可能太快了。不过,有一些大型企业的例子,比如PayPal,谷歌对此表示赞赏。

  • Javascript正在成为新的酷,所以我更有可能为我的项目找到维护者或将来更多的新人。

  • 与使用Django / Flask相比,使用Express的JavaScript更容易创建API。

  • 一个节点项目通常有很多模块(正在观看Github上的一些项目),比如BodyParser,Meteor,Webpack。我不了解它们,但感觉太过分了。

  • 在Python中屎相对比较困难,社区更加成熟和稳定。与之相反,Node拥有大量用于简单任务的模块,其中大部分都是由不合标准的程序员创建的,因为它们更容易制作。 (对你没有冒犯,你不是其中之一:P)

  • 有像Firebase这样的解决方案,但是我想避免使用它,因为从长远来看,这会导致对专有工具的严重依赖。欢迎提出建议。

我为什么要问?

在日常生活中处理这类应用时,你可能比我更有经验。

PS:我在JavaScript和Python方面都有不错的经验(在Python中更有效率)。但请不要将语言视为障碍。我想要一个解决方案,这样即使我的团队中有更多的成员,他们也应该对代码库感到满意。

编辑:Stack Exchange不允许基于意见的问题。这不应该是一个。我打算从一些人中选择一个特定解决方案的逻辑论证。在进行审核而非意见之前,您需要具备域名专业知识。请不要暂停此操作。

2 个答案:

答案 0 :(得分:0)

我认为这是个人偏好,与其他任何事情一样多。我个人的优先权肯定是NodeJS。原因是:

  • 像Socket.io这样的框架很棒,很容易通过npm实现。
  • 节点移动速度很快,但我从来没有遇到过这样的问题。
  • 就像你说的那样在JS中创建API更容易。
  • NPM太神奇了! docs 超级有帮助。

在一天结束时,这是你的电话。话虽如此,我会随时随地使用nodeJS。

答案 1 :(得分:0)

我建议您查看 rethinkdb

这对您的方案非常有用。选择您喜欢的语言。我建议选择 Node.js - 你会有更多人参与你的项目。

Rethinkdb resources