The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying. (John Carmack)
Patents protect implementations, not ideas. But in software, an implementation is just the means that expresses the idea.
Software is speech. Speech is free.
Why is not software free?