It can be fixed, they just won't do it. Microsoft has fought internally over various technologies for decades, between win32 and .Net and all the shit in-between. They never standardized like Apple did which left them entrenched in technical debt. They could, today, start a standardization process, build out a new and modern tech stack, advise their devs to migrate to that, then set a date with the cut off. Apple's success at this is a model for anyone to follow. They just won't due to internal fighting.
Everyone else sheds the old stuff, even Linux drops code from time to time. Microsoft does this to themselves.