学习Web开发:Django vs Node vs Rails vs其他

我知道Java和Python(带有一些Django)和一些Ruby(没有Rails),没有Node.js,可能还有更多的我不知道。

我打算开始学习Web开发和它的完整堆栈,但是当我看到周围我看到大量的选项,这使我困惑。 我需要基于以下参数的build议

  1. 轻松学习
  2. 易于构build和迭代
  3. 易于部署(如免费和便宜的托pipe解决scheme)
  4. stream行

请提出一些build议

谢谢

Ruby on Rails:

简单易学? – 是的 – 在guides.rubyonrails.org提供优秀的文档,在railstutorial.org提供一个很棒的教程。

易于构build和迭代? – 当然,rails可以很好地实现敏捷和迭代开发。

易于部署? – 部署(至less对于小型应用程序,同时学习),你不可能比使用heroku.com – 基于git的推送更容易,而且它是免费的。

人气 – 非常受欢迎!

Django的

简单易学? – 像Rails一样,Django在docs.djangoproject.com/en/1.3/上有很好的文档。 也许有一个更陡峭的学习曲线(纯粹的意见在这里,但我发现轨道往往是“准备好去”,而Django需要一点点的configuration,才进入开发)。

易于构build和迭代? 再次,就像Rails一样,一旦你运行起来,迭代就很容易了。

易于部署? – 不像Rails那么简单。 有heroku相当于gondor.io , djangozoom.com , stable.io但他们往往是在私人testing版。 这就是说,我没有问题邀请gondor.io 。

人气 – 它很受欢迎,但是用户社区比Rails人群要less一些….

节点

简单易学? – 是的,不,很容易把一个快速的世界你好的服务器,但更棘手的,如果你想要一个全面的应用程序。 一开始我会远离这一点 – 这是一个新的,迅速发展的。 此外,Node本身与Rails或Django没有可比性,因为后两者是框架,而Node则更像是一个apis的准系统,可以用来开发一些东西。 你可以select像expressjs.com这样的框架,更符合Rails和Django。 我没有用过,所以我不能给你一个意见。

易于构build和迭代? – 易于构build – 是的,易于迭代 – 是的。

易于部署? – 你可以前往no.de申请获得一个智能机器 – 它现在是免费的,易于部署 – 基于git的。

人气 – 它正在增长。

Django开发者花了一些时间研究Node.js的一些注意事项:

  • Node.js中的asynchronous编程方法在概念上更加困难。 虽然在Django或Rails中可以采取类似的方法,但这样做并不常见。

  • Node.js真的是非常快速的。 但部分原因是它并不包含非常多的OOB。

  • 节点世界现在非常分散,几十个Node库,解决scheme和框架都在竞争关注。 Express现在似乎是Node最stream行的框架,但是我们正在等待游戏中看到什么震动。 Django和Rails已经拥有了创build高级应用程序所需的所有function,而无需亲自将所有内容粘合在一起。

  • 现在最stream行的Node.js框架是Express,但是Express甚至没有包含连接到数据库的方法。 你必须添加。 它也不包括一个ORM – 你需要添加一个。 我研究了一些Node ORM,但是它们看起来并不像Django那样完整或复杂。

  • Django是一个完整的,有凝聚力的端到端解决scheme,所有的部分无缝地融合在一起(“Mac的方式”)。 Node.js是一个基准,您可以select自己的框架,自己的ORM,自己的db驱动程序,自己的URL路由系统等等(“Unix方式”)。

  • Unix方式有很多优点,但是这样的IMO系统更难以起飞,更难以维护。 这些部件不一定像你期望的那样彼此交谈,整个项目也不会一下子升级。 像Mac软件/硬件连续体和Django / Rails这样的端到端系统在生产力方面取得了巨大的成功。 为了比较,请注意与Django相比,Python TurboGears(一堆断开连接的部分)的相对晦涩难懂。 Django吃了TurboGears的午餐,因为它的凝聚力和一致性。 如果生产力对你来说很重要,那么在一个更成熟的框架中工作会更有成效。 实现这一愿景的Node.js框架将在某一天抵达,但目前还没有。

  • Express不提供Django或Rails提供的一系列有用的命令行工具,数据API等。

  • Node.js框架当然不包括Djangopipe理员,这对于Django开发者来说是一个巨大的生产力胜利。

  • 纯粹是我的意见,但Python 感觉比Javascript更优雅。 代码更紧凑,更具可读性。 不是一个很大的障碍,只是一个偏好。

