The problem with the Ruby on Rails community isn’t simply sexism, unprofessionalism, or ghetto-ism, but that Rails is, at its core, a culture which values individual ego more than community. David and his posse have purposefully encouraged a tradition of edginess, individual expression, one-upmanship, and disregard for such fluffy, fake egalitarian notions as consensus, inclusion and good manners. It is expressed in the take-it-or-leave-it, I-don’t-owe-you-anything objectivism that guides Rails framework development and even many of the businesses built on it. The result is a community which collaborates largely by aggressive competition and fierce meritocracy.
To be clear, I use Ruby on Rails for this website and several others. A Rails hater, I am not. However, technical merits aside, the culture of an open source community influences the character of those attracted to it and consequently who I work with, hire, train or sell to. Thus I care to some degree what the public perception of the technology is.
But beyond that, I have spent the last six years as a contributor to projects in the Apache Software Foundation and the differences between the Apache culture and the Rails culture astound me. Apache, like Rails, is a strict meritocracy, but I believe that may be where the similarities end. There’s nothing wrong with giving credit where credit is due, but the Apache philosophy asserts that collaborative peer development trumps rockstars. Rockstars are an anathema to the ASF culture. In the long run, a large, diverse community of contributors provides a stability and quality that cannot be matched by a benevolent dictator who may face conflicting interests, may be unable to scale with the community, or who might murder his wife.
Cultures which value diversity and collaboration over individual ego are required to cultivate an enticing environment. It’s difficult to attract a wide range of contributors if the environment is constantly abrasive. This is why you’ll find Apache members spouting off about the importance of consensus, inclusion, and equality amongst peers. We’ll even go so far as to suggest community over code. Perhaps we must do so simply because such virtues are not necessarily in our nature. Open source developers tend to be an ego-driven, strong minded, smart-ass bunch.
If it’s unsurprising that a community of rockstars would gravitate to a hip tool like git, which favors individual forks, compared to a staid tool like subversion, which forces developers to work together in a centralized repository, then it should be equally unsurprising that the rockstars don’t care that they offend or drive others away. Their culture doesn’t value building a community. If it happens, great. But they aren’t doing it for you or anyone else. This is a community of ones.
That may work well for David and the Rails community for now. And they seem willing to accept the consequences of being douchebags. But I hope, for the sake of a technology I enjoy working with, that the community matures. Because if it doesn’t, a pack of individuals will not stand the test of time and David may just get his wish of writing code for just himself.
Commentary