Ruby Programming

Summarized using AI

Keynote: ...then what?

Chad Fowler • March 16, 2007 • Earth

In this keynote speech titled "...then what?" delivered by Chad Fowler at the Mountain West Ruby Conference in 2007, the speaker reflects on the evolution of the Ruby programming community, addressing both its successes and its challenges ahead.

Key Points Discussed:

  • The Evolution of Ruby: Fowler recounts his long history with Ruby, starting in 2000, and highlights the growth of the community from its humble beginnings at the first International Ruby Conference with 40 attendees to larger regional events like Mountain West RubyConf.
  • Dangerous Crossroads: He emphasizes the precarious position the community finds itself in as it navigates from being a niche player to a more mainstream option in the software industry. The need to adapt and embrace change is crucial to avoid stagnation.
  • Cultural Identity Crisis: Fowler expresses concern that the Ruby community may uncritically defend its past rather than innovating. He argues that the community must avoid becoming rigid and should instead focus on embracing diverse insights from newcomers.
  • Perceived Success vs. Actual Winning: He revisits the famous quote by Gandhi, suggesting that even though Ruby may be perceived as having 'won', the real challenge is to define what winning means and not to settle into complacency.
  • Community Melting Pot: The influx of developers from various backgrounds, including PHP and Java, has enriched the Ruby community. Fowler alerts against the risk of losing Ruby's unique qualities as it opens to these new influences.
  • Call to Action: In closing, Fowler encourages community members to actively engage with the changes around them and to sustain the excitement of innovation and relevance in their work.

Conclusion:

Chad Fowler’s keynote serves as both a celebration of the Ruby community’s past victories and a cautionary tale about the dangers of stagnation. He urges attendees to find joy in innovation and to heed the lessons from their journey, emphasizing that continuous growth and openness to change are essential for ongoing relevance in the technology landscape.

Keynote: ...then what?
Chad Fowler • March 16, 2007 • Earth

Chad Fowler's Keynote at Mountain West Ruby Conference - 2007 - the first edition.

Help us caption & translate this video!

http://amara.org/v/FGfQ/

MountainWest RubyConf 2007

