Book review: Learning Ruby

Z Jacek Laskowski - Wiki Projektanta Java EE

Learning Ruby by Michael Fitzgerald (O'Reilly May 2007)

I've spent a lot of time with Java and the hype around Ruby made me wonder what made it so appealing that Java programmers begun considering it as a viable alternative. When I received the book from O'Reilly I had a very hard time to convince myself to spend some time reading what Ruby was all about. I must admit that the book is all what the title says, so after a few chapters I learnt the history of Ruby and its syntax. I could very easily pick the features that differentiate Ruby from Java. Many short examples made the reading more pleasant, but eventually I got bored reading it as the book is what Java language specification is for Java language. You can read it from cover to cover for a couple of days to get understanding of Ruby as a language, but I definitely needed more. What I think the book missed was to present Ruby features through development of a sample application. The author did a great job to explain the language's syntax in a nice to read style yet once I finished it left me thinking what it is to develop an enterprise application with Ruby (instead of using Java EE 5 stack). I missed it very much. When Michael eventually went to describing Ruby frameworks I thought it's what I was really after. The Ruby on Rails chapter begun the review. It started with the following:

Does the world really need another web app framework? Don't we already have things like Apache Struts (http://struts.apache.org), Apache Cocoon (http://cocoon.apache.org), Horde (http://www.horde.org), Maypole (http://maypole.perl.org), Tapestry (http://jakarta.apache.org/tapestry), WebSphere (http://www.ibm.com/websphere), and a whole bunch of others?

When I saw WebSphere in the crowd I could not understand why and still don't as it's merely an IBM software brand and as such doesn't fit here at all. It was at the end of my reading and although I knew Ruby syntax well and was pretty confident I could use it I was still wondering if I really should. That's definitely not the book one could find an answer to such questions in. I wish I had known it before and found a more comprehensive book about Ruby.

Osobiste