mtnwestruby: Chad Fowler Keynote
16 March 2007
Background: Musician. Dropped out of music school to be a programmer.
Programming experience: Perl. Java Enterprise software. Now Ruby.
He's been organizing international Ruby conferences since 2000, even before he could write a decent Ruby program.
Ruby is at a dangerous crossroads. We need to act, as a community,
to avoid failure. How do we need to behave to remain relevant in the industry --
as programmers, and as a Ruby community? For so long, Ruby has been perceived
as a niche player. The community has been in the habit of fighting, and
defending against FUD. Once we start "winning", we continue those habits, and
new "converts" to Ruby pickup the same habits. We hear "Ruby doesn't perform
well", and we should say "not it doesn't". We hear "Ruby doesn't support
internationalization", and we should say "no, it doesn't".
If you're at this conference, you're a pioneer in the dynamic languages
community. In 2001, Matz was the only professional Ruby developer. In 2005,
that had changed because more people were employed to write Ruby code. We're
"winning" in the sense that we can use Ruby in the workplace. Sun and Microsoft
are hiring people to work on Ruby.
Ruby 2.0 has been vaporware for longer than Perl 6.
The Ruby community of 2006 and 2007 is a melting pot of backgrounds -- PHP,
.NET, ASP, 4th Dimension, J2EE, Rails, system admins, the agile community. The
tendency is to take a big community and to run it like a big company. The germs
(PHP programmers) are going to start coming into the community, and
the antibodies are going to start smashing them. There are some germs in the
community that do need to be cleansed. We need to figure out what those germs
are, although some germs we will never get rid of.
There are germs we must be exposed to in order to keep the community strong.
Metaphors influence the way we think about things. Americans think "arguing is war", and that shapes the way we respond to people in the community. However, not all cultures have that metaphor.
The book "Leading Revolution" by Gary Hamel is worth reading. It has nothing to do with programming. Things designed in Ivory Towers don't respond well to small evolutionary changes.
If we're trying to grow as a community, creating a new framework like Rails is a waste of time -- there are more interesting problems to solve.
We build systems to support people, and sometimes, geeks forget this fact, and become jerks.
Monkeys in India are brave and annoying when they're trying to steal food.
In Southern India, they're controlled by creating holes in the ground, with a larger space at the
bottom. The hole is just big enough for the monkey to slip his hand into, with
food at the bottom in the bigger space. The monkey wants the food, and puts his
hand in. Once he makes a fist by grabbing the food, he can't pull it out.
Someone comes along and clubs the monkey. The monkey doesn't let go of the food
because of value rigidity.
In the Ruby community, Chad hopes we are not like the monkey. We need to at
least be cognizant of the rigid values we have, and whether they're worth
holding onto. Do you identify yourself as a Ruby developer? Hopefully, you are
always reaching for something beyond what you are comfortable with -- perhaps
it's Erlang, Haskell, ocaml, etc. If you're comfortable, if you know the
answers, you aren't learning. Try to lead, but also try to be learning
Chad has done well in the Ruby community by doing the things that no one else
wants to do -- organizing Ruby conferences, bringing publicity to Ruby gems.