Shari Halter sat down with Francis Hwang, founder of the NYC Ruby group, in February 2007, to ask about learning Ruby, the NYC Ruby community, and the upcoming Gotham Ruby Conference in NYC, April 21, 2007.
How did you get involved in computers to begin with?
My dad was always really into computers. I guess it started there. He had, I think, an Apple II at home that I played around on. I had taken a few classes when I was young, gone to computer camp, etc., but computers were just one of many interests for me. In college I studied computer science, but also artÃ¢â‚¬â€my degree is in visual arts, actually, focusing on painting, and drawing, and comic books. I was always doing lots of different thingsÃ¢â‚¬â€art, freelance writing for newspapersÃ¢â‚¬â€but I was also always doing programming.
So why Ruby?
I came into it first really from the XP (Extreme Programming) group here in NY around 2001-2002. We were interested in the methodology –XP was very hot. At the time, I was at this company and we were doing Tcl and some Perl Ã¢â‚¬â€œit was just sort of a mish-mash, and people in the group started using Ruby on the project. For awhile I preferred Perl, but that become too chaotic. Then I preferred Java, because that was more structured. But then that was too structured, and then Ruby was then just the right thing. It was pretty flexible and quick, overall, but it also had the option of doing all this object orientation, like Java, so it was easier to test. So, yeah, because of the XP group I got involved with Ruby and then started using it very seriously.
XP and Agile –all those methodologies put a lot of emphasis on testing. And they said if you test things then you actually lock down that part, and then it makes a lot of other things easier to change and move around. You donÃ¢â‚¬â„¢t have to do a lot of planning up front; you can always move all your code because you have all your tests to make sure that you arenÃ¢â‚¬â„¢t breaking stuff that used to work yesterday.
I started writing tests for Java code, and then it turned out that testing is so much better than static typing, well, why not just use the test on Ruby code, instead?
And because testing is big in Ruby and Rails culture, a lot of earlier adaptations of Rails were working on smaller web sites, for smaller business, and not so much for Ã¢â‚¬Å“enterprise-y things.Ã¢â‚¬Â But itÃ¢â‚¬â„¢s starting to scale up and a lot of progressively bigger customers clients are finding out that itÃ¢â‚¬â„¢s ok for them to use.
Ruby has a lot of features that came from much older languages, like LISP and Smalltalk, languages that didnÃ¢â‚¬â„¢t really take off and until XP and Agile became such a big fad five years ago. Without them, Ruby and Rails wouldnÃ¢â‚¬â„¢t be nearly as successful today –they seeded the ground. I think MatzÃ¢â‚¬â„¢s [Yukihiro "Matz" Matsumoto, creator of the Ruby language] belief that working in a programming language should be an enjoyable experience and that it should follow the principle of least surprise, has also shaped the community of users embracing Ruby. I might not still be programming today if it were not for Ruby. I think the one thing holding Ruby back these days is a shortage of available programmers.
What about learning Ruby? What resources do you recommend?
There are just, like, a million things that are free online. There are great books for beginners: obviously, the Pickaxe book and Agile Web Development with Rails.
But the number one thing, especially right at the beginning, is to find a group or be on the lists. ThereÃ¢â‚¬â„¢s a lot happening now. The global Ruby community, by which I mean the main mailing lists and IRC channels, is probably too big to be approachable by the novice programmer. I think the antidote to that is to find a local Ruby community, whether its in Miami or New York, or wherever. Use those to get a basic familiarity, so your first days arenÃ¢â‚¬â„¢t so difficult Ã¢â‚¬â€œespecially if it is your first time setting up a development environment. I think whatÃ¢â‚¬â„¢s interesting is to see that for a lot of people, Rails is the first time they are setting up a dev environment on their laptop, for example, and be able to run the whole website and deal with that. But itÃ¢â‚¬â„¢s growing, so it should be easy to find a community.
Tell me about the NYC-Ruby group. When and why did you start it?
When I started the group, I was pretty active: I was putting out an open source library, and I went to RubyConf 2003, in Austin, and I really enjoyed it. It was, like, 50 people, but a bunch of people who were very intellectually ambitious, without lot of ego or competitiveness, which I really enjoyed and I had a blast! I wanted to have my own little version of that more than once a year, so I started the group.
The first meeting was very small, like four or five people. Rails, of course, is what caused it to take off and now itÃ¢â‚¬â„¢s pretty big. We have meetings that go from thirty to forty people. ItÃ¢â‚¬â„¢s been interesting to watch the community change; itÃ¢â‚¬â„¢s grown pretty quickly! ThereÃ¢â‚¬â„¢ve been a lot of programmers that are more productive, and happier, and theyÃ¢â‚¬â„¢re also finding really interesting things about language design and the low-level stuff.
How do you feel about the recent trend in Ã¢â‚¬Å“off-shoringÃ¢â‚¬Â programming talent?
It makes things harder for some people, thatÃ¢â‚¬â„¢s for sure, but there are ways for U.S. programmers to try to be insulated from its effects. Off-shoring works pretty well for projects that are more heavyweight: A bunch of people hammer out a massive spec document for two months, and then ship it over to India so a room full of 50 programmers can bang it out. But when youÃ¢â‚¬â„¢re working in smaller, more agile contexts, the programmers have to be constantly communicating with the clients, specs change constantly, and itÃ¢â‚¬â„¢s really hard to do that long-distance.
The good thing about working in Ruby, and you could argue this is one of underlying reasons that Rails has been the right framework at the right historical moment, is that if youÃ¢â‚¬â„¢re a small, highly productive team of coders, that youÃ¢â‚¬â„¢ll have a better chance of holding on to your programming job in the U.S. And Ruby is a pretty great language for small, informal teams. We havenÃ¢â‚¬â„¢t seen how well it holds up in larger contexts, but I think lots of us are happy with how it works in small teams, with the exact sort of programming jobs we can hold while living in an industrialized country.
WhatÃ¢â‚¬â„¢s the state of the NYC open source community?
For its size, NY is not as strong an open source community as youÃ¢â‚¬â„¢d expect. Mostly because people are busy and work pretty hard. ItÃ¢â‚¬â„¢s expensive to live here, and the job that you have is more demanding here than in a lot of other cities, although, we do have good projects. When Zed Shaw was living here thatÃ¢â‚¬â„¢s when he put up Mongrel [HTTP library and Ruby server], so even though heÃ¢â‚¬â„¢s moved away we kind of claim Mongrel, anyway; Ryan Raaum put up Locomotive [a Ruby on Rails environment manager for Mac]; EastMedia (Matt Pelletier and Trotter Cashion) sarted the Heraldry project [cross-site identity manager/provider]; Luke Melia is a major contributor to Tracks, which is a Rails implementation of Ã¢â‚¬Å“Getting Things DoneÃ¢â‚¬Â methods; Greg Brown, from the New Haven Ruby group has written RuPort [a software library and toolset for reporting applications]; and we now have an NYC-RB Ruby Forge project, which is kind of a collection of a bunch of smaller things.
ItÃ¢â‚¬â„¢s all still pretty small, though. Some of us are very actively trying to drum up more projects and compete with the Seattle guys. WeÃ¢â‚¬â„¢re good friends with them, but weÃ¢â‚¬â„¢d like to kick their butts Ã¢â‚¬â€œbut not today. TheyÃ¢â‚¬â„¢re far ahead of us.
LetÃ¢â‚¬â„¢s talk about women in programming.
The one who sticks out in my mind right away is Amy Hoy, who is a very successful blogger and programmer and designer, and has done a lot to help explain things about Rails to other people. ThereÃ¢â‚¬â„¢s a lot of open source scenes that donÃ¢â‚¬â„¢t have that many women in them. I donÃ¢â‚¬â„¢t believe in quotas, but when the numbers are that bad, there are obviously issues.
ThereÃ¢â‚¬â„¢s a lot of things to unwind. The reasons people get into software in the first place are very particular. Guys are more likely to get into software engineering when they are kids Ã¢â‚¬â€œwriting code and stuff. Boys are socialized to follow hobbies that might not have much to do with people –girls are socialized to care about their friends and family. Guys, a lot of times, are allowed to go away and type away at a computer all weekend long, and come up with weird shit. In the long term, you can say that every generation of computing becomes more humane and more related to socialization.
For every generation, it gets less problematic to write code where the levels at which you have to solve problems involve more humane characteristics. Ruby and Rails make programming more accessible to others who donÃ¢â‚¬â„¢t exactly fit that mold because it is a more humanistic language.
But its something that definitely needs to be addressed and its not going to solved overnight.
You have recently initiated the first NY region Ruby conference, GoRuCo. Tell me about it.
The New York City group, in conjunction with volunteers from the NYC and New Haven groups, have been planning the Gotham Ruby Conference (GoRuCo). Its going to be a one day conference on April 21st. WeÃ¢â‚¬â„¢re just excited to have a bigger regional thing thatÃ¢â‚¬â„¢s halfway between something super-big and super-official like RubyConf, but also a little more laid back and smaller. ItÃ¢â‚¬â„¢s more intimate. It going to be up to 120 people. IÃ¢â‚¬â„¢m really excited to see NYC keep growing as a community of technology. We also like the idea of having some of our friends whom weÃ¢â‚¬â„¢ve met in the community, nationally and internationally, giving them an occasion to come to NYC and visit. WeÃ¢â‚¬â„¢ve opened registration; we sold over 80 tickets, so weÃ¢â‚¬â„¢re almost sold out. [EditorÃ¢â‚¬â„¢s note: Since this interview, the conference has sold out and there is currently a wait list.] I think itÃ¢â‚¬â„¢ll be really fun. There is a lot of interest in it, and I think itÃ¢â‚¬â„¢ll be just a fun day.
Is there a focus to the content?
No, itÃ¢â‚¬â„¢s a Ruby conference, so we are going to try to pick a really interesting mix of topics. As the only one who has seen the proposals so far, I will say that we have a pretty good mix already, but it would be great if we got another 20-30 more.
I like RubyConf as a model in the sense that every time you go there are some talks that are really basic and down-and-dirty, like how to use this tool, or how to use this technique in code, something that you can go back to work the next week and actually just use it right away. And there are other talks that are totally obscure, as strange, theoretic ideas. These alternative implementation talks tend to be really tough and weird and cool, even though I donÃ¢â‚¬â„¢t understand all of it. And then, from time to time, you get Ã¢â‚¬â€œlike one year, there was a guy who talked about controlling underwater robots Ã¢â‚¬â€œwhich was cool! Not that IÃ¢â‚¬â„¢ll ever do underwater robots, but it was cool. Hopefully weÃ¢â‚¬â„¢ll be able to present that sort of mix.
IÃ¢â‚¬â„¢m excited about the idea of hosting outsiders; the thought of being able to give someone, who might otherwise be intimidated by NYC, a more gentle introduction. GoRuCo is going to be the biggest gathering of Ruby on Rails programmers in ever NYC Ã¢â‚¬â€œactually, it may actually be the biggest on the eastern seaboard. There was a RubyConf in Virginia in 2004, but that was pre-Rails, and it was a fairly small crowd.
So the point of it is to provide a place for people to keep meeting, to keep finding common interests, to make it easier to hire each other, start companies together, work on OS projects, blog to each other Ã¢â‚¬â€œjust to make it easier Ã¢â‚¬â€œto make it, like, less work for people to be working on these things together. And IÃ¢â‚¬â„¢ll be excited to see that.
Francis Hwang is an artist, writer, and software engineer. An active member of the Ruby community, he founded Ruby-NYC in 2003