with respect i think it's a combination. business demands value delivery and features on a constant basis, and programmers are constantly layering crap over crap in order to deliver. nobody stops and says "hey, wait a second - let's pause, and figure out how we're going to invest now to make the changes you're asking for easier in the future." programmers need to learn to identify when this is happening (a technical skill) and demand change, and product needs to learn to listen and understand the consequences of not heeding this advice. because after 5 - 10 years of 100 different people working on a given system, the complexity becomes unmanageable, and the business grinds to a halt. and then heads start to roll. and yet the people demanding the new features now are never going to have suffer the consequences, because they'll be off to another venture in 5 - 10 years.
You are describing one set of organizational and cultural problems with software engineering that can only be solved through a cultural and political approach
Other organizations and cultures have different sets of problems.
Agreed. A new language will not solve garbage in, garbage out problems. A lot of times even when a BA tries to untangle the mess of business practices by carefully documenting it and proving that a better way exists, some stakeholders can still find it challenging adapting to a well intended change.