Re: It is what you get with bolt on development
That's one cause. There are many.
The most common affliction is commercial projects that aim for maximum profit at minimal effort, typically by utilising high level abstraction (minimising programming skill requirements and time) in vast, highly generic, shared third-party resources, with a huge redundancy overhead because the project only actually uses a tiny proportion of those shared resources.
Sometimes those resources only occupy disk space (but hey, "disks are cheap"), but often the entire resource(s) need(s) to be loaded at runtime too, eating memory (but hey, "RAM is ... oh") and sometimes even CPU cycles ("who cares, today's processors are fast").
We don't even need to consider the subtler aspects of assembler optimisation, optimal array sorting, and other speed tricks, etc., or rather the lack thereof, because right there you're already looking at 99% of the problem.
In summary, modern software development is more like self-assembly furniture than carpentry. All the actual engineering was done once, as a template, then mass produced, and the end result is a vast warehouse full of junk that is barely fit for purpose.
But that's OK though, because it's "cheap". Oh, and the vendor makes lots of money. Mission accomplished. The fact that you and I have to endure longer and longer loading times, cripplingly slow execution, and an endless upgrade treadmill to compensate, is simply irrelevant to the one and only objective of today's software development ... money.