While there are certainly many economic, social and practical decisions to be made when deciding whether a system should be open source, are there any situations in which it is impossible, purely from a technical standpoint, to open source your code?
Essentially; a feature which when the code is made public, invalidates/reduces the functionality of that feature.
Some examples I can think of:
- Cheating in Quake - once the game was released as open source, id had to release a closed-source 'wrapper' to validate client code in order to prevent cheating.
- Reddit - while the majority of the source for social news site Reddit is available, their anti-spam mechanisms are not. If the spammers knew how they worked, they'd be easier to work around.
Both security related and both as a result of using implementations security experts would probably frown on (Quake: trusting the client, Reddit: security through obscurity). Whether there are feasible alternatives to these implementations is another matter altogether...
What other examples are there of this? Are there any that aren't security related? Are they all due to 'workarounds' in order to make our systems work with the technology we have?