Halloway:对Ruby VS Java误区的深度剖析
日期:2007年7月12日 作者: 查看:[大字体 中字体 小字体]-
Relevance咨询公司的Stuart Halloway最近编写了一个关于“Ruby vs. Java之怪谈”的系列博客文章。这个系列文章的灵感,源自他最近从一个从零起步、没有先前约束的Ruby项目转回一个成熟完备的Java项目后的心得体会。在这个历时多日的项目过程中,Halloway对以下几个“误区”进行了探索:
误区之一:Ruby适合小型项目,而Java更适用于大型的、复杂的项目。
概括起来,Halloway主张,对于小型项目来说,诸如未知因素一类的问题可能会使进度表大幅度改动,而如果找到一个成熟完善的代码库则可以使得开发人员几乎不用编写多少代码。在 Java方面,这些因素是很大的一个优势,因为它背后有一个成熟强大的社区和一群非常有经验的开发人员所支持。对于大型项目,Halloway则称,诸如语言的生产效率之类的因素会比代码库更为紧要,这也把天平上优势的砝码放在了Ruby一端。他指出,目前事实已经发生逆转,并解释说:
以下是引用片段:
当前Ruby异常适合的一种小型项目是:由数据库所支撑的Web应用,因为Ruby on Rails抵消掉了所有Ruby在小型项目方面的不利因素。误区之二:Ruby的某某特性使得代码难以维护
针对这个认识误区,Halloway的结论是:如果使用得当,Ruby的语言特性会使用其编写的代码更加易于维护。对于“易于维护的代码”的概念,他给出以下定义:
1. 理解应用程序或者模块的总体设计思路
2. 找到你所需要的代码
3. 阅读代码
4. 对代码进行变更
5. 检查变更是否正常运行
下面是两种语言的优势对比:
理解应用程序或者模块的总体设计思路:无一胜出
以下是引用片段:
[...]我的经验表明,在这个方面没有哪个语言能帮上很多忙,但良好的抽象概念会有所帮助。Java和Ruby包含很多相同的抽象概念:实现继承、类、多态和封装等等。查看你所需要的代码:Java胜出
由于IDE的有效支持,Java在这个方面胜出。
阅读代码:Ruby胜出结论:Ruby代码更容易保持DRY原则,因此更容易阅读。
对代码进行变更:Ruby胜出
结论:在动态语言中进行代码变更更为容易。
检查变更是否正常运行:不相伯仲
Ruby和Java都提供了对单元测试、验收测试和持续集成等方面的良好支持。
误区之三:Ruby太难了
有些人,比如Cedric Beust主张说,对于普通开发人员Ruby的难度太大。Halloway反驳到,总的来说,编程就不是一件容易的事情。尽管有些丛书以“21天学会编程”的旗号为噱头,但这是不可能的。因此,使用Java和Ruby编程都不是一件容易的事情。他主张说:
以下是引用片段:
[...]你不能通过限制语言的特性这种方式来降低难度[...]误区之四:要抄袭Rails的创意很容易
Halloway提出,这个误区需要慎重看待,因为它说的确实有一部分是真的。Rails的许多创意是可以被抄袭到其它任何语言上去的。但是,对于这个观点的反驳也存在:
以下是引用片段:
[...]另外一些创意则取决于特定的Ruby语言特性。Rails使用了open class,使得我们可以写出更好的、可读性更强的对象模型。举例而言,你可以写出x.blank?这样的代码,而不是这样:StringUtilities.isBlank(x)。单独来说,这样的区别并不会产生很大的意义,但是随着它们积少成多了以后,代码的可读性就会得到显著的提升。[...]误区之五:这是一场没有赢家的游戏
最后是系列文章的总结陈词:作为一门语言,Ruby胜出;但作为一个平台,Java胜出——
以下是引用片段:
- [1] [2] 下一页
-
- Halloway:对Ruby VS Java误区的深度剖析 相关文章:
- ·Halloway:对Ruby VS Java误区的深度剖析
- Halloway:对Ruby VS Java误区的深度剖析 相关软件
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:C#图像放大问题解决方法
精品推荐
热点TOP10
- ·Servlet简介
- ·Java编写的计算器程序及源代码(1)
- ·Java学生成绩管理系统源代码
- ·servlet和JSP过滤器Filter
- ·Struts+Spring+Hibernate实现上传下载
- ·Web2.0时代的核心应用:Ajax简介
- ·用Java实现音频播放
- ·Java Map 集合类简介
- ·在桌面应用中使用JAVA DB
- ·你能过关吗?J2EE面试题集锦(附答案)
- ·使用poi操作Excel的几点注意事项
- ·候捷谈Java反射机制
- ·java网络五子棋的源代码
- ·J2ME游戏开发实例讲解
- ·Java基础:三步学会Java Socket编程
- ·用java实现print screen,读取位图文件,将位图文件转化位jpeg格式并保存成文件输出!
- ·SOAP协议初级指南
- ·开源技术——体验Struts
- ·J2SE简介
- ·JavaDoc用法
特别推荐
- ·你能过关吗?J2EE面试题集锦(附答案)
- ·面向过程与面向对象的区别
- ·Tapestry入门
- ·候捷谈Java反射机制
- ·标准的web.xml
- ·Java异常处理的特殊情况
- ·SOAP协议初级指南
- ·Why Java can be used for games?
- ·用Java Socket制作广播信使程序
- ·J2ME游戏开发实例讲解
- ·用java实现print screen,读取位图文件,将位图文件转化位jpeg格式并保存成文件输出!
- ·[SNAP]实例讲解移动QQ在线平台
- ·0. Preface: Core Technologies
- ·一个简单实用的数据库操作框架
- ·开源技术——体验Struts
- ·Java资料:Swing中的事件处理详细资料
- ·Tomcat性能调整
- ·Java基础:三步学会Java Socket编程
- ·一种通用的输入校验方法和气球泡提示的实现(键盘用户界面模块)
- ·JBoss 4.0 简化了中间件的开发
