Ian Bicking: the old part of his blog

Friendship and hand holding

Like Eric Burke (via) I read Martin Fowler's RubyPeople page and was similarly miffed by the criticism of Python's friendliness (and based on hearsay at that).

Eric makes a very good point: Ruby people aren't as nice as bunny rabbits. The obvious corollary is that raising bunny rabbits is better for the spirit than programming Ruby.

Eric's other conclusion is that everyone thinks they themselves are friendly.

But to be fair, some communities aren't that friendly. I'm sure most Perl people are nice -- all the one's I've met are -- but some of their forums (mailing lists, newsgroups, etc) can be a bit on the mean side. And they recognize this. That's really something in the nature of the specific communities and forums, not necessarily the individuals. (And sometimes it's just a reflection of the medium -- large IRC channels seem to breed meanness.)

Or another instance -- PHP isn't very monolithic as a community, but it seems like internally to many PHP projects there can be a lot of strife, moreso than I see in other languages. I don't know any language with as many forked projects as PHP, and each of those is usually the result of some social breakdown. Something is going on there.

And at times people on comp.lang.python have had bits of soul-searching about it becoming less friendly. I think that really has happened -- the group isn't as friendly as it once was. The best explanation I've seen is donors' fatigue. The community changes as it becomes bigger and older, the weight of past decisions becomes heavier, and as the original core community moves on. How many 'bots are left in comp.lang.python these days?

Now I'm not saying comp.lang.python is a mean-spirited place. But Python has calcified in certain ways that Ruby has not. Just like a child is more flexible than an adult, the Ruby community is more flexible than the Python community. I think there's more open space in Ruby than Python, there's more openness to some new ideas, there's more acceptance of the opinion of outsiders. The barriers to contribution are smaller. Backward compatibility? Not as big a deal with Ruby. Add new syntax? Suggestions along those lines won't be dismissed for Python, but all new syntax is met with extreme suspicion; all the moreso if you aren't aware of past conversations on the matter. And there are lots of past conversions on just about any new syntax you'll think of -- which makes it hard to jump in and contribute ideas on that level. So I suspect you'll get a more friendly reaction from Rubyists on syntax. But then, the cutting edge of Python hasn't been the core language for a long time (by design).

So I don't think it's wrong to think about these things and compare. I think it's also worth recognizing slip, and trying to rectify it (though I'm not pointing out anything useful on that regard here; just noting that such criticism could usefully exist)

Created 01 Nov '05


Not directly related, but I am somehow reminded of Andy Lester's (lightning) talk titled Geek Culture Considered Harmful [1].

[1] http://www.petdance.com/perl/geek-culture/

# Jarno Virtanen

It's not just age, I think: it's the fact that the stakes are higher. Every change to Python affects a lot more code that people depend on than changes to Ruby. Another result of Python being older is that people have begun to recognize (some of) the bad ideas, and can be a bit terse in their responses to the N+1th proposal something shot down N times already. A third factor (and, in my experience with #python, the primary reason large IRC channels breed meanness) is the conflict between people who want to understand the new guy's motivations and desires, try to guide him to a workable solution, and refuse to help him shoot himself in the foot, and the people who see no problem in helping them aim straight down and blast away, so to speak. In a larger community, there's less room or time for persuasion and argument in either direction.

So, yes, as a community grows it becomes less tolerant of certain things. The alternative, so far as I can tell, is for the community to fragment and waste time pursuing each faction's agenda (See Scheme for a good example). The important thing for contributors is to avoid burning out; if you've had a certain conversation a hundred times, the hundred and first can tempt one to short-temperedness quickly :) On the other hand, if being more friendly means accomodating people with screamingly bad ideas, like willy-nilly syntax changes, or ruby's "safe" (I searched Google for 'ruby safe' to see if it is really as bad as I remembered; all I found were security advisories, so I'm guessing "yes"), then I am in favor of unfriendliness.

# Allen Short

Noone even answers my questions anymore on that mailing list :-(

# anonymous

Sorry to hear that anonymous! I've had questionms not answered myself - but most of the time, they have been, fast and in helpful manner, even if sometime the fatherly tone smarts my ego...

# jmdeschamps