OSS & Duplication of effort
David Hayden responded to my and Jeremy Miller posts about OSS in Microsoft world. He raised the following issue:
He lists several competing OSS projects:
- NUnit or MBUnit?
- StructureMap, Spring.NET, or Windsor?
- NHibernate, Gentle, IBatis, Retina?
- dasBlog or SubText?
- log4net or NLog?
I don't see an issue here. The OSS community isn't a well coordinated place by defination. Each of the above solve its developers problems best, as a user of those projects, all you need is to decide what you want to do with those.
Take NUnit vs MbUnit, MbUnit has a lot more extentions, [RowTest] is a good example. NUnit was there first, and it have excellent tool support.
In the IoC world, Spring.NET is for those who doesn't have enough XML in their life :-) and want to control every bit & piece of the system explicitly. Windsor take a whole different tack and StructureMap was there first (sorry, never looked at it closely enough to say what its advantages are).
If you want to write your own SQL, and have the OR/M map from the data reader to objects and vice versa, iBatis is probably the thing for you. If you want to give up SQL entirely, NHibernate will fit the bill much better.
dasBlog is a blog engine that doesn't require a database backend, which was quite important to me when I first built this blog. SubText has a database backend, and it means that people can do all sorts of nifty things with it that are harder with dasBlog.
log4net vs NLog, I think you can see the pattern.... (and I never used NLog, so can't comment, except that the config looks simpler).
They are advantages to doing things twice, in different ways, for one thing, you get several solutions that you can choose from. The other interesting thing is that because they are OSS projects, it is not a walled garden where one project has built a feature that isn't in any of the other projcets, and they compete on that. Take dasBlog and SubText as a good public example, they are borrowing each other code fairly often. This is a very good thing, in my opinion.
There isn't an issue with having competing projects, quite the contrary, having several projects on the same subject, often solving similiar problems in wildly different ways, gives the community at large a whole lot more to choose from. This wish for a single project per subject, one to rule them all, is not healthy in the long term, as I see it. I don't lose anything from having another OR/M framework on .Net, even though I am a heavy contributer/user for NHibernate, for instnace.
Comments
Comment preview