Chatting with David Black
As I reported on my last post, on April 24th I was very fortunate to interview two great celebrities from the Ruby world: Chad Fowler and David Black. I love to chat with experienced people because I learn so much.
David Black was a great guest, we had a very nice conversation where I pushed a little bit more of the subject that I like to discuss: programmers careers. David is one of the founders of Ruby Central and he as his own company called Ruby Power and Light which offers training and consulting services. He is also the author of the excelent Ruby for Rails book, from Manning.
So, here goes:
AkitaOnRails: Once again, I’d like to start with the usual questions of all interviews: how did you got into computer stuff? What hooked you up into programming? It is curious because I learned that Geoffrey Grosenbach was graduated in philosophy and Chad was a musician!
David: I’m a musician too (I play the cello). I’ve got an undergraduate degree in Art History and German, and a Ph.D. in Cinema Studies as for how I got into programming….
It was when I was 13 (which was 1972). My school had a PDP-8, and the university where my parents taught had a PDP-10 which they let me use. I was totally obsessed with it. Then I stopped doing it for quite a few years… and then after I got my first PC, I got back into it (around 1990). I started using unix in 1990, and linux in 1993
AkitaOnRails: Now, that is interesting, I asked Chad the same thing implying that he got interested in programming around the PDP-10 era. I think the beard deceived me :-)
David: Yeah, I’m not sure he was even born when I started programming.
AkitaOnRails: I wasn’t, I was born in 77. And by the time I got interested in computers, the original Macintosh was just released. I love to be young at this era but I always wanted to deal with PDPs, punch cards. I like ‘technology archaeology’.
David: I still have paper tapes in my basement.
AkitaOnRails: I am assuming that you, Chad, Dave Thomas are very close friends. Are you? Or do you only work together organizing the conferences at RubyCentral? I understand that all of you started RubyCentral back in what, 2001? I heard that you kind of inherited it. Did you met them at that time or you’re long time friends?
David: I met them both (online) around late 2000. I had not known them before. What happened with the 2001 conference was this: there was a guy named Guy Hurst who had come up with the idea and done most of the organizing of the event. But he wasn’t able to follow up on it (various work-related things had taken precedence).
But Dave didn’t want it to be cancelled, since it was going to be the first such Ruby event and having it actually happen was important. He didn’t have a lot of time for it, though, so he asked me and Chad to take it over and see it through to completion, which we did.
Then we decided that we should have a parent organization for future conferences. For the first conference, I just deposited the money in my bank account and kept track of it (separately!). There that was not a very scaleable approach to handling finances so we created Ruby Central in 2002.
AkitaOnRails: Yeah, Chad mentioned that. I already knew some of this (it’s kind of a legend by now). But do you hang around together? Do you work together? For some reason I see the 3 of you more like the “Founding Fathers” of Ruby outside Japan.
David: We’re all friends. Chad works more closely with Dave than I do, since he’s done books for the Pragmatic Bookshelf and taught for the Pragmatic Studio. Chad and I have been involved in a lot of collaborations — Ruby Central (the third director is now Rich Kilmer, by the way), various websites, etc.
AkitaOnRails: As some people, I heard about Ruby around the same time I was experimenting with Python and Zope, and it was back in 2001. But I have to confess that I only turned my attention to Ruby once Rails was released. You’re into Ruby since the beginning of its history in America. I already heard about your “by accident” story and I find it very amusing, please tell us about it.
David: It was, I think, early november, 2000, so the Pickaxe had been out for literally about a week or two. I was in Borders bookstore, near my house, looking through computer books. There was this book called Programming Ruby. It made me curious, so I pulled it off the shelf. It was instant love. I don’t think I even put it down on the way to the cash register. Ruby immediately had the feeling of being exactly what I wanted, even though I may not have known I wanted it and here I am, 6.5 years later.
AkitaOnRails: That’s what amuses me. It’s like looking for a nice bottle of wine, a gorgeous piece of art. A novice can’t just walk into a store and evaluate by instinct alone without further background. What do you think you had at that time that made you “fall in love” with Ruby?
David: I don’t know. I don’t think you can explain love. I think I was kind of getting tired of Perl… and Python wasn’t really attracting me but I didn’t anticipate finding Ruby — it was a very pleasant surprise.
AkitaOnRails: Yes, that’s my point: you were experienced in other stuff that made you “feel” something for Ruby. Many young programmers I met can’t understand this. Many of them think that they only have to learn one language only. Do you met this kind of programmers there?
David: Interesting question. I think most of the programmers I meet know more than one language — because a lot of people are just starting with Ruby, and most of them have done some programming before. Actually I think it’s too bad that people seem to think that for every language you love, you have to hate ten. In recent years, I’ve probably become too specialized. Ruby has given me so much to do!
AkitaOnRails: I believe you’re mostly famous now because of your Ruby for Rails book. I like the title because to me it outlines the point that to excel as a Rails developer a strong Ruby knowledge foundation may be critical. Do you think that way?
David: Yes, definitely I wrote the book because I had started to see people asking questions like, “Do I have to learn this ‘Ruby’ thing to do Rails?” It reminded me of all the confusion over Perl and CGI. People thinking that Perl and CGI were synonyms. It seemed like I wanted people to understand exactly how Ruby and Rails relate to each other. And to understand that when you develop Rails applications, you are writing Ruby programs. So it makes no sense to me when people say that you should ‘start with Rails’, as if Rails development could be conducted without Ruby. Of course you can get a Rails app up and running just by cutting-and-pasting from other apps, but that’s not development.
AkitaOnRails: Yes, I see the same thing here, and in fact I see many people writing Rails apps without knowing basic stuff like what is a closure for.
David: Even though not every Ruby technique will be used in every Rails program, the more Ruby you know the more options you have and I think people also get interested in Ruby itself, even if they learn about it first from Rails.
AkitaOnRails: I read somewhere a statement from DHH that you were a very important mentor for him, in the beginning of his ideas about Rails. So, if DHH is the father of Rails, you would be its grandfather? How do you think you influenced him? How was this relationship with DHH?
David: I don’t think I influenced him before Rails. I’m definitely not that much of an influence on Rails. Have you talked to Hal Fulton? I seem to remember that DHH credited the Ruby way (Hal’s book) with being a big influence.
AkitaOnRails: Who is he?
David: Ah ha! Hal is one of the great Rubyists and great Ruby authors.
AkitaOnRails: Hm, my bad. I should’ve known about him.
David: See, he doesn’t do Rails, so he’s not as well known to the younger generation as he should be. He was working on ‘the Ruby way’ by the time I discovered Ruby, I believe (or close to it).
AkitaOnRails: You’re right. I know the ‘Ruby Way’ book, but its on my queue of to-read books yet.
Ah ha, I just found the foreword for your book, from DHH: “As I was learning the language, I often consulted the Ruby-talk mailing list. One voice in particular seemed to know Ruby well and appeared to have the ambition as well as the ability to help others understand it more fully. That voice belonged to David A. Black, the author of this book.”
David: Hmmm, maybe I did influence him but I would not put myself in the direct Rails ancestry.
AkitaOnRails: Haha, I understand. You drive a company called Ruby Power and Light. Please tell us about it. I understand that it is a very recent company (2006) and that you were teaching before that. What made you switch careers? You seem to be very good at teaching and mentoring, so I heard.
David: I taught in the Department of Communication at Seton Hall University for 13 years. It was a great career in many ways – I’m very glad I did it – but things changed. Ruby started taking over my life!
What happened was this: in the fall of 2005, I was starting a one-year sabbatical. by that time, I was working on ‘Ruby for Rails’, and was getting more and more involved in other aspects of Ruby. So, instead of taking the sabbatical, I resigned. It made sense, my interests had shifted, and the time was right to try something new. In my new career, I do a lot of training — so my teaching skills are still put to good use.
AkitaOnRails: But is your company a consultancy? Mentoring services? Development per se? What is your core business?
David: It’s training and consulting — and sometimes a mixture, when a development team wants to learn Ruby and Rails and also wants help getting started on a specific project. And I also do training through sub-contracts with training companies, as well as through my own company.
AkitaOnRails: I see many Rails-based startup-like products coming out today, like Twitter. It seems pretty obvious that Rails is well suited for rapid pace development that this kind of business requires. But do you see the big iron companies seeing the advantages of Rails? As a consultant do you do Ruby or Rails related business for this kind of company?
David: I’ve done training and consulting at some large firms, though it’s often because they want to develop in-house tools, not necessarily public-facing applications. It’s hard to say exactly what type of company will end up embracing Rails. I suspect that many won’t — but a lot will. I guess that’s a fairly safe prediction.
AkitaOnRails: And how was the Ruby career before Rails? Was it a niche-kind of solution, or did many companies use it?
David: Lots of people used it for lots of things, but it was definitely not huge outside of Japan. It was significant, and growing, but still relatively small. Rubyconf 2004 had about 65 people… and Rubyconf 2005 had 200. That gives you some idea but the Pickaxe, in 2000, was certainly also a huge force for Ruby.
AkitaOnRails: I inquired Chad about this, but some people see Ruby 2.0 almost as ‘vaporware’, on the same level as Perl 6. On the other hand, for example, we see really fast development in the JRuby side. Do you think Ruby is walking slower than it could? (sorry Koichi) Or is Matz just being careful and true to its original direction? What do you see in the future for the platform?
David: I don’t think it’s vaporware — it’s just a big project, and they’re doing it very carefully. The jRuby stuff has Sun behind it, of course, so it’s getting a big boost.
It’s impossible to predict, of course, but I think we will see a big 1.9 version by the end of the year, as Matz has said, and then 2.0 fairly soon after that. But who knows?
By the way, you might find it interesting to look at some of the talks from early Rubyconfs. He doesn’t have 2001 but he has the others. You’ll get a great look at the kinds of things people were doing with Ruby in those years.
AkitaOnRails: I will definitely take a look, and it’s a great recommendation for our readers. And do you follow the 1.9 development closely? I mean, the official mailing lists and so forth? Have you ever been in Japan? How different is the development culture around Ruby and, for example, around Rails?
David: I’ve never been to Japan, though I’d love to go. I really don’t know much about Rails in Japan. As for Ruby, it’s very interesting: a lot of the japanese Rubyists speak english and participate on english-language lists and conferences, but of course a lot of them don’t — so there are certainly aspects of Ruby culture over there that are inaccessible to me.
As for 1.9: I don’t follow it as closely as I should. I compile it now and then to have a recent one available, but to be honest 1.8 and Rails are keeping me very busy!
AkitaOnRails: I think Matz and DHH are very interestng personas. Being a japanese myself I can understand Matz and his careful evolution around Ruby. And being raised in the West I can understand DHH’s rants and ‘opinionated’ stuff. This community have very interesting and conflicting founders. What do you think of our current community, do you follow all the new developments? Gems, plugins, and so on?
David: Well, that’s several different questions (community, plugins, gems) I love our community. I love it for many reasons, but mostly because I think people are really nice and very interested in what others are doing.
AkitaOnRails: I meant that many of the developments do reflect the characteristics of their authors. WhyTheLuckyStiff for example.
David: Yes, definitely — we have lots of people with interesting backgrounds (like musicians and styles. By the way, have you ever seen this picture ? That’s from Rubyconf 2002. It’s all the japanese Ruby books that were in print at the time. Masayoshi Takahashi brought them over (creator of the Takahashi Method for presentations).
AkitaOnRails: I didn’t know about this particular picture. Very nice.
David: Yes, we were all blown away! “So it really is big in japan!”, we realized.
AkitaOnRails: Haha. For me, I am very proud that at least in the US, Ruby has grown very fast and strongly. But I do have a small fear that its another bubble. Many say that Ruby can become the next Smalltalk.
David: It’s not. It’s the first Ruby. People are always trying to figure out what Ruby “really” is. A new Perl, the next Smalltalk, a Lisp dialect, Python with ‘end’ statements….. it’s just Ruby. It has a style all of its own.
AkitaOnRails: As Ruby became famous overnight, it got exposure. And now some elephants in the room may become issues. I see complaints that one of these elephants is the over reliance on C development inside the core Ruby libraries. Are we going to see the core libraries rewritten in pure Ruby? Do you think it even matters?
David: I wouldn’t say it was overnight …
AkitaOnRails: You’re right, I meant, after the Rails stuff.
David: It’s interesting — there have been several attempts to write Ruby in Ruby over the years. I think that would be good, because it would make it easier to write implementations. I’m not sure how close anyone has gotten. I haven’t followed those developments very much recently. a lot of it is fairly easy, but of course not all of it.
AkitaOnRails: Yes. Today I see Charles’ JRuby and Evan Phoenix’s Rubinius. Have you ever tried them?
David: I’ve looked at jRuby a bit, and I’ve followed the Rubinius story (from its days as Sydney). I think they’re both really interesting projects, and it’s great to see that kind of work going on.
AkitaOnRails: At least here, in my home country, Java is the bread-and-butter of every professional programmer. People learn it at college. For me and for veterans like you, there was once a time when we just learned and hacked into stuff. “Hey, look at this piece of code, looks nice”. I learned a lot of languages, concepts and so on and so forth in the last 20 years. But today I see many kids just thinking “what can give me a better career?”. And just that. I’m not trying to be an idealist – as Chad said, it’s about economics – but don’t you think people in our area should try to enjoy what they do a little bit more? How does it work for you?
David: Well, I’m in a great position at the moment: I took my hobby and turned it into a career. I think the ideal thing would be for people to use tools, especially languages, that they enjoy. But of course people can’t just say to their boss, “we’re using Ruby now!” Hopefully people who use Ruby, as their careers continue, will be in a position to create more and more opportunities for others.
By the way, I agree about the ‘what can give me a better career’ thing — and it’s not just in computers. When I was teaching college I saw the same thing: students were less and less interested, I believe, in academic study for its own sake. They only wanted pre-professional training. So even trying to teach them, for example, media history could be difficult, because they couldn’t connect it directly to a job credential. I sympathize; it’s definitely hard to get jobs, and people are worrying about it at younger ages.
AkitaOnRails: I don’t personally like the concept of Software Factories: I think of software development more like working on a painting. You can use some help in the laborious activities, but the painting is very tied to its painter. Software development became very complex, very expensive, and managers want to break things down to individual tasks and roles. So, no single programmer is held responsible for the whole. I think that platforms as Ruby provides a way to take away some of this complexity and bring the software back to the developer. What do you think about it?
David: I think that’s possible, partly because working with Ruby is typically so productive — so a single person, or a small team, can come up with something quickly that has real functionality. At the same time, I don’t think a language can, on its own, change the development culture. But perhaps it can attract people who want that culture to change, and it can facilitate the change. It also depends a bit on what’s going to happen later; the code has to be maintainable, of course, and not only by one person!
AkitaOnRails: So, what can we expect from RubyCentral? You already have RailsConf US and EU. Have I heard of India? Maybe Latin America?
David: No specific plans yet but it’s not impossible. Last year we started our Regional Conference Grant Program. and there are now a lot of regional conferences…. though they don’t all have grants from us. Sometimes they ask us, and we agree, but then they get lots of sponsorship money so they don’t need us any more. But we certainly encourage and try to support regional events. It’s much better than just having one or two that try to do everything.
AkitaOnRails: Is it a kind of sponsorship program?
David: Yes
AkitaOnRails: US-only?
David: No. We supported EuRuKo (the euro conf). The only main rule is that the event really has to need the money. That’s why we don’t fund them if they have money from sponsors.
AkitaOnRails: So, It was a great pleasure talking to you. By the way, I am amazed about how kind everyone from the Ruby/Rails community is. I contacted many people and they were all very receptive. That’s one thing I like about this community.
David: Yeah, it’s a nice bunch.
AkitaOnRails: So, thanks a lot. Glad to talk to you.