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!