The case against high-level components

Ruby on Railsの作者David Heinemeier Hanssonによるweblog Loud Thinking: Broadcasting Brainの最近のエントリです。本文もコメントも興味深く読めました。


One of the clear goals for Rails from the start was to stay at the infrastructure layer. I didn't want Rails to succumb to the lure of high-level components like login systems, forums, content management, and the likes.

(high-level componentsの誘惑に負けずにinfrastructure layerに留まることがRailsの信条。)

On the surface, the dream of components sounds great and cursory overviews of new projects also appear to be "a perfect fit". But they never are. Reuse is hard. Parameterized reuse is even harder. And in the end, you're left with all the complexity of a swiss army knife that does everything for no one at great cost and pain.

(Reuseは難しい。Parameterized reuseはなおさら難しい。しまいには誰も望まないswiss army knifeになるだけ。)

ちなみに、コメント欄で紹介されている文章 Where Smalltalk Went Wrong 2 と、その前のWhere Smalltalk Went Wrong も面白そうです(が、ちょっと読んでみると、難しい...)。