python - 概述解决方案堆栈

标签 python ruby-on-rails ruby node.js webserver

请原谅我的无知,因为我是一名航空航天工程师,正在一头扎进软件世界。

我正在构建一个 Web 解决方案,允许小型计算机(例如 beagleboard)连接到向这些客户端发送和接收数据的服务器。连接将通过多种类型进行,包括 GPRS/3G/4G。

用户将通过该中央服务器提供的网页与客户端实时交互。该解决方案必须具有良好的可扩展性。

我一直在客户端使用 python,并在 Heroku 的服务器上使用一些简单的 ruby​​ 代码。我还尝试了一些 NodeJS 和 Ruby on Rails。有这么多的选择,我很难只见树木,想知道这些语言将在我的堆栈中发挥什么作用。

感谢您的帮助;我很高兴提供更多详细信息。

最佳答案

这完全取决于您实际想要做什么以及您的要求是什么。

对于这些事情没有真正的“正确”语言,它主要取决于您将在这些语言上使用的框架(因为所有都是通用编程语言)和您的个人偏好/经验。

我无法对 Python 发表太多评论,因为我从未真正尝试过它,但从我所听到/看到的情况来看,它可以用于 Ruby 也可以用于的所有事情,尽管围绕 Python 的社区有点小,因为 Python 正在使用在科学界使用得更多(如果您的应用程序可能正在进行任何 crayz 计算,这可能会很好)。

这将我们引向 Ruby。 Ruby 和 Ruby on Rails 框架主要用于编写 Web 应用程序和服务。 Ruby 是一种非常优雅的编程语言,并且工具非常成熟且易于使用。 Rails 是 Ruby 上的一个框架,它为您提供了一组非常好的工具,特别适合编写数据驱动的 Web 应用程序,从而使 Web 开发变得非常简单。 非常灵活,合作愉快。 然而,目前 Ruby 也存在一些缺点,主要与糟糕的线程有关。

Node.JS 是一种新语言,专注于并行性并支持 Ruby 和 Python 可以做的所有事情,尽管与 Ruby 提供的文档相比,它的文档有所缺乏。它也不是最适合初学者的选择,因为 JavaScript 有很多怪癖,而且面向回调的异步模型也不是最简单的。

也就是说,Node 是非常裸机的,并且可以非常轻松地编写不需要通过 HTTP 工作的任意 TCP/UDP 服务器。事实上,自定义流协议(protocol)或任何自定义协议(protocol)几乎都可以在 Node 中轻松完成。(我不建议您这样做,但也许这对您的任务很重要)。

公平地说,有一些框架可以促进为 Node 编写 Web 应用程序,但这些框架 a) 不像 Rails 或 Django 那么成熟,b) 你必须选择你的框架。

这意味着:Rails 确实提供了许多默认值来指导您(例如,Rails 有一个默认的数据库堆栈,并对其进行了优化),而具有 Express 等框架的 Node 只为您提供了一个简单的 HTTP 服务器,您可以在其中使用必须引入您选择的数据库等...

最后:您询问的所有语言和框架主要用于编写 Web 应用程序。然而,它们都可以用来编写一个使用该服务的客户端 - 这主要取决于一般偏好。

关于python - 概述解决方案堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14191410/

相关文章:

python - 回溯显示直到装饰器

ruby-on-rails - 如何列出 Rails 中所有可用的语言环境键?

ruby-on-rails - Ruby on Rails:如何捕获 ActiveRecord::Rollback?

ruby-on-rails - 使用 Octokit 从组织中检索私有(private)存储库

python - Django 登录表单

python - 我们可以在列表推导式中使用嵌套 for 循环的幕后原因是什么

ruby-on-rails - 在 Ruby/Rails 中压缩十六进制字符串

ruby-on-rails - 如何在不嵌套的情况下从关系向呈现的 JSON 添加属性?

python - 可以使用什么来代替 parse_qs 函数

javascript - 如何将环境变量嵌入到 Rails 中的 .coffee 文件中?