Monday, November 30, 2009

How we can once again become UNIX-ish

Eleven is Louder writes about the unix philosophy and linux today. Well, hes right and wrong, but mostly he misses the point!

As a programmer, atleast for me, the Unix philosophy is more about making the programmers life simple by making the tools "ortagonal" and standardizing the interfaces on read/write semantics, then it is about the command line interface.

Of course we can have a modern system based on those ideas! For example:

Sound: Instead of this horrible buggy complex mess that is alsa+pulseaudio, we can archieve the same thing, today, with OSS4¹ and NFS, SSH or Samba. And we get portability, higher quality mixing, lower latency and an easier programming interface for free.

KIO-slaves: Whats the point of of the KIO subsystem when FUSE exists? NIH in all its glory. Fortunatly KIO-FUSE exists, so you can access a textfile inside a tarfile on a remote webdav share with any program, not just KDE centric ones.

X: Lets drop the whole mess! The only thing it does nice is forwarding, but even that is botched compared to what it could be! Try using it without a hacky NX server over anything but a local link and you know what im talking about! Wayland seems like a clean codebase to replace it with, and it can even run X within itself!
But even Wayland dosn't adhere to the Unix philosophy: the way to do X unixy would be to make every application window a bitmap, toolkits into generators of bitmaps, all manipulated by unix tools like imagemagick, which in turn can be accelerated by opengl/cl. All shared over NFS, Samba or SSH.
Check out plan9 from bell labs, its in many ways the successor to Unix.

Then of course there is uzbl, etoile, gobolinux....

We can have a modern system, based on the spirit of the Unix philosophy!

¹ Not the OSS of the 90s. Yeah, it sucked, get over it.


Very late edit: I have since learned that my own experience of sound networking only worked by dumb luck, and wouldnt in reality. Still, the P9P networkprocol for device sharing could be ported.