Don wrote:So if you did not solicit the idea and someone like Richard publishes it, then you are in good conscience free to use it, right? But if I pump Richard for this information then I would be guilty. In other words, once the cat is out of the bag and it becomes common knowledge, there is not much the original creator of the idea can do except go after the one who revealed it and/or anyone else involved actively in the quest. Did I get that right?
Yes, you got it right.
Don wrote:But what if I have a truly revolutionary idea that will add 100 ELO to any program and for example Richard or someone reverse engineers the idea and then publishes it on a web site or forum and it becomes common knowledge. Your last paragraph implies that this is the same as a patent, than nobody can use (even if they independently come up with the idea on their own) because the author can "prove" it was not published prior. So I don't see how anything I said was wrong.
Here, we were talking of an idea never expressed before and then published in the open after reverse-engineering: the person doing that is guilty. If, yourself, you got the same idea independently and had it in your program already, there is nothing that can be reproached to you (you could produce your sources in court to prove you had this idea for a while, if you were challenged to do so.)*
For patents it is different: if two inventors get the same invention independently, only the one who will patent it first (and providing that this invention has never been disclosed anywhere before) will get a patent for it... If you try to patent the same invention, fruit of your work, the day after, you won't get granted a patent... and will have to get a license from the other inventor. Dura lex sed lex.
*Note anyway that copyright don't protect ideas (ideas aren't protected, not by the copyright, nor by patents, only their realization, embodiment, is), but the source code. So the prohibition of disclosing ideas from reverse-engineering doesn't come from intellectual-property but more from criminal law and business law notions. (I'm just telling this for the sake of being exact.) Reverse engineering of program is only allowed in two cases:
- it is allowed to the USER (not the competitor), for the sake of understanding the program (and only if this is not documented). And of course, disclosing his findings is forbidden.
- to the competitor for interoperability. A typical example is Open-Office foundation Reverse-engineering Word's file format, for inter-operability. Same thing for communication interfaces.
So the reverse-engineerer disclosing such ideas wouldn't be guilty on the ground of intellectual property but on the ground of criminal law and business law.