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

day*_*mer 80 java django ruby-on-rails node.js

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

我刨开始学习网络开发和其完整的堆栈,但是当我看到我周围看到的选项负荷,这让我困惑.我需要基于以下参数的建议

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

请提出一些建议

谢谢

sla*_*ote 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.io,djangozoom.com,stable.io但他们往往是私人测试版.也就是说,我没有遇到gondor.io的邀请.

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

节点

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

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

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

人气 - 它正在增加.

  • Heroku现在支持Django. (18认同)
  • 我同意你关于RoR的前3点.不幸的是,你的最后一点不是真的.这也许是一种耻辱,但RoR在实践中并不受欢迎.看看Tiobe,Ruby只有1.3%的市场份额,这意味着RoR甚至更少.看看为铁路提供的工作.很难找到一个. (13认同)
  • 事实上,Rails有更多的SO问题可能是程序员尝试学习它的类型的一个指标,而不是框架在实际部署的应用程序中的流行程度.一堆新手会有很多问题 (5认同)
  • 公平的迈克 - 也许在线社区只是发出足够的噪音,我认为它很受欢迎.:) (4认同)
  • 我真的不知道,但是如果你将所有标记为Java Web框架的问题结合在一起,那么你就无法接近Rails上的问题.这对你来说是1.3%的市场份额. (2认同)

sha*_*ker 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框架需要多长时间才能与成熟的框架保持竞争力?我不知道.

  • 用CoffeeScript.代码比Python更紧凑,更易读 (3认同)

Lan*_*ard 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真正适用于实时网络应用程序.此外,像Heroku的云部署平台,这原本是100%红宝石,也开始支持Node.js的.还有其他人也在为所有语言做这件事,比如dotcloud.

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

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

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

Ruby on Rails.


Buh*_*ndi 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应用程序.

  • 我完全同意!这些天JSF非常好(旧版本不是很好).添加到您的示例; JSF也是Java EE Web Profile的一部分,因此像Resin这样的超轻型服务器也支持开箱即用的JSF. (3认同)