Saturday, January 15, 2005

Wiki Versus Unix Philosophy

by Asim Jalis

There is something about wikis that disturbs me and I couldn't quite put my finger on it before. Here is a stab at it. The trouble is that they don't play well with non-wiki sites. It's hard to integrate a blog into a wiki. Suppose I want to set up a shareware site. It's hard to do this on a wiki. I mean the wiki does not really make things easier for me. It makes them harder. It's usually easier to just write raw HTML. Wikis work for a certain type of application -- e.g. they are great for web publishing. But it creates it's own little world and does not play very well with others. Contrast this with unix tools, which are really good at one particular thing, and also play well with each other. Incidentally, the command line tools that ship with windows are frequently just as good as their unix counterparts. E.g. findstr has more options than grep. But findstr loses to grep because without decent pipes it cannot play well with the other applications. Object-oriented programs have the same problem. They are like wikis in some ways. Each object is like a wiki page. It has a name, and intuitive operations. The problem is that they don't know how to play with non-object programs. So each time you write a program you have to rewrite some core objects again, because objects don't have a good mechanism for reuse across projects. You see the same thing with wikis. I have a page about me on each wiki that I have visited. I make copies of the page wherever I go. There is no easy way to reuse the page. The web is different. The web thrives on leverage and reuse. It accepts everyone. It does not give it's local wiki pages first class status and everyone else second class status. In this way it is like unix. For example using ssh I can create a pipe that interconnects processes running on different machines. I can pipe across the web.