基于以下的这么一个原因,你也许不会在本文中读到Ruby on Rails的不好,那就是:我爱Ruby,我爱Ruby on Rails。在我开始学习Rails的第一天起,我就觉得Rails是构建在令人惊叹的语言上的一个奇异的框架。我认为David在以下两个方面做了一些奇异的事:
◆跟上创新的思维,把Web编程提高到一个新的高度。
◆正确的调整让Ruby发挥了它的作用,从而达到了他的目的。
说实话,Pick Axe和Agile Web Development with Rails是我在过去的几年中读过的最好的两本书。我读过一些技术书籍,但是没有任何其它的书能象这两本这样激起我的兴致,并让我希望能够读到更多的相关内容。并且最为突出的是它不需要预先积累太多的知识就可以开始应用的特性,并向我们展示了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评论家和批评家的态度不是那么仁慈。有很多人会来说服你,他们说它已经找到了所有问题的最终答案,并且他们并不害怕让你知道。我对这些人只有一个建议:你也许是正确的,但是请谦逊一点。它永远不会受到伤害的。
共2页: 1 [2] 下一页 |