> WinNT drivers are not things of beauty. The dev experience is cranky, and validation is a nightmare
I think one could say the same for any platform; in general, developing drivers is just difficult, full stop. That driver quality for peripherals can be bad is not the fault of the platform. I'm sure I could find dodgy drivers in the Linux tree that were merged in only because 'shrug it makes PineappleCorp's device work, who cares if it is littered with UB'.
Well, these days it seems Linux drivers get enough eye-balls on them that anything meaningful is going to get looked at. Sure, I expect there are some low usage drivers in the repo that just haven't had enough mileage. At least with Linux I can see the driver code. (The second day at my current job, somebody pointed me at a bug with an obscure symptom. A quick check of a log file showed a 0xE exception. A couple hours later I posted a link to the bug in source. Somehow, the universe decided to give me a bug I had seen many times before to get my reputation off to a good start -- it's better to be lucky than smart.)
At the dayjob we have lots of sporadic problems with USB drivers of Linux in our fleet of embedded devices (RPi). I had a lot of problems with USB-C and Thunderbolt docks in last 5 years. If USB doesn't get enough eyes to not crash/freeze systems entirely, I don't know what else would get. Monolithic kernel design should have belonged to past but we don't get nice things.
I think one could say the same for any platform; in general, developing drivers is just difficult, full stop. That driver quality for peripherals can be bad is not the fault of the platform. I'm sure I could find dodgy drivers in the Linux tree that were merged in only because 'shrug it makes PineappleCorp's device work, who cares if it is littered with UB'.