<i>"To promote the Progress of Science and useful Arts, by securing for limited Times to Authors and Inventors the exclusive Right to their respective Writings and Discoveries"</i><p>This is what patents are for. In the case of software, they are having the opposite affect - they <i>discourage</i> innovation.
Patents are not bad. Patents that are given too broadly, try to patent outcome instead of technology (one click) and that are simple solutions to a problem are bad.<p>If I don't need your disclosure to reproduce the invention - it should not be patentable.