Thursday, April 30, 2009

Stand and Be Counted

In the spirit of Nick Sieger's short statement on the recent uproar over Matt Aimonetti's "pr0n star" talk, I'm posting my one and only blog response to the whole thing.

Unlike Nick, I too often have used this blog as a soapbox. And too often I've ground my personal axe against projects that may or may not have deserved it. I'm human, I'm passionate and proud of my work, and I'm defensive of what we've accomplished, so I don't think this is surprising. I also see the same passion and pride in the Ruby community at large, and it's why I'm much more interested in attending Ruby conferences than Java conferences, where many attendees just seem to be going through the motions. And I know I've crossed a line at times, making or taking things too personal, and hopefully I've apologized or corrected myself whenever that's happened. If not, mea culpa.

But there's a disturbing trend in the Ruby community I haven't had to deal with since high school: in preference to open inclusion, more and more Rubyists seem to choose exclusivity.

This recent firestorm has continued in large part, I believe, because of the poor initial response by folks involved. Rather than recognize that there are people with different views, taking offense at different ideas and images, some decided to say "fuck you, this is who I am" and further alienate those people. I certainly don't expect we as passionate individuals won't commit occasional faux pas, especially when trying to be funny or provocative and especially when coming from different backgrounds that may be more or less accepting of certain behaviors. But to claim no responsibility for an obvious mistake, indeed to claim it's somehow the fault of the offended, or American sensibility, or political correctness...well that's just sophomoric.

I think to some extent we can understand (but not excuse) such behavior by realizing that the Ruby (or perhaps the Rails) community is largely a very *young* community. That's a large part of why this community is so passionate, why they're so committed to their ideals, why they're so opinionated, why they're so much more fun to hang out with than many 30-year programmers from other communities who've had the life sucked out of them. It's also a reason so many in the Ruby (or perhaps the Rails) community seem to act like they're in high school, forming cliques, sitting at their own tables, snubbing the new kids or the weird kids or anyone they perceive as "trying to be cool."

Have you been invited to any exclusive Ruby communities? I've been invited to a couple, and without exception I've found the idea offensive every time. In some cities, there are now multiple tiers of Ruby group: one for the proles, where anyone is welcome and everyone is either new to Ruby, a little weird, or both; and then perhaps one or two levels of more "exclusive" groups, usually more "advanced" and sometimes invite-only but generally exclusionary in some way.

There's also a technical "coolness" exclusivity many projects have had to cope with. Folks working on JRuby and IronRuby, for example, have had to deal with perceptions that they're either less "cool" because of their platform of choice or at least somehow less "Ruby" because they're not following the same golden path everyone else follows. Or perhaps their employers are out to take over Ruby, or they're going to infect Ruby with a bunch more "new" people who don't "get it". All the while the folks that use and work on these projects are working just as hard as anyone else to bring Ruby to the world, staying true to what makes Ruby special, and largely going against the grain in their original communities as well. Being snubbed, mocked, or attacked is often their reward.

You start to see a pattern here, yes?

So let's spell it out. I like the Ruby community because it's filled with people who love playing with new technology, without biases and prejudices getting in the way. My closest friends in the community are people like me, who find it repugnant that being opinionated has been too often equated with being rude and boorish, exclusionary and sophomoric, or simply mean. We are all here because of our love of technology, all here because we didn't feel like we fit in other places that weren't so passionate about beautiful code and fresh ideas. We are all here because we don't care if you're male or female, religious or irreligious, young or old, experienced or inexperienced, beautiful or plain, conservative or liberal, tall or short, fat or thin, foreign or domestic, gay or straight, black or white, or any grey areas in-between. We are all here because we love that more and more people like us join the community every day...the same people some of us immediately judge and box into their own subcool subgroups.

I don't want to join your damn clique. I don't think it's ok to set people aside or treat them like dirt because they don't believe what you believe or because they have their own way of thinking and acting or because they're not as worldly and mature and oh-so-smug as you are. I don't believe in "rock stars" and I don't believe that dubious title gives anyone the right to be an asshole to others or to have free reign to act any way they choose. I don't care what kind of car you drive, what house you live in, or what clothes you wear...and I sure as hell don't care how many people follow you on Twitter.

What I do care about is whether you're interested in sitting down and hacking out some code, looking at new projects with an open mind, helping someone new (maybe me) improve their skills, being part of something larger than yourself. If you promise not to treat me like a weirdo or a rock star, I promise to talk openly about your ideas, to show you the heart and soul of my code, and to freely share my matter who you are. I hope you'll attend my presentations and/or try out my projects, and in exchange I'll try to do the same the same for you. I hope you'll walk up to me at conferences and tell me about whatever "crazy" or "stupid" idea you have, and I guarantee to listen since it's probably not as crazy or stupid as you think. And I expect you to do the same for everyone else in the community and not treat me or anyone else any differently.

