论坛首页 编程语言技术论坛

"Ruby".say_hello——Programming Ruby中文版序

浏览 11372 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-03-20  
根据我的观察,习惯于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的世界里,编程快乐!
   发表时间:2007-03-20  
gigix 写道
是以,跨进Ruby的世界,也许你首先需要学会的是这种“渐进式”的思维方式——不仅仅是编写软件,就连“学习Ruby语言”本身也是一样。
......
你会遇到无数的问题,解决这些问题的过程就是对你的技术进行重构的过程。

说得很对,不过我觉得学习任何一种编程语言都要“渐进式”的边学边用,这也不是 ruby 独有的呀。
0 请登录后投票
   发表时间:2007-03-20  
这本书哪天出呢?跟blizzard一样玩跳票。
还有那本《ruby for rails》也是很早就听说翻译完了......
0 请登录后投票
   发表时间:2007-03-21  
看透明写序了,是不是上市了啊,不是说这个星期上市吗?也没见CSDN在主页上宣传,不过还是想看Agile web development withs rails
第2版什么时候上市啊,不过目前没办法,只能看英文的了,呵呵,还加强英文阅读呵呵!
0 请登录后投票
   发表时间:2007-03-21  
Ruby,可以快速实现心中所想,于是“写代码”的时间将越来越少。此时如果要提高软件开发效率,需要重点去攻克的点就会是“想法”。如何使得自己更有想法,才是我们真正要去做的!

0 请登录后投票
   发表时间:2007-03-21  
忽悠了这么久,总算要出了,无论如何,还是要买一本看看
0 请登录后投票
   发表时间:2007-03-21  
我是自己通过印客网把《Programming Ruby》和《Agile Web Development with rails》英文原版打印出来,都读了一遍。其实就用RoR来说,《ruby for rails》比《Programming Ruby》更合适,所以我不建议购买《Programming Ruby》。
0 请登录后投票
   发表时间:2007-03-21  
RoR只是技术,作为一种scripting language,Ruby还是有必要学一下的,尤其是像我这样的新手。Programming Ruby很适合我。不过尽管是Programming Ruby,也没有达到Core Java和TIJ的高度……
0 请登录后投票
   发表时间:2007-03-21  
robbin 写道
我是自己通过印客网把《Programming Ruby》和《Agile Web Development with rails》英文原版打印出来,都读了一遍。其实就用RoR来说,《ruby for rails》比《Programming Ruby》更合适,所以我不建议购买《Programming Ruby》。

估计《ruby for rails》是在给《Programming Ruby》让路,不然的话也该有消息了,不是早就把稿子交上去了吗。
0 请登录后投票
   发表时间:2007-03-21  
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真正火起来才敢发行。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics