第 2 章 Ruby
有糖相伴好下药。 ——Mary Poppins
如果你正信手翻阅此书,那我们大概志趣相投——都喜欢学习各种编程语言。对我来说学一种语言,就如同了解一个人的性格一般。自我进入编程行业以来,用过的语言已不在少数,深知语言如人,每种语言都有其独特个性。Java 像一位地主家的孩子,小时候天真可爱,但长大后开始巧取豪夺,方圆百里之内听不到一丝欢声笑语;Visual Basic 像一位浓妆艳抹的美发师,虽对全球变暖问题一无所知,理发却是一把好手,言谈风趣幽默总能把人逗得开怀大笑。在本书中,我将把你学到的每门语言都比作某个著名的影视人物。希望这样的比喻能对你有所启发,让你多少明白各语言与众不同的性格所在。
先来认识一下 Ruby,我的最爱之一。她偶尔会搞怪,却总是很妩媚;带有那么点神秘,却有着百分百的魅力。还记得英国保姆 Mary Poppins①吗?她那个年代,保姆多半像 C 语言家族②的大多数语言那样,做什么都很利索,就是没什么人情味儿,而且枯燥死板、一成不变。其实,只要一勺糖③,一切都会不同。Mary Poppins 从家务中寻找乐趣,以责任感唤起热情,做起家务来自然事半功倍。Ruby 所做的也同样如此,但它用的不是食用糖,而是语法糖。作为 Ruby 的发明者,Matz 并不担心编程语言的执行效率,而是把精力放在了提高程序员的编程效率上。
① Mary Poppins,DVD 版,导演:Robert Stevenson(1964 年)。发行商:加利福尼亚州洛杉矶市迪士尼影视公司(2004 年)。(译者注:这部电影中译名为《欢乐满人间》,是迪士尼公司 1964 年根据同名小说拍摄的音乐电影。片中主人公 Mary Poppins 是一位法力高强的仙女保姆,她来到一户双亲工作忙碌、孩子生性顽皮的家庭,接替孩子们气走的前任保姆的工作。在她手中,枯燥的日常生活变得像魔幻世界一般精彩纷呈,繁重的家务劳动也具有了无穷无尽的乐趣,孩子们更是由此学会了以积极快乐的心态面对生活。Mary Poppins 的行为感染了孩子们的父亲,让他明白除了工作、赚钱之外,值得珍惜的事物还有很多。最后,带着欣慰的心情,她离开了这个家庭。值得一提的是,饰演 Mary Poppins 这一角色的是著名英国影星 Julie Andrews,这也是她的银幕处女作。一年后,她又饰演了《音乐之声》中的家庭教师——和 Mary Poppins 可谓是异曲同工、相映成趣。正是凭借这两个角色,她获得了 1964 年的奥斯卡最佳女演员奖以及 1965 年的奥斯卡最佳女演员提名。)
②C 语言家族,指由 C 语言派生的众多编程语言,包括 C、C++、C#、Java、Objective-C、D、Go 等语言。可参见http://en.wikipedia.org/wiki/Category:C_programming_language_family。
③指的是 Mary Poppins 在影片中演唱的歌曲《一勺糖》。她借此歌告诉孩子们,虽然工作犹如苦药一般,但只要发现其中乐趣,就会像一勺糖压下苦药那般甘之如饴。