学习网络开发:Django vs Node vs Rails vs Others [关闭]


80

我知道Java和Python(有一些Django)和一点点的Ruby(没有Rails),也没有Node.js,也许还有更多我不知道的地方。

我打算开始学习Web开发及其完整的堆栈,但是当我看到周围时,会看到很多选项,这使我感到困惑。我需要基于以下参数的建议

  1. 易于学习
  2. 易于构建和迭代
  3. 易于部署(例如免费和廉价的托管解决方案)
  4. 流行

请提出一些建议

谢谢


谷歌GWT呢?还是时髦的grails?
2011年

Answers:


82

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,但它们倾向于处于私用Beta版。就是说,我很容易得到gondor.io的邀请。

受欢迎程度-受欢迎程度,但用户社区要比Rails人群少一些。

节点

简单易学?-嗯,是的,不是,很容易将快速的hello world服务器放在一起,但是如果您想要一个完整的应用程序,则比较棘手。首先,我会避免这样做-它是新的并且在迅速发展。而且,Node本身与Rails或Django不具有可比性,因为后两者是框架,而Node则更多是一个准系统的api集,可用于开发某些东西。您可以选择像expressjs.com这样的框架,该框架与Rails和Django更加一致。我没有使用过,所以我真的不能给您意见。

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

易于部署? -您可以访问no.de并申请获得智能机-它目前免费且易于部署-基于git。

受欢迎程度-越来越高。


13
我同意您关于RoR的前3点。不幸的是,您的最后一点是不正确的。也许很遗憾,但是RoR在实践中并不受欢迎。看看Tiobe,Ruby仅拥有1.3%的市场份额,这意味着RoR的市场份额甚至更少。查看为铁轨提供的工作。很难找到一个。
Mike Braun

4
足够公平的迈克-也许在线社区发出的声音足以使我认为它很受欢迎。:)
slapthelownote 2011年

2
我真的不知道,但是如果将所有用Java Web框架标记的问题组合在一起,您将无法获得SO上所有Rails问题的数量。那就是您的1.3%市场份额。
FilipDupanović2011年

19
Heroku现在支持Django。
本·拉辛

5
关于Rails的SO问题还有很多,这可能表明程序员试图学习它的类型更多,而不是该框架在实际部署的应用程序中的普及程度。一堆新手会有很多问题
A_funs 2012年

44

Django开发人员的一些笔记,他们花了一些时间探索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 admin之类的东西,这对Django开发人员而言是巨大的生产力胜利。

  • 纯粹是我的看法,但是Python感觉比Javascript更优雅。代码更紧凑,更易读。不过,这并不是一个大障碍,只是一种偏爱。

总体而言,Django感觉像一个“包含电池”的平台,而Node感觉更像是一次垃圾销售。

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


3
与CoffeeScript。代码是更紧凑,更易读尽可能Python做
jwchang

Express主页上的“ Express是Node.js的一种快速,不受限制的,极简的Web框架”。

27

就工作机会而言,如果您选择使用Rails或Django,将会获得一份不错的工作。现在只有极少数公司真正为Node.js开发人员付费,因为它还不够大。

在启动机会方面,Rails一路走来。Ruby on Rails支持了大多数有趣和令人兴奋的启动机会。我遇到了几个使用Django的人。但是像Groupon和Living Social这样的公司大多都是在Rails上编写的。 Ruby在Github上的流行程度几乎是Python的两倍。还有一个Quora问题:

就未来而言,Node.js是必经之路。无论如何,HTML模板几乎都开始几乎完全用JavaScript编写(jQuery.tmpl),因此,只需精通1种语言JavaScript,就可以使您的技能强大得多。而且node.js确实适合实时Web应用程序。此外,云像Heroku的,这原本是100%的红宝石,还部署平台开始支持Node.js的。还有其他一些语言也适用于所有语言,例如dotcloud

要使Node.js像Ruby on Rails一样具有充分的功能,还需要做很多工作(因此,到目前为止,Rails仍然是标准),但基本知识都存在:

如果您想拥有尖端技术,那么绝对可以使用Node.js。如果你想

  1. 缓解学习
  2. 易于构建和迭代
  3. 易于部署(例如免费和廉价的托管解决方案)
  4. 流行

Ruby on Rails。


5

流行度(第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(无需进行配置,这样就解决了c))点。

有许多关于JSF的教程,例如CoreServlets中。BalusC写了一个简单而出色的教程,介绍了如何从头开始设置和编写简单的JSF Web应用程序


3
我完全同意!如今,JSF很好(旧版本不是很好)。添加到您的示例中;JSF也是Java EE Web Profile的一部分,因此像Resin这样的超轻量级服务器也支持开箱即用的JSF。
Mike Braun

1
Ps BalusC的博客和文章绝对很棒!:)
Mike Braun

1

如今,JSF 2.x变得如此流行,并且更多以UI为中心的框架与primeface结合使用,如果需要在Rails之类的JSF生态系统中进行快速应用程序开发,则应考虑

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)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.