2007年4月4日星期三

why Ruby over Java

这个帖子很不错,可以参照来学习Ruby。总结来说Ruby的优点在于:
* closures
* multiple implementation inheritance via mixins (simplifies a lot designs where we would use decorators and factories in java)
* messages to objects as if they were first class methods (natural way of doing AOP, used a lot in ActiveRecord). This actually also counts for the famous java properties support planned for java 7...
缺点在于没有了Java的类型检查,而这是提高Java开发效率的关键:通过编译就可以排除大部分的错误,也提高了系统的安全性。但是在开发一个完整的 Java应用时,经常会遇到DSL语言的地方,比如jsp, sql,这些都是没有办法进行类型检查的地方(DSL的特点吗?)。再比如对Session的处理不可避免的会用到类型cast。
在RJS里面,html, rjs, rb这些文件之间存在的变量type和name的合约(或契约)更多,而只能手工检查。
疑问:Ruby里面method的参数的类型会在运行时进行类型检查?
那JRuby会起到一个粘合剂的作用吗?这会提高系统的复杂性,而且一个系统中使用两种语言也少见,除非是一个遗留系统。