A framework is supposed to be a part-baked application that you extend in controlled ways to provide what you need. A seedwork is some minimal functionality that you modify however you like to get what you need. Of course this means that there's no way for you to get common updates to the seedwork, once you grow it you own it. This is the kind of copy and paste reuse that many people, including me, deride.So when a library is a blackbox that you access only through it's published interface, seedwork is on the opposite side of the spectrum, it's an example that you cut, paste and extend. An great example of seedwork is the SYNOPSIS section of all perl modules manuals. This example also shows how the two paradigms of blackbox libraries and seedworks work together. Another example is the whole Open Source movement.
The question is: what are the properties of a good seedwork? Of course first it should solve some real problems, but what else? The first answer I found to this question is that it should be readily deployable. I usually learn to use new modules by copying the Synopsis section and runing it (sometimes this needs some obvious ammendments), only after I see them working I try to incorporate then into my programs.
Another interesting wiki with a Seedwork page: Thought Storms: Seedworks.
Update: After some thinking I must agree with Abigal-II and liz and admit that I cannot think up how this 'seedwork' could have a different meaning than the old simple 'example'. But the question near the end of this meditation seems to stay valid after restatement: What makes a good example?
Update: A defense of the term might be that it can be used to catch the code reuse aspect of examples. We have seen how libraries and object orientation were employed to reach the goal of code reuse - how about looking back on the probably first method of code reuse by cut and paste and determine when it is effective, probably by comparing it to the other techniques.
In reply to Libraries, Frameworks and Seedworks by zby
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |