你会推荐 Python 或 NodeJS 来创建实时 Web 服务吗? [关闭]
Posted
技术标签:
【中文标题】你会推荐 Python 或 NodeJS 来创建实时 Web 服务吗? [关闭]【英文标题】:Would you recommend Python or NodeJS for creating real-time web service? [closed] 【发布时间】:2017-06-30 07:40:08 【问题描述】:我想创建一个网络应用程序,它本质上是实时(仪表板)。考虑到维护项目、维护 API 的时间和复杂性,我正在寻求关于我应该为项目选择什么堆栈以便长期维护它的建议。
这是我的一些要求:
仪表板上关于近期事件的实时更新。
服务的正确 API。
关注问题,而不是处理配置和调整。
问题:我对自己的选择感到困惑,很难做出从长远来看对我有帮助的决定。
以下是我经过研究发现的一些事情:
Python 和 NodeJS 都有用于 websocket 的框架(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 不允许基于意见的问题。这不应该是一个。我打算从许多可用的解决方案中选择一个特定解决方案的人提出一个合乎逻辑的论点。在给出评论而不是意见之前,需要您在某个领域的专业知识。请不要将其搁置。
【问题讨论】:
两者都可以。不同的程序员喜欢不同的编程语言。那你为什么不选择你擅长的呢? 请在搁置问题之前考虑一下。我不打算寻求意见,而是寻求事实、专业知识和参考,以使一个堆栈优于另一个堆栈。您可以改为对固执己见的答案投反对票,而不是对整个问题投反对票。 【参考方案1】:我认为这与其他任何事情一样都是个人喜好。我个人的偏好肯定是 NodeJS。原因是:
像 Socket.io 这样的框架非常棒,而且很容易通过 npm 实现。 节点移动得很快,但我从来没有遇到过它打破我的麻烦。 正如您所说,在 JS 中创建 API 更容易。 NPM 太棒了! docs 超级很有帮助。归根结底,这是您的决定。话虽如此,我每天都会毫不犹豫地使用 nodeJS。
【讨论】:
【参考方案2】:我建议您看看 rethinkdb。
这对您的场景非常有用。选择您更喜欢的语言。我建议选择 Node.js - 你会有更多的人为你的项目做出贡献。
Rethinkdb resources
【讨论】:
以上是关于你会推荐 Python 或 NodeJS 来创建实时 Web 服务吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章