>Even for mechanical patents, say, you could "implement" a mechanism in any of a thousand different alloys as long as they provide the appropriate physical properties required.
That's not really what I'm talking about.
Maybe an example would help. Suppose you're the first to invent disc brakes and you get a claim something like this:
A device for decelerating a vehicle comprising:
a rotor affixed to a rotating axle of a wheel;
a stationary brake pad; and
a hydraulically actuated caliper compressing the brake pad against the rotor.
So now you want to talk about doctrine of equivalents and say that it doesn't matter what material the brake pads are made of, and maybe you're still covered if the calipers are pneumatic instead of hydraulic, etc. Fine.
The problem is that software patent claims don't look like that. The equivalent ends up looking something like this:
A method for decelerating a vehicle comprising:
an interface allowing a user to request deceleration;
a means for converting kinetic energy into thermal energy; and
engaging said means for converting kinetic energy into thermal energy when deceleration is requested in said user interface.
Do you see the difference? The latter covers disc brakes, it covers drum brakes, it covers drag car parachutes, engine braking, dragging a stick against the ground etc. etc. It covers implementations that have exactly nothing to do with the patentee's invention other than employing the same law of physics in their operation in order to achieve the same result.
The way the patent system normally deals with this is that because the second claim covers everything, it doesn't get granted because of prior art. You can't invent disc brakes and get the second claim because drum brakes already exist. The trouble comes when the problem being solved is itself novel, because there is then by definition no prior art solution, so the first person to get to the patent office can get a patent on every possible solution by proposing any possible solution (even if their implementation sucks), since any solution gets you enablement and there is no prior art to invalidate the exceptional claims.
So that's half of the issue. The other half is the zero reproduction cost of computer software. Once a problem is solved it's over. You have a good solution and the solution costs nothing to copy infinitely, so soon everyone has the good solution and further solutions to that problem are no longer anywhere near as interesting. In consequence software development is dominated by the process of creating solutions to novel problems -- exactly the scenario that the patent system allows the first mover to massively over-claim. Hence the enormous trouble specifically with software patents.