Interview: Author Peter Cooper
20/Aug 2009
Our Book Promotion: “Beginning Ruby 2nd Edition” starts soon. Win one of four books to be given out for active participation. The coolest thing? Author Peter Cooper will be on site to answer questions! Click here for more details. Here, in this brief interview, Satish Talim of RubyLearning talks to Peter Cooper.
Satish>> Peter, could you tell us something about yourself – your background, where you are based?
David>> I’m Peter Cooper, mostly known in the Ruby community for running Ruby Inside and RubyFlow. I was also heavily involved with the Rails community in 2005 and 2006 and released some of the first tagging and AJAX stuff for Rails developers, though I haven’t been particularly involved with the Rails community much since then. I’m also the author of Beginning Ruby, the subject of this promo, have been an advisor and contributor on a couple of other Ruby books (such as Ruby In Practice and Design Patterns in Ruby).
I live in the north of England in a pretty remote area. On the plus side, I have a great Internet connection, a cheap(ish) mortgage, and lots of open space so in theory it should be perfect for someone in my line of work! Since selling my startup, Feed Digest, back in 2007 I’ve been able to spend more time working on “experiments” and what were previously side projects, such as Ruby Inside.
Satish>> What inspired/prompted you to write the book “Beginning Ruby”? What need were you trying to fill?
Peter>> I was routinely posting about Ruby on my personal blog back in 2005 and an editor from Apress got in touch with me to throw around ideas about writing their first Ruby book. I’ve always been keen to write a beginners’ book on some topic or another so it seemed like a perfect opportunity to write a beginners’ book to Ruby. I also felt that Ruby didn’t have any good books dedicated to beginners. The Pickaxe, for example, is an awesome reference book but I found it poor to learn Ruby from from scratch. I wanted to see a book that was like the books I learned C and BASIC from in the 1980s; that was the tradition I wanted to follow in.
Satish>> Who’s the audience for your book – Beginning Ruby?
Peter>> I don’t mean it to sound like a smartass answer but, sincerely, beginners! More specifically, it tries to cover three types of beginner – people who are new to programming in general, existing programmers with no OOP or dynamic language experience, and existing programmers who understand object orientation and dynamic languages but who don’t know Ruby yet. I’d say it aims more toward the first two types, but Python or C# programmers, say, wouldn’t feel too slowed down by my book as it’s easy to skip the introductions to concepts like object orientation and relational databases.
Satish>> The book is now into its second edition. What all has changed from the 1st edition?
Peter>> A lot more has changed in the world of Ruby than I anticipated when taking on the second edition. There have been a lot of URL and resource changes, as well as some natural library progressions, such as covering Feedzirra instead of FeedTools. More significantly, the chapter that was originally devoted to Rails now covers Rails, Sinatra, and Ramaze, so that some balance is maintained since there are so many webapp frameworks to choose from in Ruby nowadays. A chapter on GUI programming (mostly based on Shoes) has been added as some people felt this was a major area the original edition failed to cover.
Satish>> What direction do you see Ruby taking in the years to come?
Peter>> I think we’re at a crucial point in Ruby’s life where a year or two of inactivity and indifference could prompt the start of Ruby’s decline. I’m doing my small part to prevent that from happening, and hopefully the community and Ruby’s developers can keep up with the exciting developments and game changing ideas to push things forward.
Satish>> Interesting to note that you added a topic on Sinatra. In a recent interview with RubyLearning.org, you mentioned that you would be using Sinatra in more of your projects. Can you give us more details on this?
Peter>> I first got into Sinatra late in 2008 when it was already relatively mature and really enjoyed the small community that had built up around it. It reminded me a lot of Rails in late 2004. In Sinatra’s favor, though, was a severely reduced amount of “magic” compared to similar systems, and I loved the way you could write stuff in a very “Rubyish” from-the-ground-up style. Rails isn’t totally flexible but its opinions can get in the way if you disagree with them – the gung-ho dive into REST, for example, which I’m convinced will be poo-pooed in a couple of years much as XHTML has been lately.
All that said, recently I’ve become unconvinced of Sinatra’s abilities to scale to large projects. It’s not its designated use case, and while it’s possible, I’m not sure I’d want to deal with the mess. Rails 3 still seems like vaporware to me but if it delivers on its main promises of flexibility in terms of ORMs, JavaScript libraries, and so forth, I could find myself strongly drawn back into the Rails fold.
Thank you Peter. In case you have any queries and/or questions, kindly post your questions here (as comments to this blog post) and Peter would be glad to answer.