Chatting with Chad Fowler
Last Tuesday (April, 24th) was a memorable day for me. I was able to have not only one, but two celebrities from the Ruby community. I interviewed Chad Fowler in the morning and then David Black in the evening. The original founders of the Ruby Central and two of the main responsibles for evangelizing Ruby back in 2001.
Both are veterans of our community and they were very kind. As you well know, I am a brazilian Rails advocate and our local community is still small, but I believe the turn of the tide is not so far ahead.
My goal is to have known people speak to our local community so they can be inspired and motivated to not just jump into Ruby or Rails, but to aim for a higher level on their personal careers.
So, I will first present Chad Fowler’s interview, and on the next time I will publish David’s. Without further ado, here’s Chad:
AkitaOnRails: Well, not only software but I guess interviews have their own set of ‘Design Patterns’ as well. So, let me get rid of the ‘usual suspects’ before we get to the real juice. I personally like background history. How did you start in the computer world? I would guess you’re a self-learner programmer, one of the early hackers, is that right?
Chad: You are right. I went to college to get a degree in music. I was a jazz saxophonist and “classical” composer. I got interested in computer programming, because I have always loved computer games, and I wanted to write my own. Now, many years later, I still haven’t written a computer game.
AkitaOnRails: No kidding. Would you mind to tell us when was it? Your appearance may be deceiving. When I see a picture of you, it reminds me of Richard Stallman. I hope I am not aiming for a long shot. Was it in the era of the PDP-10 stuff or was it more recent?
Chad: haha. Very much more recent. I started programming in earnest only 11 years ago. I’ve always looked older than my age. Nobody ever said I looked like Richard Stallman before though. I actually don’t normally have long hair, but I’m growing it to donate to http://locksoflove.org.
AkitaOnRails: Haha, that’s nice. And going directly to the point: how did you find out about Ruby? What is Ruby to you? What makes you excited about it?
Chad: Having started as a musician and specifically a composer, I view computer programming as a creative endeavor. More of an art than an engineering discipline. I’m also a language geek, so I spend a lot of time exploring new (and unusual) programming languages. I discovered Ruby in 2000 during one of my Saturday language exploration sessions. I had actually planned to seriously focus on Smalltalk, but I spent that Saturday learning Ruby and it derailed me from my Smalltalk learning.
Ruby was a perfect blend of pragmatism and beauty/idealism for me. I haven’t found anything since which feels as good as Ruby. For me, the feeling I get when programming is at least as important as other factors when selecting a language.
AkitaOnRails: I see. Have you ever read Pete McBreen’s Software Craftsmanship?
Chad: Yes. I actually read that book on the plane to the first International Ruby Conference, which David Black, Dave Thomas, and I co-organized. Pete McBreen was at the conference and was one of the presenters. So I was able to get my book autographed. His thoughts on craftsmanship and apprenticeship are right in line with what I believe.
AkitaOnRails: Me too. I have a feeling that most of the ‘hackers’ consider themselves artists. Do you think that’s the case? I believe you met great hackers along the way.
Chad: I think he’s taken a somewhat extreme approach, and I’m afraid it’s a little more than what the industry can actually handle. It’s unfortunate that we can’t see more of this kind of thing in the industry. I would say that most of the great hackers do NOT consider themselves to be engineers. They might not all feel the extreme of being artists. Some think of software development as a craft, which I’d place somewhere in between art and engineering.
AkitaOnRails: Very well said. And speaking of the community, I hear that before Rails, the Ruby community was very small and all of a sudden it exploded. Do you think Rails is growing up too fast? Is the Ruby community comfortable with this fast pace? Or is it not so?
Chad: You’re right about the size (and pace) of the Ruby community before Rails. The first Ruby conference had 40 people at it. The 4th had 64 people. Not very fast growth. We sold out the 5th conference with 200 people and could have added more. There are certainly some growing pains with the explosion that happened with Rails, but I don’t think smart people in the Ruby community should complain. The explosion has brought us all into a situation in which we can work in our beloved language professionally. Until 2005, there were only a handful of Ruby programmers getting paid to work in Ruby full time outside of Japan.
AkitaOnRails: Right. RubyCentral is a very important institution in that matter. You’ve been responsible for many successful Conferences. How did you start it? And what are the values and ideas of RubyCentral?
Chad: We started Ruby Central primarily to handle RubyConf. In 2001, Guy Hurst was organizing the first Ruby conference and had some personal obligations come up that made it impossible for him to finish the organization of the conference. So, Dave Thomas (of the Pragmatic Programmers) stepped in to make sure the conference didn’t die when Guy stepped out.
He knew that a conference was an important milestone for the Ruby community. Dave enlisted David Black and myself to help lead the organization of the conference. After the first one, we realized it would make sense to establish a non-profit company to handle the conference in the future, which we did the following year.
As we’ve enjoyed more success in our events, we’ve started to branch out into other projects, including other conferences, sponsoring regional conference events, and funding “code fests”. As Ruby continues to grow, we hope to grow with it and to expand our role in the community.
AkitaOnRails: Yes, I heard about Guy, but very little. Where is he now? What is he doing? And were you all friends before Ruby? You, David Black, Dave Thomas, Guy?
Chad: I haven’t heard from Guy for several years. He was primarily a PHP developer, and I think that may still be the case. David, Dave, and I didn’t know each other before Ruby. We met on #ruby-lang on freenode back when there were only 12 people there on a regular basis. Since then, of course, we’ve all collaborated on many projects.
AkitaOnRails: You’ve been traveling a lot, you do many workshops, keynotes. I know that if people attend to your presentations is because they do have some interest in the subject. But did you find ‘skeptics’ along the way? Do you think people still think of Ruby as something over-hyped? Or are people getting used to it as a real-world solution?
Chad: I do still encounter skeptics. Most of the skeptics are Rails skeptics—-not Ruby skeptics. Rails is over-hyped. That’s a fact. It’s also a really powerful tool, so the hype is a good thing. Hype always turns some people off, but in this case it hasn’t turned enough people away that it is bad. I’m seeing more and more “uninteresting” uses of Rails and of just Ruby alone.
By "uninterestingâ€, I mean that companies are using it for their intranet applications and other unsexy non-Web 2.0 applications. That’s a sign of maturity and that we’re moving past the early adopters on the curve and into mainstream territory. Ruby and Rails are being used for large and small applications. The cool thing, from my perspective, is that it’s no longer news when a company decides to use Ruby. Back in 2004, it was a big deal anytime a company made the choice to go with Ruby.
AkitaOnRails: I thought that the opposite was true: that Rails was used mainly as a startup resource to get to the market faster. Do you see traditional enterprises adopting Rails?
Chad: The opposite was and is still true. Startups are using Rails to great effect. But, now I’m seeing a lot more traditional enterprise adoption. The profile of the companies I’ve been working with has been changing and getting more diverse. Topics like system integration are getting a lot more interesting to the customers I’m talking to.
AkitaOnRails: At least here, I see that many IT managers and CIO’s still adopt the old IBM posture. If you asked a manager back in the 60’s: “Why do you buy from IBM?â€, he would answer: “Because nobody gets fired buying from IBM”. Now, we have another scenario: “Why do you buy Java?â€, “Well, because nobody gets fired buying Java stuff”. Do you think this scenario still holds true?
Chad: I think it will always hold true in big companies. Big companies make decisions based on fear. It’s not just true in IT. It’s true in HR, manufacturing, and other functions in big business. Fear-driven decision making comes from the way big companies are inherently organized and from the way promotion and success are measured.
I’m not sure there’s a way around it, other than perhaps treating big companies like a huge collection of small autonomous companies. I’ve heard of successful experiments resembling this idea, but I haven’t investigated in detail.
The funny thing about this kind of decision making is that it focuses on not failing as opposed to winning. You’ll very rarely see a huge success in an environment like this.
AkitaOnRails: Yes, indeed. I suffer this daily. I like this subject so I will return to it again. But changing subjects a little bit. I believe your most recent published book is Pragmatic Programmers’ Rails Recipes. I bought it as soon as it was released and I can tell that it’s an amazingly useful resource. I like the Recipes kind of book. Was there anything in the process of making it that you think was challenging or curious? Any tales about its making of?
Chad: Thanks for the kind words. The thing about the book that I always want to get across is that it’s truly a “recipe” book. Most recipe-style books are nothing but complete references, artificially divided into recipe format.
The equivalent in cooking would be to have recipes on topics like “How to throw a dash of salt into your food”. Nobody needs a recipe on a granular topic like that. Recipes should teach you to make something you didn’t already know how to do.
That was my focus. I tried to make recipes that were really compositions of many ingredients. The biggest challenge in writing the book was that Rails is a moving target. As you know, writing a book against something that’s constantly changing is not easy. I had to spend a lot of time in the source of edge rails.
AkitaOnRails: I know that, I also wrote a book that is already lagging behind (it was for 1.1). And you’re already preparing the Advanced Rails Recipes. As you evolved since the first book, what do you think of the current Rails evolution? Is it happening too fast? Are people having time to grasp all the new stuff?
Chad: I don’t think people have time to grasp the new stuff. Most people I talk to around the world still haven’t caught up with Rails 1.1. That’s an easy perspective to lose when, like you and me, you spend most of your time in the “alpha geek” Rails community.
Fortunately for us that are writing books, that means that out-of-date books are still valuable to “normal” Rails developers. I don’t think it’s bad that the masses can’t keep up with the evolution of Rails. It just means that the bleeding edge features are only being used by the bleeding edge developers. So far, Rails has stayed mostly backward compatible.
The interesting thing will be to see how the release of Rails 2.0 impacts the less-than-bleeding edge portion of the community. Rails 2.0 will introduce incompatibilities and will enforce new conventions/opinions on developers. I’m guessing it will be a messy and upsetting process, but we’ll get through it.
AkitaOnRails: I read a recent blog post about a keynote that I guess you did in March. I don’t know if it were your words, but the “Ruby is at a dangerous crossroads” statement caught my eyes. I think so as well. I would love to see you elaborate on that.
Chad: The primary reason I think we’re at a dangerous point in our path is this: Having been a niche player for so many years, we’ve had to kick and fight to defend our ground as a legitimate language choice. When you spend all of your time fighting, it burns its way into the community’s culture. Our default reaction to change is now defensive and argumentative. And, believing we’re on the cutting edge, we close our minds to suggestions from the outside world. This was OK when we were in defense mode, but now that we’re “winning” in terms of adoption, we have to actively change the culture of the community or else we run the risk of becoming closed-minded curmudgeons.
AkitaOnRails: That old rant from DHH: who wants to become mainstream? Do you think he still has this opinion? Many people follow that rant.
Chad: I think he still has that opinion, though he’s probably backing off to some extent, because we’re already becoming mainstream. I also happen to agree with him in some ways.
Matz gave a talk at OSCON 2005 called “It’s cool to be minor”, talking about the advantages of not being mainstream. Avi Bryant, of Seaside fame, also vocally enjoys the niche status of Squeak and Seaside.
Looking back at RubyConf 2001, we had 40 people in attendance, several of whom were authors of the Agile Manifesto. Still, others were authors whose books I had read and enjoyed over the months leading up to the conference. It was a small group of experts. Small communities are like that. Larger communities, like large companies, have priorities and focuses that are different. Both are good, but for alpha geeks like DHH, smaller is probably better for the creative process.
AkitaOnRails: Another phrase of the same blog post that caught my eyes was “Ruby 2.0 has been vaporware for longer than Perl 6.” It is very true. Ruby has been in 1.8 like forever. I believe that Rails was explosive in many ways. Over-exposure can be good or evil. You get famous, but you have to live up to it. Fortunately now I see lightning fast efforts as JRuby. What do you think of this situation? Can Ruby be doomed to be replaced by some alternative implementation, or Ruby 2.0 is real enough today?
Chad: I don’t think Ruby 2.0 is doomed. I was actually quoting Matz when I said that Ruby 2.0 was vaporware. Matz gave a talk on Ruby 2.0 at RubyConf 2001 (when we were still in Ruby 1.6.x). JRuby has also been in development since 2000.
I believe Matz has organized the team the right way now and is making real progress toward Ruby 2.0. I’m expecting to see a beta release by the end of this year as he has promised. Keep in mind that Ruby 2.0 is actually 2 different things:
- a new VM (YARV)
- a new language
The new language has been Matz’s interest and focus. Now that we have someone officially working on the new VM, Matz is freed to evolve the Ruby language.
AkitaOnRails: Sure, actually I feel that I saw both Ruby 2.0 and JRuby speeding up in the last year or so, more than in the previous years.
Chad: Very true. JRuby is speeding up due to the efforts of Charles Nutter and Thomas Enebo, who have recently been hired by Sun to work almost exclusively on JRuby. They’re putting in a lot of effort and it shows.
AkitaOnRails: Yes, I just saw 0.9.9 coming out yesterday. Amazing effort. I can picture them working overnight on this, it’s crazy. I am trying to have Charler Nutter interviewed as well. The local Java community will go nuts on this one.
Chad: Yea, definitely. The JRuby guys are definitely heroes in the Java world.
AkitaOnRails: Ruby is pretty much in childhood here in Brazil yet. It is taking a lot of effort trying to warm up the local community. At least from a distance I can see that the US and EU Ruby Community are growing very strongly and developing fast. You were there since the beginning. What do you think was the turning point for Ruby there? What did it take to make Ruby recognizable and respected?
Chad: Two things. The first was the fact that many of the industry’s thought leaders were long-time advocates of Ruby. Dave Thomas, Andy Hunt, Martin Fowler. All of them were using Ruby long before it took off. This set the stage for the Rails explosion.
When Rails came out, the hype was backed by some very well respected names in software development. Rails was, of course, the second (and largest) thing that pushed us over the hump. Most importantly, it was the marketing efforts of David Heinemeier Hansson.
Truthfully, Europe is lagging far behind the US in terms of Ruby adoption. India and other similar locations are far behind Europe. I think it’s a natural progression based largely on the economies of each region. I would guess that Brazil will come along in time. You just have to wait for the wave to hit you.
AkitaOnRails: Yes, the wait is really killing me :-) I see dozens of Rails and Ruby books at Amazon, and mine remains the sole Rails book here. It’s kind of sad. And it’s very hard to push the community forward because we have the very old chicken-and-egg situation: companies don’t want Rails because there’s no professionals available, and programmers don’t want to learn Ruby or Rails because companies are not demanding.
Chad: This is exactly the situation in India. I think that’s largely economics-driven. It will come to you, but if your primary market is serving others’ IT needs at lower costs, you’re going to necessarily play it conservatively and go for volume—-not margin.
AkitaOnRails: I spent a lot of time trying to understand that. Rails landed as a storm in the US. I can see the explosion. But it is very slow in other places of the world, like here. What is it so different in the US? I can’t believe it’s only coincidence.
Chad: Like I said, I think it’s largely economics. Living in India attuned me to the fact that in developing countries, the focus is on economic survival and financial success. In the US, most software developers just want to have fun. Given our financial success as a nation, we have developed a greater sense of entitlement. So we, more than other countries, view our work as something that has to be enjoyable, and we are therefore more likely to experiment and push the boundaries.
We don’t in general spend time worrying about keeping our jobs compared to people in other countries, because we feel we can get another job whenever we like. In other countries, there’s more of an emphasis on employment being a service to the employer as opposed to the other way around. I think in terms of ethics, the position of the average US software developer is inferior to that of developers in other countries, but it fosters innovation.
AkitaOnRails: You’re right on that. I’ll think more about it. And speaking of India. You wrote many things, but my favorite book is My Job Went to India. I can totally see the motivation to write such a piece with all that overseas outsourcing stuff going on. I read it and I found myself at home because I already live up to many of your 52 ways, although I never did any of it to “save my job”. I just do the things I do because I enjoy it. When did you have the idea to jot down those ideas? Any particular motivation?
Chad: Before I answer the question, I want to agree with you about “saving your job”. The title of the book was a mistake. My Job Went to India is really not about saving your job. It’s about creating a remarkable career for yourself.
I have spent a lot of time in India and elsewhere mentoring younger software developers on their careers. I’ve also done a lot of interviewing. Over time I’ve found myself explaining and motivating the same way over and over again. When I returned from India, I decided to leave my job at a big conservative company, which freed me to write without the constraints of intellectual property agreements weighting me down.
I talked to Dave Thomas about doing a book about how to do offshoring right, and it was Dave who actually turned the topic around and pointed out that I had a much larger audience which I could help by putting together thoughts on how to think about a career in this new global environment.
AkitaOnRails: Unfortunately I see many people here going the usual way: graduating college, maybe taking one Java certification or two and then simply stopping. From then on they just live in their routine. They’d rather have a routine than having to make decisions – and living up to them. I try my best to mentor as many people as I can. Any advice for this current generation? I know the question is too broad (the theme of an entire book), but you probably have something that you say to every youngster that you see with a question mark in their foreheads.
Chad: The only way to quickly sum it up is: have passion for what you do. Your work life is such a large portion of your total life, that you don’t want to spend it doing something you’re not passionate about. Don’t be afraid to take control of your career and to take chances. I would take that even as far as saying that you might have chosen the wrong field, and it’s never too late to realize that and make a change.
AkitaOnRails: Nice, that’s my motto as well. Many people simply refuse to think that way because their reasoning goes like this: “things that I enjoy don’t make me earn enough to bring food on the table, so I have to do what I don’t like so that I can survive”. It’s a sad reasoning. I know I am very fortunate being able to just go the way I enjoy the most, but many people find it too difficult to switch careers or learn something new. Education is expensive in Brazil, unemployment is a reality. Unfortunately there’s not too much that I can do but to mentor as many as I can.
Chad: Again, that’s an unfortunate reality outside the US, and probably another reason that the US is more innovative in the IT field. It is possible here to switch careers nearly whenever you like. And it’s much easier to get work based on merit and not credentials. So, I (for example) as a musician was able to build a career for myself in IT without having to go to university. I still have not taken a single computer programming course.
AkitaOnRails: You mentioned that you spent time at India. Do you see this kind of reality there too? People so focused on surviving and not on enjoying their work?
Chad: Yes, very much so. I would guess that the motivations behind professional life are very similar between India and Brazil.
AkitaOnRails: Have you ever been in Brazil our met Brazilians?
Chad: I have met Brazilians but not been in Brazil. I would love to visit, though!
AkitaOnRails: And about communities again. The Java community is very strong in Brazil. The sponsorship of Sun and the many years in the development raised a very strong foundation here. I still see a lot of animosity between Java guys and everybody else. They invested a lot of time in a single technology and it seems natural for them to bash everything else. Do you see it happening there as well?
Chad: I do. It’s a natural human tendency. And, if you think about it, Java, like Ruby , went through the same periods of having to sell itself early on as being a feasible technology. My fear is that the Ruby community now is like the early Java community, and that our fate is to become as closed and unaccepting of change and new ideas as many in the Java world have.
AkitaOnRails: Ok, I am very happy that we could have this conversation. Thanks a lot!
Chad: cool thanks!