ruby语言有什么样的美学特点?
泻药。 第一点是复杂。 当然因为它复杂到可以做各种事情,反过来设计出来给终端用户用的时候就能做一套简单的DSL了。 比如有些答案提到的Sinatra,很好用嘛。简洁方便,表达能力超强。 不过Ruby的复杂不是不着边际,而是倾向于用利用自身复杂的特性去简化复杂的逻辑。Matz设计的时候就是要给所有人都可以玩的语言,所以即便你不去了解这么复杂的Ruby,希望能够开心地玩。 第二点就是整洁。 比如把?和!作为notation,来表示是一个predicate或者是有side-effect;比如Enumerable配合block流畅的使用方法;比如convention over configuration;比如媲美Perl的正则表达式。 第三点就是,融合得完美,可以用多种风格编程。
其实如果不是Ruby这么复杂的话并不会吸引我去爱上它。
但是你想去实现或者去扩展他,就知道我说的复杂在哪儿了。
不是简洁是整洁。
这里的融合指的是LISP和Smalltalk。除了没有宏之外,能有的都有了,而且一点都不显得意外。(当然你还可以用黑魔法来模拟宏。
在动态语言里面,Ruby的这套对象模型的应该是业界标杆了。
以上。