This may seem ironic, but one of the best defenses against having your proprietary or non-open sourced software product become open sourced is to show people your code with a restrictive license. Ideally, you would want to show it to exactly those people who would be most likely the ones who would potentially open source it, namely hot shot programmers, academics, and students.
Once they see your code they become contaminated from an intellectual property perspective. While they might still proceed with an open source project similar to or related to your product, they might be in the difficult position of having to prove that they were not influenced by having seen your work and therefore having used your intellectual property. That simply might not hold up in front of a judge or jury. I am not an attorney: you should speak with one before you get involved with any project with a license containing clauses that might hinder your future activities more than you might realize.
Why is this relevant? Think of the following possible situations:
- You agree to work on a project under contract for a software company though you plan to eventually do something in a related area in an open source environment
- You might have seen some of Microsoft's code under their Shared Source agreement, and, most recently
- You have decided to get involved with the next version of Java with Sun either through the SCSL or the new Java Research License.