Conversations with Erich Gamma

Artima has another great interview series, this time with Erich Gamma. You know, Erich Gamma: Gang of Four, JUnit, Eclipse. As you might expect from such a notable developer, it's full of great advice. Like this section on avoiding frameworkitis:

This is a companion discussion topic for the original blog entry at:

“The bigger the framework becomes, the greater the chances that it will want to do too much, the bigger the learning curves become, and the more difficult it becomes to maintain it.”

Maintain it? Does Erich mean maintain the framework in context with some software system?

I agree that a large framework can be cumbersome, but a well architected framework can small when it needs to. For example, a lot of developers would agree that the .net framework is a lot of stuff. But within all that stuff (like all the stream classes), is a base class (in my case the Stream class) that will provide you with the most flexibility.

It’s like a painter complaining about too many premixed colors, that there should only exist primary colors and that everything else is up to the painter to mix.

I agree that great things can be done with little, but it is the job of the developer to define his or her “little.” Narrowing the scope of a framework broadens the flexibility of a project while allowing for a fallback.

I agree with Erich after using frameworks for
3 years i’ve learned how restrictive they can be.
Recently i’ve gone back to using the core httpservlet api and enjoyed it’s flexibilty