2

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

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

用户将通过该中央服务器提供的网页与客户端进行实时交互。解决方案必须很好地扩展。

我一直在客户端使用 python,并为带有 Heroku 的服务器使用一些简单的 ruby​​ 代码。我还尝试了一些 NodeJS 和 Ruby on Rails。有这么多的选择,我很难从树上看森林,想知道这些语言在哪里适合我的堆栈。

感谢您的帮助;我很乐意提供更多细节。

4

2 回答 2

1

这一切都取决于您实际尝试做什么以及您的要求是什么。

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

我不能对 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 服务器。自定义流协议或任何自定义协议实际上在 Node 中几乎可以轻松完成。(我不建议您这样做,但也许这对您的任务很重要)。

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

这意味着:Rails 确实带有许多指导您的默认设置,(例如,Rails 有一个默认的数据库堆栈,它围绕它进行了优化),带有框架(如 Express)的 Node 只为您提供了一个基本的 HTTP 服务器,您必须携带在您选择的数据库中等...

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

于 2013-01-07T09:10:54.190 回答
1

有很多东西要学,但是 Ruby on rails 为您提供了快速的解决方案。要让它成为真正的神,你必须掌握 HTML、javascript、CSS 和 ruby​​。这需要时间。但是,只要你遵循 RoR 的约定就容易了。RoR 世界中有很多开发人员、博客和截屏视频,因此很容易获得帮助。

如果您还不知道railscasts是一个很好的资源。

于 2013-01-07T09:21:12.853 回答