我知道Java和Python(有一些Django)和一点点的Ruby(没有Rails),也没有Node.js,也许还有更多我不知道的地方。
我打算开始学习Web开发及其完整的堆栈,但是当我看到周围时,会看到很多选项,这使我感到困惑。我需要基于以下参数的建议
- 易于学习
- 易于构建和迭代
- 易于部署(例如免费和廉价的托管解决方案)
- 流行
请提出一些建议
谢谢
Answers:
简单易学?-是的-有优秀的文档guides.rubyonrails.org,并在伟大的教程railstutorial.org。
易于构建和迭代?-可以肯定-Rails非常适合敏捷和迭代开发。
易于部署?-要进行部署(至少针对小型应用程序并在学习时),使用heroku.com真的比使用git推送更容易,而且它是免费的。
人气-非常受欢迎!
简单易学?-与Rails一样,Django在docs.djangoproject.com/en/1.3/上具有出色的文档。也许学习曲线稍微陡峭(在这里是完全正确的看法,但是我发现Rails倾向于“准备就绪”,而django在进入开发之前需要一些配置)。
易于构建和迭代?-同样,就像Rails一样,一旦启动并运行它,就很容易进行迭代。
易于部署?-不像Rails那样容易。有heroku等效项gondor.io,djangozoom.com,stable.io,但它们倾向于处于私用Beta版。就是说,我很容易得到gondor.io的邀请。
受欢迎程度-受欢迎程度,但用户社区要比Rails人群少一些。
简单易学?-嗯,是的,不是,很容易将快速的hello world服务器放在一起,但是如果您想要一个完整的应用程序,则比较棘手。首先,我会避免这样做-它是新的并且在迅速发展。而且,Node本身与Rails或Django不具有可比性,因为后两者是框架,而Node则更多是一个准系统的api集,可用于开发某些东西。您可以选择像expressjs.com这样的框架,该框架与Rails和Django更加一致。我没有使用过,所以我真的不能给您意见。
易于构建和迭代?-易于构建-是的,易于迭代-是的。
易于部署? -您可以访问no.de并申请获得智能机-它目前免费且易于部署-基于git。
受欢迎程度-越来越高。
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框架要花多长时间才能与成熟的框架竞争?我不知道。
就工作机会而言,如果您选择使用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。如果你想
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(无需进行配置,这样就解决了c))点。
有许多关于JSF的教程,例如CoreServlets中。BalusC写了一个简单而出色的教程,介绍了如何从头开始设置和编写简单的JSF Web应用程序。
如今,JSF 2.x变得如此流行,并且更多以UI为中心的框架与primeface结合使用,如果需要在Rails之类的JSF生态系统中进行快速应用程序开发,则应考虑
带有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)