Software patents shouldn't exist, unless the sourcecode that the patent is protecting is released under a permissive license or equivalent. Having both copyright and patent protections at the same time is insane. Patents have a reasonable duration. With copyright the duration is basically infnite for everyone even though only a minority of companies actually care about it.