学习Web开发:Django vs Node vs Rails vs Others

时间:2011-08-18 06:54:07

标签: java ruby-on-rails django node.js

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

我正在计划开始学习Web开发及其完整的堆栈,但当我看到周围时,我看到了大量的选项,这让我感到困惑。我需要基于以下参数的建议

  1. 轻松学习
  2. 易于构建和迭代
  3. 易于部署(如免费且廉价的托管解决方案)
  4. 热门
  5. 请提出一些建议

    谢谢

5 个答案:

答案 0 :(得分:81)

Ruby on Rails:

易于学习? - 是的 - guides.rubyonrails.org的优秀文档和railstutorial.org的精彩教程。

易于构建和迭代? - 当然,rails非常适合敏捷和迭代开发。

易于部署? - 要部署(至少对于小型应用程序和学习时),使用heroku.com基于git的推送并不是很容易,而且它是免费的。

受欢迎程度 - 非常受欢迎!

的Django

易于学习? - 与Rails一样,Django在docs.djangoproject.com/en/1.3/拥有出色的文档。也许是一个稍微陡峭的学习曲线(纯粹的意见在这里,但我发现rails往往“准备好了”,而​​django在你进入开发之前需要一点配置)。

易于构建和迭代? - 再次,就像Rails一样,一旦你启动并运行它,它就很容易迭代。

易于部署? - 不像Rails那么容易。有heroku等效gondor.iodjangozoom.comstable.io,但它们往往属于私人测试版。也就是说,我没有遇到gondor.io的邀请。

受欢迎程度 - 它很受欢迎,但用户社区比Rails人群少一点......

节点

易于学习? - 是的,不是,很容易将快速问候世界服务器放在一起,但如果你想要一个完整的应用程序,那就更棘手了。我会在第一时间远离这个 - 它是新的并且正在迅速发展。此外,Node本身与Rails或Django不具有可比性,因为后两者是框架,而Node更多是可用于开发某些东西的完整的apis集合。您可以选择像expressjs.com这样的框架,它更符合Rails和Django。我没用过它所以我真的不能给你一个意见。

易于构建和迭代? - 易于构建 - 是的,易于迭代 - 是的。

易于部署? - 你可以转到no.de并申请获得智能机 - 它目前是免费的,易于部署 - 基于git。

受欢迎程度 - 它正在增加。

答案 1 :(得分:42)

来自Django dev的一些笔记,他花了一些时间探索Node.js:

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

  • Node.js真的非常快,开箱即用。但部分原因是它不包含非常多的OOB。

  • Node现在非常分散,有许多Node库,解决方案和框架都在争夺注意力。 Express现在似乎是Node最受欢迎的框架,但我们正在等待游戏,看看有什么动摇。 Django和Rails已经拥有了创建高级应用程序所需的所有功能,而无需亲自将所有内容粘合在一起。

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

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

  • Unix方式有一些优点,但像这样的IMO系统更难以开始实施,更难以维护。这些部件不一定像你期望的那样彼此交谈,整个项目不会立刻升级。像Mac软件/硬件连续体和Django / Rails这样的端到端系统是生产力的巨大赢家。为了比较,请注意与Django相比,Python的TurboGears(一堆断开的部分)相对模糊。 Django吃了TurboGears的午餐,因为它具有凝聚力和一致性。如果生产力对您很重要,那么您将在更成熟的框架中提高工作效率。实现这一愿景的Node.js框架将在某一天到来,但目前还没有。

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

  • Node.js框架肯定不包括像Django管理员那样的东西,这对于Django开发者来说是一个巨大的生产力胜利。

  • 纯粹是我的观点,但Python只是感觉比Javascript更优雅。代码更紧凑,更易读。不过是一个很大的障碍,只是一种偏好。

总的来说,Django感觉就像一个“电池包含”平台,而Node感觉更像是一个翻找销售。

Node / Express非常年轻。令人兴奋,并表现出巨大的希望,但Node.js框架需要多长时间才能与成熟的框架保持竞争力?我不知道。

答案 2 :(得分:27)

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

就启动机会而言,Rails一路走来。 Ruby on Rails支持大多数有趣且令人兴奋的创业机会。我遇到过一对使用Django的人。但像Groupon和Living Social这样的公司都主要是在Rails上写的。 Ruby is almost twice as popular as Python on Github也是如此。还有Quora的问题:

就未来而言,Node.js就是这样。 HTML模板开始几乎完全用JavaScript编写(jQuery.tmpl),因此只需要掌握1种语言JavaScript,就可以使你的技能更加强大。而node.js真的适合real-time web apps。此外,像Heroku这样最初100%红宝石的云部署平台也是starting to support Node.js。还有其他人为所有语言都这样做,例如dotcloud

仍然需要做很多工作才能使Node.js像Ruby on Rails一样功能齐全(所以Rails现在仍然是标准版),但基础知识都在那里:< / p>

如果你想要前沿,绝对是Node.js.如果你想要

  1. easelearn
  2. 易于构建和迭代
  3. ease to deploy (like free and cheap hosting solutions)
  4. popular
  5. Ruby on Rails。

答案 3 :(得分:5)

受欢迎程度(第4点)):Java Server Faces (JSF) Technology。从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(不需要配置,所以解决了点c))。

JSF有各种各样的教程,例如:在CoreServlets。 BalusC从头开始在setting up and writing a simple JSF Web Application上编写了一个简单而优秀的教程。

答案 4 :(得分:1)

JSF 2.x现在变得如此受欢迎,以及更多以UI为中心的框架与primefaces相结合,如果你需要在JSF生态系统中快速开发应用程序,就像你应该考虑的那样

http://www.springfuse.com/

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

Spring JS与JSF Addon 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)