[development] module duplication in Drupal contrib

Aaron Winborn winborn at advomatic.com
Wed Mar 19 18:48:50 UTC 2008

I believe that ugly, chaotic mess of multiple contributed modules 
replicating functionality is a wonderful thing. It is one of the many 
wonderful things that attracted me to Open Source, and specifically to 
Drupal. It encourages innovation. So what if 90% of the modules 
developed might be labeled as duplicate, poorly maintained, junk, or 
what have you. It's that wilderness that encourages the 10% to thrive.

Related to this is the cry I've heard over the past few years for 
support for multimedia in Core.

No, I say! Keep Core to its bare bone structure. I want 50 different 
ways to display an image! If the Image module had been in core, there 
would have been less incentive to create alternatives. Imagine Drupal 
for a moment if Flexinode had been put in Core.

When we stop the creative flow of contributed modules, we are 
effectively making contributed Core. "You can't make that image handler 
that does it slightly differently, because there's already an image 
handler that does it well enough. So what if your use case is slightly 
different? Write a patch. Or force your site to work out of the box."

We discourage module development when we tell people not to build module 
Y, because it already exists in module X. Yes, we end up with modules D, 
E, and G that do similar things, but as has been pointed out, they might 
be slightly different use cases. Also, some developers might have a 
different vision than others, and we nip that in the bud if we tell them 
not to bother, since it's already been done, or if we stifle their 
creativity by telling them to build a patch that ends up not getting 
accepted because the maintainer doesn't like the feature.

If it is a real problem for users, then restructure the project pages to 
make it easier to sort. Or create a third branch: Core, Contributed, and 
Experimental/Universal or something. Whatever you do, don't cut off the 
wellspring of creativity and innovation that makes Drupal such an 
amazing beast.

Enough rant. Back to work.

Aaron Winborn

More information about the development mailing list