Today Phil announced Subkisment ( Introducing Subkismet-The Cure For Comment Spam). I believe this will prove quite beneficial to many a project. Be they open or closed source. What's more interesting, later on today Mads published Think twice before using any third-party assemblies were he emphasis the exact opposite approach to development. There is little debate that taking on a third party dependency is not to be taken lightly. However the benefits can and typically do out weigh the doing it in house. Lets take a blog engine as an example. If you roll your own text editor, is that really a core goal of your product? Do you always want to add improvements and features to your text editor? Why not pick up a dependency on FreeTextBox or FCKeditor and periodically merge their changes, reap the hard work of another project focused on creating a great text editor? dependencies are not always about control especially when they are open source. dependencies are a statement, we choose to let a focused community work on this feature. It is an important feature that needs to evolve but its not our focus.
Mads maybe correct in his assertion
There exists hundreds of CAPTCHA control libraries for ASP.NET both visible and invisible ones. However, a CAPTCHA is one of the simplest things to write – it takes only 20 lines of code to create a rock solid invisible one – so that’s what we did.
But does your project want to pick up this torch and stay at least one step ahead of the hoard of SPAM developers? Or would you rather trust a community dedicated to this goal such as Subkisment?
In an open source project it should be a no brainier, take on as many other open source dependencies. Run your community with unwavering focus on your core goals. Besides you have the source if you ever need it.