As a small developer who invented something and has patented that invention. What do you do when Apple uses that patent without informing you or paying you. Do you sue them? That will take 10 years and lots of money and will surely wear you out. The only way a small developer gets paid for a patent is by selling it to a patent troll. I guess this is how the system works.
By the way, I don't agree with software patents, and I think 20 years is too long for a patent in this day and age.