发现我的思想越来越保守了,对好多的新技术都没法马上接受。比如说ruby on rails,这一年来炒的沸沸扬扬,我也不过是冷眼旁观而已。老听人说ruby on rails开发效率如何如何高之类的,甚至有人吹嘘比J2EE高十倍,对此我只能深感怀疑。Ruby on rails在哪些方面会带来生产效率的突变?我想无外乎以下几方面:一、ruby语言本身比java有了很大的简化;二、用reflection和默认的文件夹名等消灭了配置文件;三、用Active Record、MVC和代码生成等功能使开发CRUD的程序异常简单。
但是仔细想想这些观点似乎不一定能站得住脚。
一、除了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”前写个序言,没想到罗罗嗦嗦写了一堆,就单独作为一篇文章发了,呵呵!
前篇(05-12-02): 解析Acegi Security System for Spring之二
后篇(05-12-27): 算法、语言、底层和solution
发表评论
引用链接
- 您可以按照以下步骤引用本文.本站收到您的引用通知后, 将自动链接您的文章, 以方便别人阅览 .
- 1. 启动您自己的博客管理页面, 并进入发表新文章的画面, 输入文章的内容. (如果您是ITPUB的博客请点这里.)
- 2. 复制下面虚线框里的连接字串, 把它们粘贴到您的文章中, 按照您的喜好修改一下表示文字.
- 3. 确认您选择了"发送引用通知"的选项.
- 4. 发表您的文章.
- 好啦, 您的文章就可以被自动链接到本站啦.
| « | 三月 2010 | » | ||||
|---|---|---|---|---|---|---|
| 一 | 二 | 三 | 四 | 五 | 六 | 日 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 | ||||
| 国内技术blog |
|---|
|
|
|
|
| 国外技术blog |
|---|
|
|
|
|
|
|
|
|
|
|
|
|
| 技术站点 |
|---|
|
|
|
|
| 我的联系方式 |
|---|
|
|
|
|
| 友情链接 |
|---|
|
|
|
|
|
|
| 主页RSS |
|---|
|
|
|
|
|
|
