概述一个解决scheme堆栈

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

我正在构build一个Web解决scheme,允许小型计算机(比如beagleboard)连接到向这些客户端发送和接收数据的服务器。 该连接将包括GPRS / 3G / 4G在内的多种types。

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

我一直在使用Python的客户端和一些简单的ruby代码与Heroku的服务器。 我也尝试了一些NodeJS和Ruby on Rails。 有这么多的select,我正在努力从树上看到森林,并想知道这些语言将适合我的堆栈。

您的帮助表示赞赏。 我很乐意提供更多的细节。

这一切都取决于你实际上想要做什么以及你的要求是什么。

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

我不能在Python上做太多的评论,因为我从来没有尝试过,但是从我听到/看到它可以用于Ruby的所有事情上,尽pipe围绕Python的社区比Python用得多更多在科学界(如果你的应用程序可能正在做任何crayz计算可能是好的)。

这导致我们到Ruby。 Ruby和Ruby on Rails框架主要用于编写Web应用程序和服务。 Ruby是一种非常优雅的编程语言,工具非常成熟,易于使用。 Rails是Ruby上的一个框架,它使Web开发非常简单,为您提供了一套非常好的工具,特别适合编写数据驱动的Web应用程序。 非常灵活和愉快的工作。 Ruby目前存在一些缺陷,主要与线程不佳有关。

Node.JS是一种新的语言,专注于并行处理,支持Ruby和Python可以完成的所有事情,尽pipe与Ruby将会给你的文档相比缺乏文档。 这也不是最适合初学者的select,因为JavaScript所有的怪癖和面向callback的asynchronous模式并不是最简单的事情。

也就是说,Node非常裸机,并且非常容易编写任何不需要通过HTTP工作的TCP / UDP服务器。 自定义stream媒体协议或任何自定义协议实际上几乎在Node中完成。(我不build议你这样做,但是这对你的任务可能很重要)。

公平地说,有一些框架可以方便地为节点编写Web应用程序,但是这些方法是:a)不像Rails或Django那么成熟; b)你必须select你的框架select。

这意味着:在哪里Rails确实带有很多可以指导你的默认值(Rails例如有一个默认的数据库堆栈,并且已经被优化了),像带有框架的Node只有为你提供一个基本的HTTP服务器,在您select的数据库等…

结束语:您所问的所有语言和框架主要用于编写Web应用程序。 但是,它们都可以用来编写一个消费服务的客户端 – 这主要归结于一般的偏好。

有很多东西需要学习,但是Ruby on Rails能够快速的为你提供解决scheme。 为了使它真正的上帝,你将不得不掌握HTML,JavaScript,CSS和ruby。 这需要时间。 但是,只要你遵循RoR的约定容易。 在RoR世界里有很多开发者,博客和屏幕录像,所以很容易得到帮助。

如果你不知道已经railscasts是一个很好的资源。