天堂的阶梯

暂无签名

  • 博客访问: 712012
  • 博文数量: 42
  • 用 户 组: 普通用户
  • 注册时间: 1970-01-01 08:00
个人简介

鏆傛棤浠嬬粛

ITPUB论坛APP

ITPUB论坛APP



APP发帖 享双倍积分

文章分类

全部博文(42)

文章存档

2006年(7)

2005年(35)

我的朋友
微信关注

IT168企业级官微



微信号:IT168qiye



系统架构师大会



微信号:SACC2013

订阅
热词专题
冷观ruby on rails 2005-12-09 00:51:11

分类: 开源技术

发现我的思想越来越保守了,对好多的新技术都没法马上接受。比如说ruby on rails,这一年来炒的沸沸扬扬,我也不过是冷眼旁观而已。老听人说ruby on rails开发效率如何如何高之类的,甚至有人吹嘘比J2EE高十倍,对此我只能深感怀疑。Ruby on rails在哪些方面会带来生产效率的突变?我想无外乎以下几方面:一、ruby语言本身比java有了很大的简化;二、用reflection和默认的文件夹名等消灭了配置文件;三、用Active RecordMVC和代码生成等功能使开发CRUD的程序异常简单。

[@more@]

但是仔细想想这些观点似乎不一定能站得住脚。

一、除了closure之外,我不认为其它的语法调整会给开发效率带来特别的变化。动态数据类型是典型的双刃剑,它使一些操作变得很简单(比如对XML的操作),但是它也带来了很多问题,例如现代IDE的IntelliSense statement completion,使用动态数据类型里根本没法做到的,而这恰恰是现代IDE生产效率的提高的重要因素。当然动态数据类型还会带来代码的安全性问题。虽然Dave Thomas、 Jon Tirsen们一直在鼓吹we need don’t need strong type language, we need strong test,我仍然表示怀疑,当我们在定义的时候就能知道数据类型后对我们了解程序的结构和设计思想绝对是有好处的。


二、当然,如果把我们定义配置文件的麻烦都去掉是一件很爽的事。但是我仍然在怀疑,就象爱因斯坦说的,”we should make the simple thing simpler, and difficult things possible”,或者另一句名言,”simple, but not simpler”。去掉配置让我们做简单的事情变得更简单,但是当碰到一些复杂的任务呢?我想不出在不需要元数据的O/R Mapping framework里如何实现lazy load与eager load的区别,如何实现second level cache的配置。


三、是的,当我们用ruby on rails开发简单的CRUD应用的Web程序时,我们的开发效率可能不只比J2EE高十倍。所有的东西都已经默认生成了,或者我们可以执行一个命令所有的代码都帮我们生成好了。可是我们都知道,企业级应用并不都象CRUD这种小儿科的游戏那样简单。它包含的业务逻辑,它要考虑的问题远比CRUD复杂数千倍。而做过几个应用的人都知道代码生成这种玩意是没意义的,在J2EE without EJB,甚至在极力推崇ruby的Dave Thomas写的pragmatic programmer里都对代码生成进行了批判。


当然,在没有深入了解一样技术的时候就妄加评论是很愚蠢的,如果我有时间的话也许会看一下agile web development with rails,也许会用ruby on rails做几个应用,只是我现在要学的东西太多了,我宁愿相信AOP和AJAX会在将来的应用开发中越来越重要,也不愿相信ruby on rails,所以我选择了冷眼旁观。也许有一天当我用ruby on rails开发了几个系统并发现它确实不仅仅是玩具,并带来强大的开发效率的时候,我也会改变我的态度。我只是希望那些嚷着ruby on rails要取代java EE的人不是因为跟风,而是都通过自己的辨别力来得出这个结论的。


本来上面这部分内容是要在“评AJAX in action”前写个序言,没想到罗罗嗦嗦写了一堆,就单独作为一篇文章发了,呵呵!

阅读(251202) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册