I disagree. There are three alternatives (that come to mind) to patents:
1) Make all information freely accessible to anyone. This is the one we'd all like everyone to do. However, there's very little (economic) incentive to innovate when you do all of the heavy thinking and anyone else can just come along and beat you to the implementation.
2) Stop innovating. If you can't protect your ideas, you might as well just stop trying.
3) Hide your information. Only you can benefit from the information if no one else knows about it. (You can't license information and keep it a secret at the same time!) There are laws to help protect you, but you also have to do a lot of work to protect yourself. You can also keep your information secret indefinitely.
By filing a patent, you're telling the world how to do something (allegedly) new. In 20 years, (or longer/shorter, depending on the country) everyone is freely able to use the idea.