00:00:07.680 All right, I was really looking forward to hearing Pat's story about when we met in 2002 in Seattle, since it would have been new to everyone.
00:00:13.519 It's also funny that Pat was looking forward to hearing my talk based on what I told her about it.
00:00:21.600 When I told her about it, I didn't actually know what I was going to talk about to some extent, and I don't now.
00:00:27.039 That's why I don't have any slides because I don't want to be locked into some rigid structure that doesn’t connect.
00:00:39.920 Thank you.
00:00:49.280 I've been doing Ruby programming since about the year 2000, which is about the same time as most people who speak English.
00:00:55.280 Not all people were studying English, but most who do.
00:01:00.800 Since 2001, I have been co-organizing the International Ruby Conference.
00:01:11.360 So, I've been co-organizing the International Ruby Conference since 2001, which is why Pat thought we met at the conference in 2002.
00:01:18.240 However, in 2002 I was actually in India.
00:01:24.080 It's a long, complex, sordid story, but that was the one Ruby Conference that I missed.
00:01:30.560 So even though I've been organizing them since the beginning, when you have the conferences and always ask people to raise their hands if they've been to all of them, I have not been raising my hand since the first one.
00:01:37.360 Unfortunately.
00:01:43.280 I come from an enterprise Java background or, before that, I was a musician.
00:01:48.720 So I sort of just locked into this software development world.
00:01:54.159 This means I can't really teach most of you anything, especially during the implementers panel.
00:02:00.079 I don't know how to do that kind of thing.
00:02:05.759 I wish I did; it would be really exciting to be able to implement my own Ruby PM.
00:02:11.280 Instead, I can just sit next to them and say, 'Well, how would I have meant to array for you?' and frustrate you.
00:02:18.560 I dropped out of music school to become a programmer; I was a classical composer.
00:02:26.640 I sort of saw it as a natural direction to go after that.
00:02:32.319 I come to this conference with two perspectives to share.
00:02:38.879 I'm not really going to teach you how to do anything; I'm just going to raise a bunch of questions and discuss some things that scare me.
00:02:46.319 I feel like I am at a dangerous crossroads in my own career.
00:02:51.360 We, as a community, are at a very dangerous crossroads as well, and we need to act appropriately now to avoid failure.
00:02:59.440 The two perspectives that I have are: first, I'm a Ruby programmer.
00:03:05.280 I'm a part of Ruby Central Incorporated, which is the equivalent of the Girl Foundation or the Matthew Foundation for Ruby, started by David Black.
00:03:10.879 They promised to be the driving force behind the Ruby conferences.
00:03:16.800 We're slowly expanding our scope, trying to help foster conferences such as this, approval Summer of Code sponsorship, and drive advocacy and acceptance for the Ruby language.
00:03:23.920 I've been involved in the Ruby community since before I could write a disability program.
00:03:30.159 The other perspective is, as I mentioned, I lived in India.
00:03:35.440 While living there, I was actually trying to take your jobs and offshore and steal projects so that you would be unemployed.
00:03:40.799 It's not exactly true, but I started a software development center in India and tried to make that kind of offshore model work.
00:03:46.879 I learned a lot while I was there; I even wrote a book about the experience.
00:03:52.319 Not just of being in India, but about what it teaches us as software developers in the United States and Western Europe.
00:03:58.879 We need to behave so that we remain relevant in the industry.
00:04:04.640 Those are the two perspectives that I bring to you, coming from the Ruby community as a programmer, and as an individual living here in the United States.
00:04:10.799 From both perspectives, Greg Brown said earlier that we are at a special place.
00:04:10.799 Things are changing rapidly; they have already changed rapidly and continue to change.
00:04:20.000 The over-quoted Gandhi reference that comes to mind is, 'You could probably recite it with me because it's so overused'. First they ignore you, then they laugh at you, then they fight you, then you win.
00:04:26.080 People love to hear that whenever they're thinking of their own special little cause.
00:04:31.120 You know, the Linux community uses it, the open-source software community uses it, for all communities.
00:04:37.600 Oscar 2005 was kind of like an industry coming-of-age party for Ruby.
00:04:44.320 Someone in a keynote actually said, "You know, they use this like everyone does in those sorts of conferences," and everyone laughed and applauded.
00:04:49.759 To me, the interesting question now is: If people perceive us as having won, what does winning mean?
00:04:54.800 I'm going to go back a little bit in time to October 11, 2001, a month after September 11.
00:05:01.199 At the first International Ruby Conference, Dave Thomas delivered the opening talk.
00:05:07.759 He said something that was really impactful for everyone there.
00:05:14.400 He told all 39 or 40 of us at the first international Ruby Conference, 'All of you are pioneers.'
00:05:20.720 We were not only here in Ruby, but the whole dynamic language movement.
00:05:26.639 The fact that you all believe there's something better, you're all pioneers.
00:05:33.360 That's actually still kind of true today.
00:05:40.080 If you look at our numbers versus the J2EE world, many of them don't go to conferences unless their work makes them.
00:05:46.720 They're of course not interested in it, but there are many of them.
00:05:53.760 We still are pioneers; the International Ruby Conference had around 39 people, maybe 40.
00:06:00.960 They were from all over the globe.
00:06:06.400 I think about half of them had written books that I had read and enjoyed in the last six months before the conference.
00:06:12.240 With 39 people attending, no one was interested in sponsoring that conference.
00:06:19.360 I told Pat, it's amazing for this Mountain West Ruby Conference, because of the timing.
00:06:25.839 The team here has, I don't know, five times the sponsorship that RubyCon has ever had.
00:06:30.159 The real International Ruby Conference is the one that Max comes to and makes big announcements.
00:06:37.120 That's because things are continuing to progress even since October of last year.
00:06:44.000 It's amazing; the first conference we had 40 people, and here we are with over three times that number.
00:06:50.800 That's a regional event, you know, that's great.
00:06:55.680 That's sort of what winning is, right?
00:07:01.440 Winning is also this kind of feeling that you get.
00:07:07.920 We're not really measuring things like Ruby adoption in a very real number.
00:07:12.640 We have things like the Coyote Index that give some indicators, but all the indicators say that, unlike before, we are getting mentioned in the press.
00:07:18.640 In 2001, nobody was doing Ruby professionally, except for Mats, who was the only person at the International Ruby Conference.
00:07:24.240 All the way through 2004, there were maybe two people doing Ruby professionally at that conference.
00:07:30.080 Then, all of a sudden, in 2005, it was 50 people out of a room of 200.
00:07:37.119 Something happened between 2004 and 2005.
00:07:43.680 We were winning because of a specific framework and the marketing that came from that.
00:07:52.240 So yes, we're winning, but it doesn't mean we're winning the industry.
00:07:59.760 Winning means I have to go to work every day in my day job and do my Java stuff or my C# stuff, and then go home at night.
00:08:06.000 I do Ruby and wish every day that I was doing Ruby stuff.
00:08:13.120 Last time I worried about it, I had Microsoft companies like that starting to get in the game.
00:08:20.400 They're hiring people to work on Ruby and to think about Ruby.
00:08:25.760 The funny thing is that as soon as they do, we started.
00:08:31.040 Back in 2002, we were thinking, man, if we could just talk with Microsoft, if someone would be interested to help us drive this thing, the industry would see it.
00:08:38.239 Now, Microsoft is recruiting to do something.
00:08:44.160 Some idiot walked by the desk—I’m sorry if you’re in here now—but they walked by the desk and said, 'Oh cool, a Ruby conference! I didn’t know about this.'
00:08:49.120 'Maybe I should come in; I’m doing Ruby!'
00:08:54.480 They went, they looked at the program, and they saw the word Microsoft on the program.
00:09:01.200 There is a point where Microsoft's involvement means, to some extent, that we’ve won.
00:09:07.120 Back in 2002, a bunch of us that were involved in the community tried to contact ActiveState and get them to do something with Ruby.
00:09:14.320 Everyone thought it'd be great if they would make something like ActiveRuby like they did with Perl.
00:09:22.080 That had been a big success in the Windows community.
00:09:27.360 We couldn't get them to do anything with Ruby, so there was clearly a desire for this kind of stuff to happen, and now it's happening.
00:09:34.240 Now you have notes going around the country evangelizing Ruby to Java developers, even though that's not its agenda.
00:09:40.800 People are demoing and installing Ruby apps in J2B containers. Wonderful stuff!
00:09:46.800 So we can start doing Ruby whenever we like at our jobs.
00:09:53.600 The word 'win' means something kind of dangerous.
00:10:00.000 Of course, we’re still sort of in that fighting mode.
00:10:06.000 We're not just lying back and relaxing and saying, 'Okay, we've won!'
00:10:10.880 But probably some of us are.
00:10:18.560 The word 'win' implies that the game is over, and that's a dangerous thing.
00:10:23.520 That's dangerous for us as both a culture and a community and as individual software developers.
00:10:30.880 What I'm going to talk about tonight is how that's dangerous and some ways that I think we should come back from those dangers.
00:10:37.920 That come with having won.
00:10:43.360 As I said, I don't really have a solution to these problems.
00:10:50.640 What I really want to express is that I'm afraid, and I'm building a fault.
00:10:56.800 I'm going to provide you with my perspective on how we should move forward.
00:11:03.440 The biggest thing that comes to mind when I think about the Ruby community and the danger of where it stands right now is: for so long we've been a niche player.
00:11:09.760 We've been fighting to be perceived as relevant, much less actually adopted.
00:11:16.000 We are in a situation where people like us can happily program productively during the day.
00:11:22.080 When you spend all this time just fighting, the fear I have is that when you actually gain some traction and success,
00:11:28.000 your community culture continues to fight and fight.
00:11:34.880 You defensively defend yourself instead of embracing change.
00:11:41.440 You go from being pioneers as we think of ourselves now, as slightly smarter than the rest of the industry.
00:11:47.040 You pride yourselves on being a community of experts and pioneers, but if you push, what you'll end up doing is turning what used to be a very forward-thinking, change-friendly environment into a rigid institutional environment.
00:11:53.760 What I’ve observed is the arguments have remained the same since the year 2000, when we were talking about why you should use Ruby.
00:12:03.760 We say some of the same things now.
00:12:10.640 What’s really telling is that not only did we say them, but the people who started using Ruby from C#, PHP, or Java are saying the exact same things that were said in 2000.
00:12:17.440 This preoccupation with fighting has become built into our culture.
00:12:23.840 We view arguments and discourse as an act of war.
00:12:30.560 We close our ears and minds as we discuss alternatives.
00:12:36.640 So, the first step I think is if you're of that mindset, you must stop thinking in terms of defending yourself.
00:12:43.040 Dave Thomas did a keynote at RailsConf Euro.
00:12:49.600 He talked about fun and compared the software industry's tactics toward forward progress to that of terrorists.
00:12:55.200 We are currently reacting to that industry and the terrorists within it.
00:13:01.680 The terrorism is seen in terms of whether things scale or if they haven’t been proven.
00:13:07.360 Now we can back it up with confidence that does not have to be experimental.
00:13:15.680 We have these patterns we like to mock about the conversations.
00:13:22.000 Do they scale? It doesn’t really perform; the answer is sort of no, not really.
00:13:28.320 Compare it to Java or C# running on CLR, it really doesn’t perform well.
00:13:35.680 But is it good enough as a trade-off? Certainly, you spend less development time because machines can scale.
00:13:43.320 Programmers can't, they haven’t really changed much in the last many years.
00:13:49.520 So using a tool like Ruby is a good trade-off because CPU cycles are cheap, but programmers aren’t.
00:13:56.640 We say that so many times.
00:14:04.000 The first time you hear it, you think, 'Oh that’s clever' and it sounds right, just like things that don't scale.”},{
00:14:12.000 We say these things without thinking.
00:14:17.920 But we must start uncovering the challenges right now.
00:14:23.120 Things that we’ve won shouldn’t be covered up. If we don’t deal with them, we won’t be able to move forward.
00:14:27.760 Winning means we have only kind of taken jobs away from programmers.
00:14:32.240 Paul Graham mentions it because it’s what he believes. It’s a blessing and a curse.
00:14:38.720 There are many jobs that exist today, and more people started to get involved.
00:14:45.040 Of course, that’s a rash generalization, but offshoring jobs is a great thing.
00:14:51.680 If you try to offer the right job, it just bounces right back.
00:14:58.240 If you try to offshore the right job and it sticks, why did you do it anyway? It’s hard.
00:15:04.320 So anyway, the fascinating thing about the Ruby community today.
00:15:09.760 In fact, we can hop around. Please interject if you have a question.
00:15:16.40 The Ruby community today, unlike back in 2000, is a very extreme melting pot of language communities.
00:15:23.680 The most obvious example is the Rails community.
00:15:27.680 What does the Rails community need?
00:15:31.920 From one perspective, it’s the people who started doing Ruby because of Rails.
00:15:37.720 A lot of them don’t know that Ruby is a different language than Rails.
00:15:42.080 That’s partially due to the naming issues.
00:15:49.120 You have this melting pot of communities from PHP and .NET, ASP programmers, J2EE programmers, and of course, all sorts of languages.
00:15:55.120 You have entrenched free software foundation types and system administrators.
00:16:00.320 When you think of those two, you have agile community as well.
00:16:06.560 They are farther ahead, for the most part, just a bunch of crazy religious zealots ringing their own alarms.
00:16:12.960 You start adding all of these things up, and you have a group of really smart people.
00:16:21.960 Back at the first International Ruby Conference, we had 40 people.
00:16:27.680 We were talking about language and imagination.
00:16:32.400 We had David Simmons, who worked on a small script that was just a badass VM language designer.
00:16:38.400 There were people like him setting the tone for the conference and community.
00:16:42.080 And then these PHP people started leaking in.
00:16:49.680 And I thought, 'How could they do this for a living?'
00:16:54.080 They started creating all kinds of nasty code, and they did.
00:17:01.040 But this person, look at them—they start looking at our code.
00:17:06.320 It's like they're just throwing it away!
00:17:12.960 They come in with these different backgrounds that are just wildly different.
00:17:19.200 We must ensure that the community doesn’t start destroying the best parts.
00:17:25.600 The terrifying thing about this melting pot is that it’s growing; believe me, that’s a good thing.
00:17:32.000 We have not been a melting pot; we have focused on being a big bureaucracy.
00:17:38.400 We see ourselves as a whole bunch of smart people and hope to keep it that way.
00:17:46.400 What’s next is how we continue some growth across the language.
00:17:53.200 What happens in Ruby is pretty simple: we pride ourselves on being community experts and forward thinkers.
00:17:59.920 But what happens if we continue to fight? The community tips to a rigid institution.
00:18:06.720 Since becoming pioneers, what if we turn back into the systems of yesteryear?
00:18:14.000 Most of you haven’t seen this for quite a while but understand that said.
00:18:20.960 What I am truly scared of is that the Ruby community has become like the food in the hole for me.
00:18:27.680 I start to build my life using Ruby, and I can’t let go of the food.
00:18:34.240 But the point is, we may stumble and further build ourselves into an institution.
00:18:41.880 So after standing here, thinking I have knowledge, I become obsessed with that knowledge until it blinds me.
00:18:49.440 What I'm worried about is that with winnings comes fears.
00:18:56.560 In summary, I say look for ways, both inside and outside the community, to experience the same exciting feeling as often as possible.
00:19:03.520 So lastly, if I can encourage all of you, take this leap!
00:19:11.360 Thank you for your attention, and I hope to meet you all!
Explore all talks recorded at MountainWest RubyConf 2007
+12