`
ihouge
  • 浏览: 11942 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

Ruby on Rails能否成为主流?(看到有人问这个东西的前景)

    博客分类:
  • Ruby
阅读更多

摘自CSDN http://community.csdn.net/Expert/topic/4893/4893315.xml?temp=.7034723

感谢elsjc (米格27)  

基于以下的这么一个原因,你也许不会在本文中读到Ruby on Rails的不好,那就是:我爱Ruby,我爱Ruby on Rails。在我开始学习Rails的第一天起,我就觉得Rails是构建在令人惊叹的语言上的一个奇异的框架。我认为David在以下两个方面做了一些奇异的事:

  跟上创新的思维,把Web编程提高到一个新的高度。
  正确的调整让Ruby发挥了它的作用,从而达到了他的目的。
  说实话,Pick Axe 和 Agile Web Development with Rails是我在过去的几年中读过的最好的两本书。我读过一些技术书籍,但是没有任何其它的书能象这两本这样激起我的兴致,并让我希望能够读到更多的相关内容。并且最为突出的是它不需要预先积累太多的知识就可以开始应用的特性,在这篇由Mike Clark写的blog中解释了这一点,并向我们展示了Rails是如何的强大。

  没有人否认Ruby on Rails已经将Web编程世界作为了它的目标。

  那Ruby on Rails会不会成为主流?我的答案是否定的,尽管它具有这么多好的品质。也许,正如你所猜到的,我对此的确信并不是来自于技术基础的考虑的。

  实际上,一个成功的Web开发框架取得成功是许多因素一起作用而造成的,但是在我深入介绍这些因素之前,请允许我讲一个相关的故事。

  你曾经遇到过Smalltalk或者Lisp的程序员吗?你知道,这些人不管你怎么告诉他们,他们总是回答“Smalltalk在二十年前就做过这些了”,或者说“没有任何东西被创造发明出来,直到Lisp的出现”。当你在和他们交谈的时候,他们总是用一种愉快的眼神礼貌地听你说,当你说完的时候他们会耸耸肩膀,不管你指出的东西,并善意的向你推荐一个三十年的老技术,这个技术是他们曾经学过的最后的东西,并且这个技术从那个时候就已经指出了他们所提供的所有的每个技术要点。

  我相信从现在起的十年内,人们将会回忆起Ruby on Rails,并且会有相同的反应。我不能确定在十年以后我们将会有什么样的Web框架,但是我很确信的是现在的许多Ruby on Rails 的疯狂爱好者将会有同样的态度:“那样是很好的,可是Ruby on Rails 在十年前已经把这些做完了,并且做的更好。”

  有趣的是,也许他们真的是对的。但是到那个时候,这将不再重要,不管它在技术上如何的出色,而Ruby on Rails可能也将只会是为专家们所知道的小范围使用的技术了。

  那么为什么我认为Ruby on Rails永远都不会跨过这个裂口呢?

  首先,Ruby

  再一次:我爱Ruby,我真的热爱。它是过去几年里面很少的几个能够让我惊叹的语言之一,不管什么时候我读到一个我不曾知道的特性的时候,他会让我大叫“Yeah!”。我觉得它的语法和概念的十分的雅致,同时也非常强大。当然我并不是喜欢它的所有东西,但是Ruby是我现在所使用的所有语言中排在Java之后的第二位的语言,而第三位的却排的很远很远去了。但是它是一个复杂的语言,包含可许多高级的习惯用语,而这些习惯用语对于PHP和Visual Basic程序员却是很难理解的。

  无可否认,PHP和Visual Basic是便宜的对象(我们谈论的是那些甚至没有命名空间的语言),但是不管是否喜欢它,他们都是Web标准。任何想在Web竞技场成功的人一定有一个令人瞩目的故事来告诉给这些程序员,告诉他们一些能够说服他们转换到Rails技术平台上的东西,并且要对于他们的管理来说也是一个轻松的事情。 如果没有这两个条件,Rails将不会成功的,并且我预测 Ruby和Ruby on Rails将总会很难出售给任何超过10个员工的组织机构的。

  Ruby on Rails本身

  Ruby on Rails只是太高级了。我是认真的。它具有难以置信的数量的灵巧特性,而这些特性都涉及到了许多的技巧(Ruby相关的或者由David他自己发明的)。对于有才能的开发者,这些特性的确是一个梦想的实现,MVC配线,scaffolding,默认配置,单元测试(甚至是现在的集成测试,非常棒!),凡是你能够想到的。David碰到过那些Web开发人员最近几年都一直在面对的问题,也体验过那些痛苦的时刻。Ruby on Rails本身就是一个伟大的例子,它展示了如何将我们在过去的五年中的所有关于软件开发的知识都包括进来了。

  但是这对于协作开发的开发者来说,仍然是一个难以跨越的鸿沟。有些时候,太多的技巧本身就只是太多的技巧了,并且它很可能出现的情况是,代码流太直接或者太聪明而让一般的开发人员难以明白。开发人员能够从命令式编程转向面向对象编程, 但是那是一个艰苦的斗争。我不相信 Web世界已经准备好来拥抱Rails的明智。

仍然没有可靠的IDE

  所有的动态语言的狂热者会迅速的指出说他们不需要使用IDE来使用Ruby,Phthon,Groovy或者其他的语言。并且他们会迅速的补充到说:“如果你需要一个IDE,那说明你还不够Ruby化或者Phthon化,并且你最好回到你原来使用的语言去,而不要管他们这些已经成熟的人。

  这没有任何意义.可以忽略掉这些人,他们并不明白现实世界是怎么样运作的和开发人员是怎么样想的,并且他们也是为什么有这么多的伟大技术都不能成为主流技术的原因之一。永远都不要羞于去说需要一个IDE或者索要一个IDE。当然的,也有不好的方式来使用IDE的(例如,你希望它能够为你生成代码),但是如果你对Ruby on Rails感兴趣,机会就是你是一个有分寸的开发人员,并且你知道如何调整一个IDE来让你比在使用emacs的时候获得更高的生产效率。代码完成或者导航,测试,重构,项目管理,源控制集成等等。有太多的性能能够列出来,而如果你有这么一个工具能够具有这些性能,那它将会让你具有更高的生产率。

  这是2006年, 不是1996年。每一天我们正在写的程序和我们正在解决的问题都是数量级的更加困难于那个时候,并且我们的工具需要能够保持跟上这样的需求。Emacs是一个很好的文本编辑器,但是不再能够满足现代的开发了。

  过于狂热

  朋友们应该也能看出我对这个话题有多么强烈的感觉。还好我还能比较冷静,但是Ruby on Rails的狂热用户们却对Ruby评论家和批评家的态度不是那么仁慈。有很多人会来说服你,他们说它已经找到了所有问题的最终答案,并且他们并不害怕让你知道。我对这些人只有一个建议:你也许是正确的,但是请谦逊一点。它永远不会受到伤害的。

  个人思想的拥挤

  如果你想用Ruby来写一个Web应用程序,只有一个解决方案。只有一个,Ruby on Rails.

  Ruby on Rails机会已经占领了使用Ruby的Web开发领域,我在想这究竟是不是一件好事呢?所有对于Java的赞扬都是因为你可以数出一大堆的Web框架来,这是被称之为的多元化和对更好的东西的不断追求。每一个框架都是构建在它之前所构造出来的优势之上,而把它之前的错误都丢弃了(当然也会引起一些它本身的错误)。每次这个领域会变得更好一些,然而却始终只能屈服于永恒的自然选择的法则。

  我担心Ruby on Rails在Ruby世界中将会扮演Java世界中的JUnit的角色:在它被推出的时候还是一个伟大的工具,但是它却让它的开发社区进入了冰河世纪,在好几年中没有任何的创新和竞争的出现。不管Ruby的命运如何,我希望它的爱好者们能够保持清醒的头脑,并且愿意不断挑战Rails的方式,因为一个简单的原因,不断的质疑已经有的东西是一种很好的方式,并且不管已有的东西看起来是多么的好。

  企业级的能力和可扩展性还不能确定

  这是一个关于Rails并没有处理好的证据,他们立刻迅速的指出BaseCamp和其他的产品。到现在为止的问题是,应该有其他的明显的成功的Rails案例,并且不应该只有一个由Rails社区开发的例子。当然,这是一个鸡和蛋的问题:很多的公司都在Rails上衡量Ruby,但是只有当他们发现有其他的公司在他们之前已经采用了它,这些公司才会愿意跳过这一步。所以到现在,最缺的就是证据。

  在最终被认可之前,Java也用了一段时间才达到了企业级挑战的需要的,并且它在超越这个挑战的时候尽管也存在大量的障碍例如很差的性能和受到质疑的规范。我认为只有当Ruby通过克服它自己的EJB2崩溃的问题,否则它将不会具有企业级的水平。

  缺少从Internet供应商的支持

  你会问这有什么大不了的? 毕竟Java也是基本不被Internet供应商支持的。两者最大的不同是在服务器端的Java的目标是面向企业级的。任何想要运行Java2EE 应用程序的人都会建立他们自己的服务器。

  Ruby on Rails是面向不同群体的:“Web sites in-between”,这些站点并不是大规模的可扩展的,但是他们每天仍然有一些访问量的。许多的这类人使用外部托管,并且如果Rails不为他们提供本地的和预安装给他们的话,他们不会走的很远。PHP并不需要他们伤脑筋,因为实际上99%的Internet服务商都安装了的。

  当然,一点点的访问技巧能够允许你运行你自己的Rails应用程序,不管你是否提供对它的支持,并且假定他们会给你所需要的酥油的权限并且你不需要让它具有太高的扩展性,但是即便当Ruby on Rails能够达到PHP的一半的穿透能力的时候,它将仍然不能够达到它成为主流所需要的人群。

  请注意到,我没有说任何的关于频繁的错误报告,弱的国际化支持或者积极的记录,而这些领域是Ruby on Rails受到最多的批评的地方。我并不担心这些,因为这些正是Ruby还处在初期的一种表现。他们迟早会被修复的,并且我不认为这些会成为在Ruby in Rails为人们所接受的过程中的一个重要的角色。

  我想说的你都看到了。我的关于Ruby on Rails的预计,很长的一段话。我很抱歉写的太长,一般的我都试图让我的文章能够显得短而精准。我只希望我至少达到了最后一个目标。

  我将会以一个积极方式来总结:我希望我是错的。我真的希望能是这样。接下来的工作,我希望可以在Java和Ruby之间有一个选择,但是现在,当还在怀疑中的时候,我通常的是仍然回到Java来完成我个人的项目,这是基于以上列出的一些原因。

  正如你所知道的,当框架和语言为我的商务活动而竞争的时候我会很乐意见到并选择一个我所喜欢的。但是现在,我还看不到竞争。

呵呵,我也希望elsjc (米格27) 的希望实现: )  我喜欢Ruby, 喜欢这让人耳目一新的,web开发的突破

分享到:
评论
4 楼 李超群 2007-02-01  
为什么一定要争个你死我活呢?其实看看现在业界的变化。jdk 7 将会更好地支持dynamic language,允许你的应用既有java也有ruby或者python.而.net似乎正在往函数式语言的方向发展。我想以后的应用肯定是多种语言整合的或者多种思考方式融合的。
3 楼 dennis_zane 2007-02-01  
隐藏吧,没什么意义的文章,在用的继续用,拒绝用的继续拒绝
2 楼 robbin 2007-02-01  
这篇文章的英文原文作者是testng(JUnit的替代性Java测试框架)的作者,针对他的博客,有过广泛的争论,DHH也有过回复,那就是rails为什么要成为主流?就像cookoo所说,如果主流的定义就是大规模团队做外包开发的话,rails还是不要成为主流比较好些。



1 楼 刑天战士 2007-02-01  
RoR恐怕也没想成为主流吧,很多情况下RoR是不适用的,而且现在RoR所依赖还不成熟,第三方类库太少了,而且BUG不断……

相关推荐

    Ruby on Rails Tutorial

    在这个全球互联的世界中,计算机编程和 Web 应用程序开发都在迅猛发展,我很期待能为中国的开发者提供 Ruby on Rails 培训。学习英语这门世界语言是很重要的,但先通过母语学习往往会更有效果。正因为这样,当看到 ...

    ruby on rails 101

    ### Ruby on Rails 101:深入理解与实践 ...通过这五天的课程,读者不仅能够系统地学习Ruby on Rails的核心概念和技术,还能了解到一些高级主题。无论是初学者还是有一定经验的开发者,都可以从中受益。

    ruby on rails最新版

    Ruby on Rails,简称Rails,是基于Ruby编程语言的一个开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和代码的可读性。Rails以其“约定优于配置”(Convention over Configuration)...

    Ruby on Rails安装包全集(Linux)

    这个资源包提供了所有必需的组件,使得开发者可以按照文档逐步操作,在Linux环境中搭建起Ruby on Rails的开发环境。对于初学者或需要在非标准环境中部署RoR应用的人来说,这是一个非常有价值的资源。

    Ruby on Rails Guides v2 - Ruby on Rails 4.2.5

    ### Ruby on Rails Guides v2 - Ruby on Rails 4.2.5 #### 一、重要概念及基础假设 - **重要概念**:本指南旨在帮助读者深入理解Ruby on Rails(以下简称Rails)4.2.5版本的核心功能与最佳实践。 - **基础假设**:...

    ruby on rails 3 tutorial.pdf

    通过阅读《Ruby on Rails 3 Tutorial》,你不仅能够掌握Ruby on Rails的基本知识,还能获得实际开发经验,从而有信心构建出自己的Web应用。这本书是Ruby on Rails初学者的一份宝贵资源,将帮助你开启精彩的Web开发之...

    Ruby on Rails实践

    Ruby on Rails,简称Rails,是由David Heinemeier Hansson基于Ruby语言开发的一个开源Web应用程序框架。这个框架遵循“约定优于配置”(Convention over Configuration)的原则,致力于简化Web应用的开发流程,提高...

    Ruby on Rails中文指南

    在Ruby on Rails中文指南中,你将全面学习到如何利用这个强大的框架来构建动态的、数据驱动的Web应用程序。 首先,让我们深入理解Rails的核心概念: 1. **路由(Routes)**:Rails的路由系统是应用程序的导航蓝图...

    Ruby on Rails入门经典代码

    本压缩包中的"Ruby on Rails入门经典代码"提供了新手学习Rails的宝贵资源,帮助初学者快速掌握这个强大的框架。 1. **Rails基础知识**: - MVC架构:Rails的核心设计模式,模型负责数据处理,视图负责展示,控制器...

    ruby on rails for dummies

    《Ruby on Rails for Dummies》是一本专门为初学者设计的Ruby on Rails教程,它旨在帮助新手快速理解并掌握这个强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby编程语言构建的一个开源Web应用程序框架,它...

    ruby on rails api

    Ruby on Rails(简称Rails)是一种基于Ruby编程语言的开源Web应用程序框架,专为敏捷开发而设计,强调简洁的代码和“约定优于配置”的原则。它主要用于构建数据驱动的Web应用,借助于MVC(Model-View-Controller)...

    ruby on rails 教程源码

    这个“ruby on rails 教程源码”很可能是为了辅助学习者深入理解Rails的工作原理和最佳实践,通过实际操作来提升技能。 在Rails中,`sample_app-master`可能是一个示例应用程序的主目录,它包含了完整的项目结构。...

    ruby on rails最佳敏捷开发

    Ruby on Rails,简称Rails,是一种基于Ruby语言的开源Web应用框架,它遵循敏捷开发原则,致力于简化Web开发过程。Rails的核心理念是“Convention over Configuration”(约定优于配置),这意味着开发者可以减少大量...

    提升Ruby on Rails性能的几个解决方案

    Ruby On Rails 框架自它提出之日起就受到广泛关注,在“不要重复自己”,“约定优于配置”等思想的指导下,Rails 带给 Web 开发者的是极高的开发效率。 ActiveRecord 的灵活让你再也不用配置繁琐的 Hibernate 即可...

    Ruby on Rails入门权威经典

    《Ruby on Rails入门权威经典》是一本专门为初学者设计的指南,旨在帮助读者全面掌握Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby编程语言的开源框架,以其“DRY(Don't Repeat ...

    ruby on rails在线考试系统

    在这个“ruby on rails在线考试系统”中,我们可以探讨以下几个核心知识点: 1. MVC架构:Rails的核心设计原则是DRY(Don't Repeat Yourself),通过MVC模式将应用程序分为模型、视图和控制器三个部分,各司其职。...

    Ruby On Rails中文教材(PDF)

    总之,《Ruby On Rails》中文教材将引导你进入这个强大而高效的Web开发世界,无论你是初涉编程的新手,还是寻求提升经验的开发者,都能从中受益匪浅。通过深入学习并实践,你将能够构建出功能完备、响应迅速的Web...

Global site tag (gtag.js) - Google Analytics