I completely disagree with whole idea of intellectual property, so from my perspective Apple maybe wrong, but the argument given here against their actions is even "wronger".<p>Apple's actions here can at least be viewed as quality control, and since its their product and their app store etc. its their choice. This is no different to how games console manufacturers refuse to support third party hardware/software, and if you do want to produce software for them you need to most often use their tools and comply with their requirements. Historically this has worked for them very well.<p>The writer also negates to consider the real world difficulty of implementation - having a set of ideas about how something should work is a totally different concept from having a working implementation of a concept - except for that one case where the ideas are sufficiently concrete to describe an implementation in a single language. Translating ideas into C++ or whatever is not trivial so the implementation and the original concept can not realistically be considered the same thing unless it includes all of the implementation considerations as well. In which case there is no valid way to distinguish that set of ideas from the source code - mathematically they are identical descriptions of an algorithm, if they were not then one or other would lack sufficient information. The program would not produce the intended results or the idea would be missing information required to produce the implementation.<p>As a simple example consider the difference between the usual form of the Pythagoras theorem ( h^2 = a^2 + b^2 .: h = sqrt( a^2 + b^2 ) ) and some code to find the hypotenuse of a right triangle from the other two sides - there are lots of issues there that the original theorem has no need to consider, like whether to use floating point representation or fixed point, what square root algorithm to use and what order the operations should be performed in. All of these decisions can have a dramatic impact on the performance and accuracy of the implementation (i.e. produce detectably different results) and some of them may be language dependent, e.g. your language might provide a black box square root function but not specify how it must work, which could be left to the implementation to decide.<p>Even so, do I have ownership of my particular C++ implementation of this? No. Anyone else could have done the same without prior knowledge of my solution - because its already there encoded in the laws of nature waiting to be re-/discovered/ (not /invented/). Invention is a convenient label like "artificial" - it has no counterpart in reality but is a useful abstraction in daily life. But I digress...