Whenever a new type of product is released there are a lot of difficulties with intellectual property. This is being played out in biotechnology and software. As recently as last year it was possible to patent human genes in the US. See this link for the recent verdict against it. The ACLU also had a write up from 2009 when this case was still ongoing about the history of genetic patenting. Software is another case of this. Many people argue that since software is an algorithm or series of statements that leads to a result it should not be patentable. This makes sense as mathematical proofs are unable to be patented. The argument is that for proofs these are discoveries and more natural processes than creating technology.
In the EU it is not possible to obtain a software patent at all. They claim that with software there are multiple different methods to obtain the same output. Software patenting is a very recent trend. The most famous example is the Amazon.com one-click to buy button. Which, if you don't know what it is, basically allows you to store an address and a credit card and automatically buy whatever product you're looking at. Fairly simple right? Well there was a lawsuit against a major competitor, Barnes and Noble about this in '99. Some how this patent managed to survive the re-review, even though it's a fairly obvious idea and could be implemented in about a billion different ways. On the billions, I'm not even exaggerating. There would be so many different interactions that could make the actual implementation totally different. These range from database types, information request, how the data is actually stored in the data base. There could be nothing similar between the implementation at all, yet Amazon ones all the methods to do this. In terms of patents this is effectively an amazing patent.
Let's put this more simply. If software patents had been allowable in the 70's when software first started to take off we would be living in a different world. BIOS have been owned by IBM until 1990 or so, which would have made manufacturing computers a two horse race between Apple and IBM. Microsoft or Apple could have patented the Operating system, and then the graphic user interface. IT innovation would have been non-existent. Think of this, some one could have patented data sorting. There are a many different ways to sort data in the CS world and all of them would have been covered by a single patent. Then some one could have decided to patented sorting on a multi-core computer (by then sorting as a patent would have expired).
Software is more like a mathematical proof than it's like inventing the computer.
Innovation in the software world has been amazing because it has been something of a free for all. However, there are drawbacks to this lack of IP protection. In the most recent version of iOS, iOS5, Apple has been accused of lifting many of it's new "innovations" from apps that have been rejected from the app store, or that have been selling in the jailbroke iPhone app store. Here's the link for the article. How do we deal with cases like this, either Goliath stealing from David or David stealing from Goliath? There needs to be some sort of protection.
Potentially copyright should cover this, or a registered design. Perhaps in the case of the app stores a non-compete agreement should be signed if the app is rejected by Apple. Meaning Apple won't steal it. However, there is no easy solution. Software design thefts are going to be very difficult to manage and deal with.