Sebastopol, CA--Time may be money, but it's also a piece of one's life, and a pretty significant piece at that. In some part, this explains the popularity of the Ruby programming language, which is known for being a wonderful timesaving tool. As Lucas Carlson and Leonard Richardson, authors of the new Ruby Cookbook (O'Reilly, US $49.99) observe, "Ruby makes you more productive than other programming languages because you spend more time making the computer do what you want, and less wrestling with the language."
But even Ruby programmers can spend time without accomplishing anything: writing Ruby implementations of common algorithms, debugging Ruby implementations of common algorithms, discovering and working around Ruby-specific pitfalls, working on repetitive tasks that could be automated, searching for a library that does X, and then evaluating and deciding between the many libraries that do X. The list goes on and on. "Our lives are better spent creating new things than fighting our own errors or trying to solve problems that have already been solved," Carlson and Richardson remind us. Their contribution to the cause is the Ruby Cookbook.
The Ruby Cookbook presents hundreds of recipes that programmers can use to save time, sharpen their skills, and master the language. If they need a web application, they'll find recipes that show them how to get started with Rails. If they need to rename thousands of files, they'll see how to use Ruby for doing that and thousands of other everyday tasks.
"Ruby is booming, and it's mostly because of Ruby on Rails," says Richardson. But he adds that a lot of people are picking up Rails without knowing much about Ruby, or dynamic languages in general, which can be a hindrance to their growth in the long run. "These people can function as Ruby programmers, but they lack a bottom-up grasp of its syntax, usage, and philosophy. This book can gradually build that knowledge in the context of solving specific common Ruby and Rails problems.
"As these Ruby/Rails programmers become more confident, they'll be more interested in the domain-specific tasks covered in the Cookbook, like XML processing and web services," he adds. "And people who use Ruby as a general-purpose language can use the whole book as a reference, including topics like GUIs and distributed programming which are far removed from Rails."
The Ruby Cookbook is intended for all Ruby programmers, especially those new to Ruby and those who have trouble with Ruby's most powerful features, like code blocks (closures) and metaprogramming. For more experienced programmers, the book serves as a problem-oriented reference and a way to expand the horizons of what they can do with Ruby. Finally, for people who know several programming languages and are interested in learning Ruby, this book can serve as an immersion course.
"Learning from a cookbook means performing the recipes," Carlson and Richardson remind their readers. "Some of our recipes define big chunks of Ruby code that you can simply plop into your program and use without understanding them. But most of the recipes demonstrates techniques and the best way to learn a technique is to practice it."
To the authors, the book is an ambitious and wide-ranging project. To programmers, it may be the most valuable book yet written about Ruby. Yukiro (Matz) Matsumoto, the creator of Ruby, says, "Programmers don't live by language syntax alone, but by every line of concrete code they write. To that end, this book is filled with practical recipes, tips, knowledge and wisdom. I hope it leads readers to the next step of Ruby programming."
O’Reilly Media spreads the knowledge of innovators through its books, online services, magazines, and conferences. Since 1978, O’Reilly Media has been a chronicler and catalyst of cutting-edge development, homing in on the technology trends that really matter and spurring their adoption by amplifying “faint signals” from the alpha geeks who are creating the future. An active participant in the technology community, the company has a long history of advocacy, meme-making, and evangelism.