I'm probably going to regret writing this.
From now on, any criticism I make of a software project will include patches to fix the behavior I don't like.
This is, in large part, to make sure my mouth doesn't go where my code can't follow. I'd like to avoid that. It's grandstanding, and it makes blind criticism too easy and seductive. And, I think, it's more than a little dismissive of the people who are writing the code that I'm critiquing, and that's not the kind of commentator that I'm trying to be.
In other words, talk is cheap. But seeing as I'd like to keep talking, I'm going to try to include substance - and by substance, I mean code - with my words.
I'm going to admit up front that I'm going break this rule a lot. For example, I doubt I could do it for any non-Python project. But where possible, I'd like to stick to it, and when I can't, I'll be pointing that out explicitly.
Comments
31 spam comments omitted.
I am no longer accepting new comments.
Ken Kuhlman
#1890, 2008-02-12T18:37:17Z
It's a shame your taking this position. The python web community has a shortage of good critics that are versed in multiple frameworks; you're one of them, and it's sad to see you muzzle yourself.
I wonder what would you say to a politico that promised they wouldn't speak out on an issue unless they'd already written a bill about it? Personally, I'd remind them that a good bill is the result of a discussion, not the beginning and end of one.
To keep this brief, let me just say that being a good critic doesn't mean that you're always right... you're going to take a few punches now and then when you're wrong (and sometimes when you're right but hit a nerve.) But if you're on to something, it'll kick off a useful discussion anyway. In a nice bit of irony (karmic return?), I'm able to reiterate this point with a quote from a post from Malcolm Tredinnick that's a remote spin-off of your "conceptual integrity" critique: "That's life in open source framework development land. Don't take it too personally, don't hold grudges (being alternately right and wrong is easy; trust me, I've got experience there) and don't stop experimenting and learning." http://www.pointy-stick.com/blog/2008/02/12/django-tip-application-level-context-processors/
So, suck it up & get back up on that horse! Just remember to be a little circumspect -- after all, there's a lot of smart people out there who have spent a significant portion of their lives building these tools we're using -- but don't be so circumspect that you become neurotic. To bastardize a quote from Hamlet, don't let conscience make a coward of you.
Code may be king, but criticism is it's most valuable adviser.
-ken
PS: Please take a minute to think about the message your sending your visitors by relegating their comments to a sidebar. Blech.
Adam Gomaa
#1918, 2008-02-13T12:58:40Z
Points well taken, Ken... don't think this means I'm going to pipe down :) It's mostly a way to make myself read and grok more of other people's code.
But you're right about the comments, they even annoy me now. I've also been told enough times that the design of this site is, um, awful :). Definitely things I'll be working on, hopefully this weekend, but I hate to make a promise I won't be able to keep in the not unlikely event that something comes up with a higher priority. But yeah, it's on my to-do list. Actually, making a to-do list is on my to-do list... but it'll be on that to-do list, once I've made it.