It's worth noting that this isn't just a research language -- it's used in practice for writing drivers: P got its start in Microsoft software development when it was used to ship the USB 3.0 drivers in Windows 8.1 and Windows Phone. These drivers handle one of the most important peripherals in the Windows ecosystem and run on hundreds of millions of devices today. P enabled the detection and debugging of hundreds of…
Honest question: what is so complicated about writing device drivers, whose sole purpose typically is to transport data from input to output, and vice versa? Also, shouldn't drivers be sandboxed to prevent stability problems from affecting the rest of the system?
What you ask if valid, and very true, but for cable construction, not driver writing.
There are tons of protocols and issues to handle when designing a device driver. Negotiate device capabilities. Handle hot plugging and unplugging. Handle intermittent state changes in the device. Handle buffering. Handle different versions of the protocol (or multiple protocols from the same bus). Handle throttling. Initialize and configure the device correctly (and infinite variations of devices from different vendors with perhaps slight or big inconsistencies in their implementation).
And of course device drivers are not just about I/O.