Now, let's move forward and get back to hacking and having fun!


Anonymous said...


Unknown said...

Great post, I really enjoyed it. I stay(ed) away from a lot of Ruby users groups due to this exclusivity and bitchyness that sometimes rears it's ugly head. Bring on more friendly folks who want to hack and work on great ideas ...

Chrisl said...


johnrellis said...

Good Stuff!! Being picky about who you want using "your" technology is the most stupid thing I have ever heard!! Grow up guys! :)

Mike Lee said...

Great post. I fell acidently into the Ruby world (and so.. soon after, into Rails) simply because I said yes to a collegue who wanted us to use Ruby on our project in 2005. That moment of "love at first sight" comes to all people in different ways. I was hooked.. not by coolness, not by elitism, I was hooked on getting more done in less time... I was hooked on understanding OO better though Ruby eyes, I would also invite new-blood to enjoy Ruby (in all her many coats and colours) just for what RUBY IS .. a robustly enjoyable solution to a current problem.

knowtheory said...
This comment has been removed by the author.
knowtheory said...

I think it's really important to point out that there are some fantastic, open and welcoming Ruby Brigades out there.

The Columbus, Ohio Ruby Brigade, with which i am most familiar invites all sorts of people to their meetings, including people who know nothing about Ruby (.NET and Java users from other groups in the Columbus area).

Dialogue and engagement is the only way you can communicate what you are doing. We're in OPEN source software. A rising tide lifts all boats. :)

I also think it's important that we do more than simply stand up and speak out. We must each stand up and act to make our community a better place.

Joe Corcoran said...

Really excellent post.

Anonymous said...

Great post, Charles! Clearly the best I've read on this subject.

Unknown said...

Great post,

All I have to say is open source should mean an open community. Sad to hear this is not the case in the Ruby community. Very glad to hear that some people are doing something about it :) This post is a very good start.

Unknown said...

Reminds me of the article by CS Lewis, The Inner Circle.

Praki Prakash said...

Well put!

Peter Hickman said...

Part of the problem, and it is in no way exclusive to Ruby/Rails, is that people want in but lack the skill and make up for this by being 'passionate'.

Trouble is that when you have a room full of people like this then it becomes almost impossible to talk about programming because people only want to talk about Ruby.

There is more to programming than programming languages (if that doesn't get me lynched I don't know what will :) )

Charles Oliver Nutter said...

Joshua: I think you mean "The Inner Ring", which I had not read before. Very timely and important advice, thank you for pointing it out.

Unknown said...

Hear Hear.

Unknown said...

Great post! I've been thinking about this issue in the community. Personally, I don't understand why all of this is happening.

I also think discussing projects with an open mind goes a long way to making this community better. In our era, no one knows everything, everyone has bits of information, it's scattered, an open-minded dialogue facilitates finding the best solution.

Being opinionated is fine in my view, but I don't think it's mutually exclusive with having an open-mind. I consider myself pretty opinionated, but context is everything. A solution is probably not the best in every context and that's where the open-mindedness comes in, you need to consider alternatives, all the time.

Furthermore, a major step in being more open-minded is to do extensive research, know your stuff and know why you've chosen some solution over another, if a new solution is proposed by a peer, receive it with curiosity and explore. You never know what you might discover, in addition to the invaluable new knowledge it should bring you.

Anyways, very good article, maybe we need a google group for open-minded people to discuss projects and solutions openly? Just kidding. Or am I? :)

ab5tract said...

Once again Charles you've articulated it to a tee. You are totally correct that the furor resulted largely from the reactions of a few, followed by similar, and often much more virulent, reactions of many. Thank you for pointing this out because it admitting this seems to be a problem for some people. Anyhow, it is a testament to the Ruby community that instead of going silently into our little worlds like DHH and many others believed we would, a significant portion of this community has stood up and rejected immaturity in a public digestion of nerd sexism. It's out in the open now, and I hope it will stay that way.

This has been brewing for ten days, and I know that I am burnt out on it after only knowing it for three. But if this is indicative of the kinds of blogs we will see today, then at last it will feel like those of who were summarily dismissed in the beginning are vindicated in some way. It's not the end, because we have a long ways to go, but at least it feels like all the time and energy spent writing on this has actually gone somewhere.

Keep leaning, all.

Ben L. said...

Agreed. Completely.

One of the great things about this incident is that it highlights the great people like you in the community.

Similar to Matthew in the above comment, I'm another Ruby/Rails/Merb developer (for 3 years, in Chicago, too) who has never attended an event, conference or group (beyond the people and companies with whom I work) because of the attitude of the "leadership." I'm guessing we aren't the only ones who have avoided community involvement because of them.

I'm holding on to hope, though. Thanks to you, _why and others, I feel like I'm seeing the first glimpses of it changing for the better.

So, thank you.

Alex Kane said...

I give this post two thumbs up

Jilles said...

