One of the most nuanced, yet important issues of the intellectual property controversy that the software industry (and the world) is now facing is how to deal with source code that gets compiled. Those who oppose patents will sometimes argue that copyright law is sufficient. But what, specifically, would an effective copyright law protect? Like music or the written word, does it protect the source code that the developers banged out on their keyboards? Or does it protect the code that a compiler spits out after digesting that source code? Most seem to say the former. But, if copyright law only protects the source code, then what prevents another developer from making a clone of that software using a completely different language and compiler? Those in favor of patents say this is copyright law's big weakness because it leaves developers who are seeking protection for their "inventions" legally exposed. With patents (at least ones in the US), the developer gets to protect the process and methods expressed in the code in such a way that it doesn't matter what language or compiler was used to achieve the automation.
If those who favor patents are looking for the worst case scenario when it comes to copyrighting source code, then Microsoft's .Net architecture (which not only supports multiple languages, but advertises it as a key differentiator) is the poster child for their concerns. By the way, that wasn't meant as a knock on .Net. .Net's ability to do this is a great feature. As a side note, another one of my blog entries touches on some work that Sun is now doing in this area.