This post originated from an RSS feed registered with Ruby Buzz
by David Heinemeier Hansson.
Original Post: Where does 'extreme simplicity' come from?
Feed Title: Loud Thinking
Feed URL: http://feeds.feedburner.com/LoudThinking
Feed Description: All about the full-stack, web-framework Rails for Ruby and on putting it to good effect with Basecamp
With all this craze around web-frameworks these days, it seems that Zend has realized that they need to put the foot down and create The Official PHP framework. PHP does already have a fair number of frameworks, but none have really taken the lead and drawn a majority. Thus, the Zend Framework.
That in and of itself is not a terrible idea. With its prominent role in the PHP community, the Zend guys would probably stand a better chance than most of launching something to rally the troops. But of course its not unimportant how such a bid is conceived. And that's where my concern-o-meter is flashing.
They’re looking for that “extreme simplicity” that comes from a good review process, tons of testing, the inclusion of modues/features that most people use, and providing good, easy-to-use documentation for the entire project.
Hu?! This sounds like a fancy rewriting of design-by-committee. Or rather, design without cause. Which is the notion of setting out to create a framework through foresight. In my experience, it doesn't work.
And it sure isn't the way to archive "extreme simplicity". I've found that the only way to archive even mediocre simplicity is by solving real problems. In other words, frameworks are extractions. If they are anything else, it's usually.. well.. crap.
That's not to say that the Zend Framework designers can't pull off a miracle. Or that they don't superhuman talent and through shear wisdom and talent will be guided to "extreme simplicity" simply by thinking of what most people will use.
I would recommend that they would guide their development by something real, though. When your anchor is sample applications or imagined use cases, you usually end up optimizing for just that. Which more often than not is exactly the opposite of what is really needed when the rubber meets the road.