Is an Open Source effort transferable?
In my previous entry I talked about Wicket, a cool Java web framework (I can't stress that enough it seems :). As I was writing my praises I was almost certain someone would raise the old and annoying subject of duplicate effort. It turns out that the very first post fulfilled my expectations.
In the case of Wicket, the point made by a some readers here was that Wicket's guys would better work on an existing framework like Tapestry instead of "reinventing the wheel".
First, creating a new and similar to another Open Source project is not reinventing the wheel. No matter how close two projects can be they'll never be exactly the same and they won't match the same requirements and goals from a user's perspective and from developers point of view. Don't think of wheels, but of tires. There are a lot of different sorts of car tires nowaday because they all suit a particular need. Every winter in France we change the tires on my dad's car to put snow tires. Why don't we complain about that and demand good tires for both steep and snowy roads as well as dry and hot freeways? Because that's not what you really want, you want a set of tires very good at one thing instead of clumsy at many purpose.
And I know what I'm talking about since I spent 5 years working on Jext, a free software source code editor. How sick is that, creating yet another source code editor? The same people who complain about Wicket being YAW (Yet Another Whatever) could tell me that I should have contributed to an existing project instead, like jEdit or vi or emacs. After all why would we need another editor? I did not, for instance, worked as a contributor (even though I did write quite a few plugins) on jEdit because I didn't like the UI and I still don't like it. That's silly but that's the only readon I wrote my own. It turns out that despite jEdit's numerous qualities (it's a wonderful editor, much more powerful and advanced than mine) many people chose Jext because they preferred my way of doing a source code editor. It can be all about details but in the end it is really about choice.
What would the OSS/FS landscape be if every contributor would be so narrow-minded that it would take the easy way and just subtmit some clunky patches to the only one or two existing applications in one particular domain? How would you feel if you couldn't choose your favorite Linux distribution (I go with Mandriva) or your favorite desktop and/or window manager (hmmm Gnooome)? Well, you would complain, whine and stampe your feet in anger until a bold mind would fork the stuff. We all want to have the choice because we're all different: we don't have the same habits, agendas, preferences, etc. To be truly honest I feel dumb to explain that because, eh, we all know that already...
Then OSS/FS efforts and competences are not transferable. Having a guy working on a given project for one month doesn't mean he could dedicate the same amount of time (if any) on another project, even a similar one. People contribute to Open Source and free software because they are thrilled and motivated or because they have a need to fulfill. Thus, they wouldn't do the same with another project. I remember writing a few patches for SpamBayes a bayesian spam filter written in Python. I would never have contributed to any other spam filter because SpamBayes was the one I liked and the one I wanted to dedicate time to. At this time we were seeing new spam filters blossoming all over the web. Would SpamBayes guys have contributed to SpamAssassin instead? I truly doubt so because both weren't exactly the same. Would I have contributed to another spam filter instead? No, never, because I wanted to code in Python, in wanted to implement those particular features and because SpamBayes was the only spam filter which attracted me.
Developers time is not interchangeable and never will... unless threatened by a weapon, a huge check or free sex - a fourth alternative is the Hollywood one, that is a combination of the first three.
I really think it's time we move forward and kill one of the most long-lived and dumbest myth ever. Learn this: duplicate efforts are natural, useful and sane.
There's much more to say on the topic but I'll let you continue this discussion now :)