求大神详细解释ruby和rails的区别

Python021

求大神详细解释ruby和rails的区别,第1张

rails是基于Ruby语言开发的一个mvc开发框架,整合了数据库操作(activerecord),基本程序支持(activesupport),前端辅助(turbolinks),还有routing 支持。rails相当于一个架构好的集成Ruby开发环境。

主要原因有三个:

广泛地被大小企业采用

以前提到 Ruby 或 Rails 的使用状况往往我们会想到的都是新创或网路公司的例子,但近年来越来越多传统企业在面对网应用路开发需求时,也纷纷选择 Rails 作为主要架构,像是在国内的部分,我们可以发现在社群的求职看板上,包含知名连锁书局、纺织业等等的例子。

Ruby 以及 Rails 的效能有很大的进步

以往通常 Rails 开发者都会被其他语言的开发者嘲笑在速度上可能不佳,但在近期的改版当中,Ruby 2.1 以及 Rails 4.1 都有很大的效能进步,是有史以来最快的版本。

以往被嫌弃在记忆体使用肥大的问题也有具体的改善:

社群以及教育资源遍地开花

在台湾今年就有以下的活动:

两场大型的国际研讨会 RubyConf / Rails Pacific

不定期举办的 Rails Girls 以及 Rails Outreach Workshop 学习课程

不定期举办的 Ruby Tuesday 分享会

每周固定的社群聚会 Rails 新手村以及 Rails Tuesday

而在针对企业方面,也有像五倍红宝石这样的单位专门针对 Rails 及 Ruby 提供企业教育训练的服务。

ROR开发效率高与二者都有关系的,不过如果说哪个占的更多一些,应该是Rails框架了,原因如下:

ruby就其语法而言,语法灵活,提供的类库和方法也非常丰富,所以与其它语言相比,同样的功能,ruby的代码量更少。这也是网上经常出现如“ruby如何一条语句实现此功能”等问题,这是其它语言无法比的

rails之所以在效率高中贡献大,是因为其约定大于配置和各种自动生成器及自定义模板:

约定大于配置,就可以使开发者更专注于开发,所以rails中基本没有配置,即使有也非常少,相比j2ee就是0和100的关系,这无形中节省了开发者的时间

各种生成器,比如scaffold,实现一个CURD只需要1分钟,对于熟练的开发者10秒搞定,所以这个速度是其它框架无法比的。

所以,Ruby On Rails的开发效率就不用说了,是java和j2ee望尘莫及的。

之前大家都在说ROR的开发效率高,更多的是与java的j2ee比较,而各语言发展到现在,已经借鉴了Ruby和Rails很多特性了,所以,如果你熟悉一门语言,只要使用与Rails思想相近的框架就可以了,但是像静态语言还是没有办法的。