The difference is that software is special compared to electronics, chemistry etc etc
You can't be vague in those fields but in software implementations you can as much as you want. Maybe we should start issuing patents in hairdressing as well.
You need enough definiteness in a disclosure to enable someone of ordinary skill in the art make the invention.
The specific data structures, programming languages, program/application architecture, are generally unimportant (unless they are the invention).
Gadget patents are the same way. They don't have to claim particular fasteners, coatings, materials, dimensions, or the like, unless they are necessary for the invention.