Absolutely right. As far as rock stars are concerned in the wider Ruby community, I consider you to be one of the few. Happy hacking

Unknown said...

Charles, awesome post! I run a Ruby group in Cleveland and currently we cater to the new devs, and I'm trying to find a way to keep the experienced people interested without being exclusionary. Thanks for the post, it will help me when thinking about meetings for our group.

Unknown said...

As Groucho Marx said, "I would not want to belong to a club that would have me as a member."

I enjoy the work I do in the Ruby world, but I've worked in dozens of other programming and scripting languages and each has their time and place (some of them may be the past and hell, but certainly not all).

I feel much the same about Ruby as I do about politics...I respect other peoples' right to a differing opinion, and embrace those opinions, as some of the people of a differing mind are smart and have good ideas. In fact, sometimes their arguments may change and/or open my mind to something, resulting in an improvement in my own quality of life. Thus, open dialogue is not only welcomed in my world, but encouraged.

Kudos for a well-articulated point. If only more people saw the technology landscape from 10,000 feet, instead of the driver's seat of their own technology.

Michael Easter said...
This comment has been removed by the author.
Michael Easter said...

Well-said. I knew someone would show some leadership on this. It is no surprise to me that Charles is part of it.

Here is my (sincere) response to you and Nick, with as much irony as I can muster.

Arnon Moscona said...

Right on every point!

This extends to very serious issues in the Ruby language itself and especially the Rails framework. The community is not only anti anything not Ruby, there is also a very strong streak of anti anything that's not Linux, and in particular to Windows.

As a result, the rails people basically refuse to address serious performance problems that exist with the framework. On Windows, rails is super-slow. The community generally flatly blames Windows itself and refuses to acknowledge that the performance difference cannot be accounted for by Windows. Any benchmark you care to use shows Windows to be extremely close to Linux on almost every aspect (and can seriously beat Linux in network applications if you use Windows-specific advanced socket APIs). Rails performs easily an order of magnitude slower on Windows (and even worse on cygwin), but it seems that no one wants to address the problem. This leaves a huge portion of the servers in the world out of the running.
Luckily we have Grails. But really, the Rails people would do themselves a great service if they took Windows (and cygwin) much more seriously. Not only they will double their potential audience, but in the process they will improve the Linux version as well as I am positive that in searching for the performance problems in Windows or cygwin they will find quite a few tuning opportunities that apply across the board.

Sadly, it's not likely to happen soon, and the palpable hostility in the community is likely to continue to be self-defeating.

BTW - I am a full time Ruby programmer on Linux, but I spent quite some time on Jave, Groovy, and Grails on Windows and Linux.

On that same note, it would be nice if we could have as smooth an integration between Ruby and Java as exists in Groovy. At least in JRuby. That is much more likely to happen, luckily.

Anonymous said...

Arnon: I would avoid cygwin, it's full of performance problems and it doesn't even support ipv6 for sockets. (The last time I checked)

DHH said...

Fuck You Nutter!

I know this is aimed at me. Why don't you stop hiding behind pretense and just call me out. I'll take you down JRuby Boy!

(just kidding)

Anonymous said...

It's totally a thing. I hate to drop the kumbaya for a moment, but there's a lot of knife twisters in programming circles.

My analysis of the situation is that development, like politics, has this bizarre tendency to attract a lot of sociopaths. They love to try to out e-penis each other and sit at their special table and stuff like that. I'm often the youngest person in the room, and it's kindof sad to see grown men several years older than you acting like pack animals (I hate to compare them to children, who are far more open minded and spirited). These days I show up every blue moon to say hi to the remaining good hearted people (there's a lot of them thankfully) and then disappear into the wilderness in search of more people worth knowing.

I recall a time when a developer I thought was a nice person conspired to get me fired from a job (the first and only time I've ever been fired from anything). I backed him up through the whole problematic project and then he turned on me. Personal feelings aside, at the time I was helping a friend pay his medical bills from a bad accident (ask me how broken our healthcare system is, and I'll give you an earful), and I had to scramble to find new work to continue helping him out. Frankly, I still have trouble trusting developers because of it. Guy still shows up from time to time and I just pretend he isn't there. What else am I supposed to do?

It's actually pretty easy to tell the good from the bad, assuming you're not a psychopath. The good enjoy your presence, the bad tolerate you out of politeness. For newcomers to this system, you'll initially think "what the hell did I do to deserve this"? The answer is nothing. Sociopaths only care about you if they think they can get something out of it, otherwise they ignore you.

Honestly though, I've been around the block, and you eventually see this with every programming group. It's one of the reasons these groups don't last more than a few years before dieing out. I have higher hopes for the survivability of the Ruby scene, but who knows. Scenes, like empires, ebb and flow. It's just the way of things I suppose. Until somebody comes up with something better than Ruby though, I'm sticking around. Even if not so publicly anymore.

Vita Rara said...

Well spoken.

Mark Menard