<meta content="OpenOffice.org 2.2 (Linux)" name="GENERATOR">
<meta content="Jeff Xiong" name="AUTHOR">
<meta content="20061216;13135200" name="CREATED">
<meta content="Jeff Xiong" name="CHANGEDBY">
<meta content="20061216;16493800" name="CHANGED">
<style type="text/css">
<!--
@page { size: 8.5in 11in; margin: 0.79in }
P { margin-bottom: 0.08in }
-->
</style>
根据我的观察,习惯于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的世界里,编程快乐!
熊节
ThoughtWorks咨询师
2006年12月16日
西安
分享到:
相关推荐
Exercism_exercises_in_Ruby._ruby.zip Exercism_exercises_in_Ruby._ruby.zip Exercism_exercises_in_Ruby._ruby.zip Exercism_exercises_in_Ruby._ruby.zip Exercism_exercises_in_Ruby._ruby.zip Exercism_...
ruby-1.8.7.352-13.el6.x86_64.rpm ruby-1.8.7.352-13.el6.x86_64.rpm
[Ruby.Programming_向Ruby之父学程序设计(第2版)].(日)高桥征义,(日)后藤裕藏.扫描版(ED2000.COM).pdf ) 带书签
离线安装包,亲测可用
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
《Ruby Programming:向Ruby之父学程序设计(第2版)》是为了让完全没有程序设计经验的读者也能灵活地使用Ruby,因此书中详细地说明了各种知识。从程序所需要的变量、常数、方法、类、控制结构等语法的说明,到类的主要...
Programming.Ruby_第2版_中文版.zip
Programming.Ruby_第2版_中文版.z01
ruby-libs-1.8.7.352-13.el6.x86_64.rpm ruby-libs-1.8.7.352-13.el6.x86_64.rpm
Centos7 el7.x86_64 官方离线安装包,安装指令为 sudo rpm -ivh ruby-2.0.0.648-39.el7_9.x86_64.rpm
官方离线安装包,亲测可用
Centos7 el7.x86_64 官方离线安装包,安装指令为 sudo rpm -ivh ruby-libs-2.0.0.648-39.el7_9.x86_64.rpm
Ruby_Style_Guide_ruby.zip Ruby_Style_Guide_ruby.zip Ruby_Style_Guide_ruby.zip Ruby_Style_Guide_ruby.zip Ruby_Style_Guide_ruby.zip Ruby_Style_Guide_ruby.zip Ruby_Style_Guide_ruby.zip Ruby_Style_Guide_...
Python、Lua和Ruby这三种脚本语言由于其简洁性、易学性和灵活性,在游戏开发中被广泛使用。下面我们将深入探讨这些语言在游戏编程中的应用及其优势。 **Python游戏编程** Python以其清晰的语法和强大的库支持而闻名...
6. **中文资源**:标签中的“ruby_ ruby__中文”表明这可能是针对中文学习者提供的资料,意味着代码注释、文档或教程可能使用了中文,这对于中文使用者来说是一大便利,能更好地理解和学习Ruby语言和SaaS开发。...
Watir(Web Application Testing in Ruby)是Ruby社区开发的一个开源库,它允许我们用Ruby来编写浏览器自动化测试,支持多种主流浏览器,如Chrome、Firefox、Safari等。 标题中的“test_logger1.rar_Logger wat_...
《Programming Ruby》第二版中文版是一本深入介绍Ruby编程语言的经典著作。这本书全面覆盖了Ruby的基础语法、核心特性以及高级编程技巧,旨在帮助读者不仅掌握Ruby语言的基本用法,还能理解其设计理念,从而更好地...
CentOS6.4更新的ruby基础库包。费了很大劲找到的,放在这希望帮助到大家!