总的来说,Django感觉像是一个“电池包”的平台,而Node则更像是一个可以销售的产品。

Node / Express真的很年轻。 令人兴奋的方式,并显示出巨大的承诺,但需要多长时间才能使Node.js框架与成熟的框架竞争? 我不知道。

就工作机会而言,如果你使用Rails或Django,你会得到一个好的工作。 现在只有less数公司真的为Node.js开发者付钱,因为它还不够大。

在创业机会方面,Rails一路。 大多数有趣和令人兴奋的创业机会都得到了Ruby on Rails的支持。 我遇到了一对夫妇使用Django。 但Groupon和Living Social等公司都是以Rails为主。 Ruby在Github上几乎是Python的两倍 。 还有这个Quora的问题:

  • 为什么这么多初创公司使用Ruby on Rails?

就未来而言,Node.js就是这样。 HTML模板开始几乎全部用JavaScript来编写( jQuery.tmpl ),所以只需要掌握1种语言,JavaScript就可以使你的技能更加强大。 而node.js真的适合实时的web应用程序 。 此外,像Heroku这样本来是100%ruby的云部署平台也开始支持Node.js。 还有其他人也在使用所有语言,比如dotcloud 。

要使Node.js像Ruby on Rails一样具有全部function,仍然需要做很多工作(所以现在Rails仍然是标准的),但基本的东西都在那里:

  • express.js :web框架
  • jade.js :html模板框架
  • socket.io :实时networking应用程序

如果你想要尖端,肯定Node.js. 如果你想

  1. 轻松 学习
  2. 易于构build和迭代
  3. 易于部署(如免费和便宜的托pipe解决scheme)
  4. stream行

Ruby on Rails。

人气(第4点)): Java Server Faces(JSF)技术 。 从JSF 1.2到现在的JSF 2.1,现在分别与Java EE 5和Java EE 6一致。 这意味着它现在是一个Java EE标准。 而且,一个优势将意味着完全符合Java EE(5和更高版本)的Web应用程序服务器(例如JBoss AS 5和更高版本,GlassFish,WebSphere AS,Oracle AS等)可以运行JSF(不需要configuration,所以解决点c))。

JSF有各种各样的教程,例如在CoreServlets中 。 BalusC写了一个简单而优秀的教程,从头开始设置和编写一个简单的JSF Web应用程序 。

谷歌GWT呢? 或者时髦的Grails?

当今JSF 2.x变得如此stream行,以及更多以UI为中心的框架与primefaces相结合,如果您需要在JSF生态系统(如rails)中快速进行应用程序开发,您应该考虑

http://www.springfuse.com/

http://www.myeclipseide.com/documentation/quickstarts/ME4STutorialScaffoldingJSF/scaffoldingjsfarticle.html

JSF插件Spring Roo http://java.dzone.com/articles/jsf-20-spring-roo

1)ease to learn (http://www.vogella.com/articles/JavaServerFaces/article.html) 2)ease to build and iterate 3)ease to deploy (like free and cheap hosting solutions) a) http://www.mkyong.com/google-app-engine/google-app-engine-jsf-2-example/ b) http://blog.jelastic.com/2012/06/11/how-to-deploy-primefaces-applications-into-jelastic-cloud/ 4)popular (http://www.primefaces.org/whouses.html)