3 ms·
> But the Unix "worse is better" approach won out. Did it? In my opinion, modern Unix systems are much more like VMS than they're like traditional "worse is b
by retrac 3y ago
> But the Unix "worse is better" approach won out.
Did it? In my opinion, modern Unix systems are much more like VMS than they're like traditional "worse is better" Unix. One of the classic "worse is better" interfaces is synchronous character IO. That is, to write a string, you call the write() routine repeatedly, sequentially, as you have things to write out. The call blocks the program until it completes.
It's trivial to implement. It's a nice, easy-to-understand API from a programmer's perspective. It's also so terribly inefficient that every modern Unix has bolted on VMS-style asynchronous IO to replace it. Queues of transfer requests, where you design the full IO transaction, submit it to the OS, get an interrupt when it completes. More complex, unfriendly to the programmer, yet fundamental to getting real IO throughput from an operating system. Worse is better did not stand the test of time there.
- lmm 3y agoA few dedicated high-performance programs use those interfaces, but I wouldn't say they're mainstream, and they still seem to be oriented towards unstructured byte sequences and "everything is a file" as far as possible. And of course the highest-performance systems bypass the kernel entirely and do everything in userspace. OTOH one could make the argument that the pendulum is swinging back with things like dbus and overlayfs, or even modern linux sound APIs. So IDK.