From RubyConf in Charlotte, North Carolina.
Interviewed by Geoffrey Grosenbach
Geoffrey Grosenbach: It’s the Ruby on Rails podcast. I am Geoffrey Grosenbach. Episode 61, November 2007. Two weeks ago I was in Charlotte, North Carolina at Rubyconf and had the opportunity to speak with the author of one of my favorite Ruby books. The book is “The Ruby Way” and the man was Hal Fulton, of Austin, Texas.
It is Geoffrey Grosenbach here at “Rubyconf 2007” in Charlotte, North Carolina speaking to Ruby veteran, Hal Fulton. What do you think of the conference this year, so far?
Hal Fulton: I think it has been great. It is definitely the biggest one we have ever had; the first multi-track conference we have ever had. It has been very entertaining, informative and high-energy.
Geoffrey: Most Rubyists know you for your book, “The Ruby Way,” a classic that came out in 2001 or 2002, I believe, revised lately. Early on there weren’t many English books about Ruby. That book itself was fairly in-depth. It’s not just a beginner’s tutorial.
Even now, advanced Rubyists enjoy reading it and finding out new things they didn’t know. What motivated you to write that book back in 2001?
Hal: I learned Ruby mostly out of being in the right place at the right time. I was at IBM at the time, talking to a guy across the hall. I was complaining to him that I am never in on the ground floor of any new technology. I was a late adopter of Perl and all that kind of thing. He said, “If you want to be an early adopter, you should learn Ruby.” I said, “What’s that?” [laughter]
So I went and got on the mailing list, which at that time the English mailing list was fairly new then. This was fall of ‘99. It was mostly Europeans speaking in English, Japanese people speaking broken English, and very few Americans. When publishers started hearing about Ruby, I was in a good position to be an author because I was one of the very few people who spoke English and knew Ruby.
“The Ruby Way” was actually the second book in English, by my calculations, depending on when you count things as having come out. I learned Ruby from the draft version of the Pickaxe and also a tutorial for Ruby 1.4 that was on the web, written in English by a German guy.
I also had a Japanese friend of mine bring back a copy of one of Matz’s books just so I could look at the code. There was a shortage of stuff out there, so I was even willing to buy a Japanese book, which I couldn’t read, just so that I could look at.
The code. That was how I learned Ruby.
Geoffrey: Even now, I don’t think I have read that book through, cover-to-cover; I don’t think many people have. Often it is something where a person will pick up a chapter out of that and learn from a specific section. Then it is just so packed with.
Information. How did you research in order to put those chapters together? There are so many different code examples in different facets of Ruby that are explored.
Hal: Well, you start with just a skeleton just like you were taught in eighth grade; you make an outline. From then on you decide what are the most important things that have to go in there and then you just tackle them one at a time. There were certainly items that I threw overboard simply because they were too hard or.
Too time consuming or I just couldn’t make the time to put them in there, or the space. The book was already too big.
Of course, half of research is not just knowing things, but knowing where and who to go to to find things. So anything I didn’t know, which was a lot, I at least knew where or whom to go to for that. Truthfully, there are big sections of the book which.
Were written by other people.
When I say “big,” I mean maybe five to ten percent of the book was pretty much handled by somebody else. I am not a web guy, so I wrote the Rails section myself with a little bit of advice. The Rails part is very high-level. It’s like what you get in the first 10 pages of any Rails book. The part on Nitro, for example, was written largely by James Britt. I just went through and edited, rearranged, added some stuff, threw some stuff out. I couldn’t have done the Nitro part without James Britt because it would have taken weeks longer.
You can’t learn anything all at once. When you are on a deadline and it takes six weeks to learn a topic but you want to write about it in one week, you just go to somebody who already knows, if that makes sense.
Geoffrey: Well, the Ruby community and just Ruby in general is a lot different from when you first learned it. What are your opinions? We have seen several different Ruby interpreters that are now in development and some, maybe minor changes to the language. What is your outlook on Ruby, as a veteran, having seen it change quite a bit?
Hal: I think it just continues to get better. There are some little nit-picky things that I miss and little things that I wish would be done differently, but I believe that Matz is smarter than I. I am glad that he is making the choices instead of me because.
If I decided what Ruby was, it would be something that I would like better, but it would not necessarily be better.
Sometimes you just have to say, “This guy is a genius. I’ll let him make the decisions.” I think that as long as he is steering things, in general, it doesn’t matter. There are alternative implementations of Ruby like JRuby, Iron Ruby, all those things, Rubinius. I think those can only be good things because that means that Ruby is gaining a foothold.
If some of them do eventually drift away from Ruby and become their own languages; well, the whole thing is sort of a Darwinian process. If Rubinius eventually becomes a totally separate language from Ruby, it just gives us two good languages to choose from. That’s how I view it.
Geoffrey: Well, thanks for your thoughts.
Hal: OK, thank you.
Geoffrey: Sponsored by PeepCode Screencasts. Equipment by Samson Audio.