H&P: What you can't say
[[posterous-content:oBGotzwudxstbsyyhfrG]]I recently read Paul Graham's Hackers and Painters (a collection of essays from his site, conveniently gathered into a single hardbound "book." Genius!), and several of the pieces resonated with me. Granted, there were also some pieces that I found completely wrong-headed, but oftentimes worthwhile books have those bits as well as the good ones.... One of the essays I found most interesting was "What You Can't Say," the main point of which is that we should challenge conventional wisdom, to state unpopular truths. The bulk of the essay is dedicated to determining exactly what those conventional wisdom and unpopular truths are – taboos, things you get in trouble for stating, heresies, etc. PG's examples are almost entirely social in nature – pornography filters, hate speech, etc. There's a clear parallel in the development world, and there are great examples of people who've done just that and had great success. We're seeing people question tradition and make dramatic progress daily now, with things like alternative databases (why should we store every domain relationally?), Seaside (why must web applications be stateless?), and more. Ironically, one of the earliest arguments for Rails was that it valued convention over configuration – and that itself was a questioning of conventional wisdom. I think that PG is correct in saying that these practices (stating unpopular opinions, etc.) have value. What's essential, however, is that the people who are questioning conventional wisdom actually do the work to show where their alternatives are better. It's one thing to point out that relational databases suck for certain domains; it's another thing entirely to create a database engine that meets the need. So: go ahead and support the fringe, rail against the mainstream, do something taboo – but do the work, too.