The only reason we’re behind on adoption vs Windows as this point is that people who write software for Windows, don’t do it for GNU/Linux, or even publish specs in the case of drivers.
It’s not the OSes problem. It hasn’t been for a long time. It’s stubborn developers (mainly corporations like Broadcom, Nvidia and Epic). We shouldn’t need to write compatibility layers for completely foreign software to run, or write drivers to drive a megacorporation’s hardware, and those are both a monumental task, but the community continues to achieve it anyways.
A lot has been done and continues to be done by the community, and that’s great, but the real problem is the corporations who refuse to invest a little bit of their time in GNU/Linux support (and those who have an irrational vendetta against it).