Thursday 4 October 2007

关于Ruby

大致翻阅了一下Programming Ruby中文版。写的不错,翻译的也很好。
Ruby是一个骨子里类lisp的语言,尽管其表面上是纯面向对象的。它解决多继承的办法(mixin)值得称道,这一点已经进入Java的设计。在面向方面编程方面,非常的自然。Java在面向方面编程方面处理的不够优美,但就使用方面而言,还算可以。这种自然的面向方面编程能力,来源自它的母体,古老而神秘的lisp编程世界。Ruby的性能是很大的问题,其标准库也是七拼八凑,基本就是杂牌军。当然其基本建设还是好的。但就其根基而言 ,没有统一的办法解决大部分问题,因此只能拼凑。一些新思想是在设计理念 方面,可以很容易用到其他语言。下面谈一下Ruby的面向方面编程。有两个方面,一个是类加载,一个是块传递。Ruby可以加载多个类,重复定义的类会在运行时融合为一个,类里的方法后加载的覆盖覆盖前面的,很简单。很典型的缝补模式。Java可以通过定义类加载策略来做到这一点。Java当下类加载的策 略就是不加载第二个,这个倒可以改改。代码块的传递Java里没有对应,不过就功能而言,也是可以设计的。

No comments: