您会推荐 Python 还是 NodeJS 来创建实时 Web 服务?

Him*_*har 5 javascript python django node.js socket.io

我想创建一个 Web 应用程序,它本质上是实时的仪表板)。考虑到维护项目、维护API的时间和复杂性,我正在寻求关于我应该为项目选择什么堆栈以便长期维护它的建议。

以下是我的一些要求:

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

  • 服务的正确 API。

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

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

经过研究,我总结了以下几点:

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

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

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

  • 对我来说,Javascript 以出人意料而臭名昭著,在几次更新后就会破坏事物。社区正在快速发展,但这对于企业级应用程序来说可能太快了。尽管如此,还是有像 PayPal、谷歌这样的大企业的例子。

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

  • 与 Django/Flask 相比,使用 Express 在 JavaScript 中创建 API 之类的事情更容易。

  • 一个 node 项目通常有很多模块(在 Github 上看过一些项目),比如 BodyParser、Meteor、Webpack。我不认识他们,但感觉工作太多了。

  • Python比较难拉,社区比较成熟稳定。与此相反,Node 有大量用于简单任务的模块,其中大部分是由不合标准的程序员创建的,只是因为它们更容易制作。(无意冒犯您,您不是其中之一:P)

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

我为什么要问?

在日常生活中处理此类应用程序时,您可能比我更有经验。

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

编辑: Stack Exchange 不允许基于意见的问题。这不应该是一个。我打算从一些可用的解决方案中选择一个特定的解决方案的人提出一个合乎逻辑的论点。在给出评论而不是意见之前,需要您对某个领域的专业知识。请不要搁置这个。

zoe*_*ver 0

我认为这与其他任何事情一样都是个人喜好。我个人更喜欢 NodeJS。原因是:

  • 像 Socket.io 这样的框架非常棒,并且很容易通过 npm 实现。
  • Node 运行得很快,但我从来没有遇到过它崩溃的问题。
  • 就像你说的,在 JS 中创建 API 更容易。
  • NPM 太棒了!这些文档非常帮助。

归根结底,这是你的决定。话虽这么说,我随时都会选择使用 NodeJS。