There is a lot wrong with the patent system. Twenty years is too long.
Fees are too high. Processing is too slow. The language used in the
disclosures is arcane (the disclosure is supposed to teach the invention
to someone "skilled in the art", but the art one must be skilled in is
patent law). Software patents not only exist, but are described in
*incredibly* arcane language rather than in source code. Pharmaceutical
patent law is even more bizarre than software patent law (mostly due to
the efforts of Congress to "fix" it).