2007-03-20
"Ruby".say_hello——Programming Ruby中文版序
关键字: 书评 ruby
根据我的观察,习惯于Java或者C#的程序员在初初接触Ruby时,最能打动他们的往往就是像本文标题这样的一句代码:原本熟悉的字符串或者整数突然摇身一变,有了很多新的行为,甚至让整个Ruby语言都似乎变了个样。尽管“改变标准库的行为”并不总是值得推荐的做法,但如果使用得当,你能够在Ruby的基础上创造出一种贴近项目需求、易写易读的方言——也有人把这些方言叫做“领域专用语言”(DSL,Domain Specific Language)。更多的程序员是因为Rails这个框架才开始对Ruby语言产生兴趣,而Rails在很大程度上正是一种针对Web应用开发的DSL。
能够创造DSL,这是Ruby语言最大的魅力之一。但仅仅这一点并不足以解释为何有那么多优秀的程序员如此盛赞Ruby语言,更不足以解释为何它会突然间红透半边天——毕竟,在元编程方面更具实力的LISP和Smalltalk并没有像如今的Ruby这样流行。作为一个Java程序员的Mike Clark给了我们一个有趣的比喻:推绳子——他说“读了仅仅几页 Programming Ruby之后,再使用Ruby之外的语言编程感觉就像是在‘推绳子’(push rope)。”把一根软绵绵的绳子往前推,那种有劲使不上的感觉,正是用惯Ruby之后再回到Java/C#时的真实感受。
灵活、优雅、巧妙、便利……这些溢美之辞我们已经听得太多了。但在我看来,Ruby最大的特点就一个字:快。这不仅意味着你能够很快地为自己的问题找到现成的解决办法,更意味着你能够直观地描述自己心中的想法,并且在改变想法时能够很快地调整你的程序。这种能力对于今天的软件开发者而言显得尤为重要,因为世界在飞快地改变,软件项目的需求在飞快地改变。对于今天的软件客户来说,尽快得到可以工作的软件、尽快反馈、尽快看到调整的效果,比一个完美但尚未实现的设计要有价值得多。而Ruby这种“快速实现想法”的能力,正是众多开发者对之青睐有加的根源所在。
Ruby能够帮你描述心中所想——这句话,在某种意义上,也意味着你需要熟悉Ruby的思考方式。尽管自称是面向对象的脚本语言,Ruby的精神仍然与函数式编程(functional programming)一脉相承。这种精神不仅体现在语法层面上,还体现在构建系统的思路上。Ruby社群很少会一开始就把要实现的目标想得清清楚楚、或是首先制定种种规范标准,相反,他们会充分利用Ruby的灵活与简洁、优雅与巧妙,从一个简单的、能够工作的软件开始,逐步增加更多的功能,并通过不断重构和优化让良好的设计逐渐浮现。
是以,跨进Ruby的世界,也许你首先需要学会的是这种“渐进式”的思维方式——不仅仅是编写软件,就连“学习Ruby语言”本身也是一样。你不需要读18本书或者参加半年培训来学会Ruby编程——另一方面即便你这么做了也未必就能学会,如果你没有使用Ruby来编写真正有用的程序的话。所以,如果你对Ruby产生了兴趣,稍微了解一下,然后就开始写吧:把编写shell脚本的首选语言从Perl改为Ruby,用Rake来构建你的项目,或者——像大多数人那样——用Rails来开发一个小网站。你会遇到无数的问题,解决这些问题的过程就是对你的技术进行重构的过程。
但你至少还需要通过某种途径来“稍微了解”Ruby语言,而且在遇到问题时也需要一本手册来帮你排疑解难。在你手上的这本《Programming Ruby》正是为此而生的一本书。书中的精彩内容无须我在这里赘述,你大可以自己去发掘。我唯一想要告诉你的是:如果你想要开采最瑰丽的“红宝石”宝藏,这本书就是你不可或缺的“镐头”。锻造这柄镐头的是两位大名鼎鼎的“实用主义程序员”Dave Thomas和Andy Hunt,这两位撰写过一系列C++/Java/.NET技术图书的开发者最终选择用Ruby on Rails来开发他们自己的网站(PragmaticProgrammer.com),这本身就已经证明了Ruby的价值,同时也让我们对这本书的实用性更有信心。
所以,你还在犹豫什么呢?既然已经拿起了这本书,既然已经对Ruby产生了兴趣,就不要再浪费时间了。翻开书,跟着这两位讲求实效的作者一道,现在就开始你的Ruby编程之旅吧。Ruby已经向你说过“hello”了,你将会如何回应它呢?
最后,和以往一样,祝你在Ruby的世界里,编程快乐!
能够创造DSL,这是Ruby语言最大的魅力之一。但仅仅这一点并不足以解释为何有那么多优秀的程序员如此盛赞Ruby语言,更不足以解释为何它会突然间红透半边天——毕竟,在元编程方面更具实力的LISP和Smalltalk并没有像如今的Ruby这样流行。作为一个Java程序员的Mike Clark给了我们一个有趣的比喻:推绳子——他说“读了仅仅几页 Programming Ruby之后,再使用Ruby之外的语言编程感觉就像是在‘推绳子’(push rope)。”把一根软绵绵的绳子往前推,那种有劲使不上的感觉,正是用惯Ruby之后再回到Java/C#时的真实感受。
灵活、优雅、巧妙、便利……这些溢美之辞我们已经听得太多了。但在我看来,Ruby最大的特点就一个字:快。这不仅意味着你能够很快地为自己的问题找到现成的解决办法,更意味着你能够直观地描述自己心中的想法,并且在改变想法时能够很快地调整你的程序。这种能力对于今天的软件开发者而言显得尤为重要,因为世界在飞快地改变,软件项目的需求在飞快地改变。对于今天的软件客户来说,尽快得到可以工作的软件、尽快反馈、尽快看到调整的效果,比一个完美但尚未实现的设计要有价值得多。而Ruby这种“快速实现想法”的能力,正是众多开发者对之青睐有加的根源所在。
Ruby能够帮你描述心中所想——这句话,在某种意义上,也意味着你需要熟悉Ruby的思考方式。尽管自称是面向对象的脚本语言,Ruby的精神仍然与函数式编程(functional programming)一脉相承。这种精神不仅体现在语法层面上,还体现在构建系统的思路上。Ruby社群很少会一开始就把要实现的目标想得清清楚楚、或是首先制定种种规范标准,相反,他们会充分利用Ruby的灵活与简洁、优雅与巧妙,从一个简单的、能够工作的软件开始,逐步增加更多的功能,并通过不断重构和优化让良好的设计逐渐浮现。
是以,跨进Ruby的世界,也许你首先需要学会的是这种“渐进式”的思维方式——不仅仅是编写软件,就连“学习Ruby语言”本身也是一样。你不需要读18本书或者参加半年培训来学会Ruby编程——另一方面即便你这么做了也未必就能学会,如果你没有使用Ruby来编写真正有用的程序的话。所以,如果你对Ruby产生了兴趣,稍微了解一下,然后就开始写吧:把编写shell脚本的首选语言从Perl改为Ruby,用Rake来构建你的项目,或者——像大多数人那样——用Rails来开发一个小网站。你会遇到无数的问题,解决这些问题的过程就是对你的技术进行重构的过程。
但你至少还需要通过某种途径来“稍微了解”Ruby语言,而且在遇到问题时也需要一本手册来帮你排疑解难。在你手上的这本《Programming Ruby》正是为此而生的一本书。书中的精彩内容无须我在这里赘述,你大可以自己去发掘。我唯一想要告诉你的是:如果你想要开采最瑰丽的“红宝石”宝藏,这本书就是你不可或缺的“镐头”。锻造这柄镐头的是两位大名鼎鼎的“实用主义程序员”Dave Thomas和Andy Hunt,这两位撰写过一系列C++/Java/.NET技术图书的开发者最终选择用Ruby on Rails来开发他们自己的网站(PragmaticProgrammer.com),这本身就已经证明了Ruby的价值,同时也让我们对这本书的实用性更有信心。
所以,你还在犹豫什么呢?既然已经拿起了这本书,既然已经对Ruby产生了兴趣,就不要再浪费时间了。翻开书,跟着这两位讲求实效的作者一道,现在就开始你的Ruby编程之旅吧。Ruby已经向你说过“hello”了,你将会如何回应它呢?
最后,和以往一样,祝你在Ruby的世界里,编程快乐!
- 22:41
- 浏览 (5914)
- 论坛浏览 (6766)
- 评论 (18)
- 分类: 媒介与传播
- 相关推荐
评论
dennis_zane
2007-03-23
回复
Tin 写道
gigix的文采很好呀,写得很好看。这本书也等太久了呀,赶快上市吧。镐头书还是应该买一本的,我喜欢Pragmatic Bookshelf的风格。
已经上市了
pengjun_lovecoding@hotmail.com
2007-03-21
回复
说3月要出的,今天3月21日了,在等几天吧。序都出来了,不会在跳票了吧!
robbin 写道
ozzzzzz 写道
robbin 写道
我是自己通过印客网把《Programming Ruby》和《Agile Web Development with rails》英文原版打印出来,都读了一遍。其实就用RoR来说,《ruby for rails》比《Programming Ruby》更合适,所以我不建议购买《Programming Ruby》。
估计《ruby for rails》是在给《Programming Ruby》让路,不然的话也该有消息了,不是早就把稿子交上去了吗。
但不是同一家出版社,《Programming Ruby》是博文出版,《ruby for rails》是人邮出版。《ruby for rails》译稿去年9月就完成初稿,12月就完成终稿了,按道理来说,更加应该早点出版,抢占先机才对。但拖到现在还不出版,我怀疑是人邮对这本书的销量没有信心,所以想压下来再等等看,等RoR真正火起来才敢发行。
不是一个出版社也要让路啊,毕竟市场容量是有限的,而且《ruby for rails》针对太强,显然没有《Programming Ruby》市场面宽。
其实我一直在想就rails来说理解ruby其实主要就是两个方面的问题,一个是标记,一个是DSL,其他的语法细节只要是有其他语言的经验,基本很快就会掌握(当然可能开始还是写的是java风格或者c风格的ruby,其实只要能工作就可以了)。
而且我觉得ruby的世界观和rails的世界观还是有所不同的,学rails和学ruby的区别还是很大的——实际上rails我一直认为本身就是一门方言。
同意robbin的看法,r4r是在我看来学习ruby最好的书籍,此外,ruby cookbook可以一看,提供了各种ruby使用菜谱,最后,可以看一下ruby hacking guide,版上的dreamhead正在翻译此书,看看英文版的也挺好
ozzzzzz 写道
robbin 写道
我是自己通过印客网把《Programming Ruby》和《Agile Web Development with rails》英文原版打印出来,都读了一遍。其实就用RoR来说,《ruby for rails》比《Programming Ruby》更合适,所以我不建议购买《Programming Ruby》。
估计《ruby for rails》是在给《Programming Ruby》让路,不然的话也该有消息了,不是早就把稿子交上去了吗。
但不是同一家出版社,《Programming Ruby》是博文出版,《ruby for rails》是人邮出版。《ruby for rails》译稿去年9月就完成初稿,12月就完成终稿了,按道理来说,更加应该早点出版,抢占先机才对。但拖到现在还不出版,我怀疑是人邮对这本书的销量没有信心,所以想压下来再等等看,等RoR真正火起来才敢发行。
robbin 写道
我是自己通过印客网把《Programming Ruby》和《Agile Web Development with rails》英文原版打印出来,都读了一遍。其实就用RoR来说,《ruby for rails》比《Programming Ruby》更合适,所以我不建议购买《Programming Ruby》。
估计《ruby for rails》是在给《Programming Ruby》让路,不然的话也该有消息了,不是早就把稿子交上去了吗。
RoR只是技术,作为一种scripting language,Ruby还是有必要学一下的,尤其是像我这样的新手。Programming Ruby很适合我。不过尽管是Programming Ruby,也没有达到Core Java和TIJ的高度……
我是自己通过印客网把《Programming Ruby》和《Agile Web Development with rails》英文原版打印出来,都读了一遍。其实就用RoR来说,《ruby for rails》比《Programming Ruby》更合适,所以我不建议购买《Programming Ruby》。
dennis_zane
2007-03-21
回复
忽悠了这么久,总算要出了,无论如何,还是要买一本看看
zhangyu8374
2007-03-21
回复
Ruby,可以快速实现心中所想,于是“写代码”的时间将越来越少。此时如果要提高软件开发效率,需要重点去攻克的点就会是“想法”。如何使得自己更有想法,才是我们真正要去做的!
看透明写序了,是不是上市了啊,不是说这个星期上市吗?也没见CSDN在主页上宣传,不过还是想看Agile web development withs rails
第2版什么时候上市啊,不过目前没办法,只能看英文的了,呵呵,还加强英文阅读呵呵!
第2版什么时候上市啊,不过目前没办法,只能看英文的了,呵呵,还加强英文阅读呵呵!
liuwangxia
2007-03-20
回复
gigix 写道
是以,跨进Ruby的世界,也许你首先需要学会的是这种“渐进式”的思维方式——不仅仅是编写软件,就连“学习Ruby语言”本身也是一样。
......
你会遇到无数的问题,解决这些问题的过程就是对你的技术进行重构的过程。
......
你会遇到无数的问题,解决这些问题的过程就是对你的技术进行重构的过程。
说得很对,不过我觉得学习任何一种编程语言都要“渐进式”的边学边用,这也不是 ruby 独有的呀。
发表评论
该博客是同时发布到论坛的,无法评论在论坛已被锁定的帖子







评论排行榜