Just curious what everyone thinks of these protocols and the clients that use them. Despite the fact that they're mostly used for license violations, I find them intriguing. I'm very surprised they're still not used for for legitimate purposes very much.
From what I can tell, Bittorrent is better suited for large, popular files. It's major weakness is that it doesn't have a search built into the protocol, so people have to find the torrent by other means (usually through web sites). However, this is also an advantage, because it makes it easier for people to track what files are spam, fake, or malicious. Unlike Gnutella clients, all the Bittorrent clients seem to be focused on downloading a file, sharing for a period of time, then stop sharing permanently. If a file is not popular, this effectively kills the torrent. Also, it can be inefficient because the same exact file can be shared in multiple torrents, but the clients in one torrent can't share clients in the others.
Gnutella seems to be better suited for smaller, less popular files. The major differences is that the Gnutella network is one big network, it has search built in, and the clients are focused on always sharing everything. In a sense, it's like a large, highly distributed data store. Gnutellas blessing and curse is it's decentralized nature. Because it's so decentralized, it makes it hard to determine what files are fake or malicious, and there's a ton of spam on the network.
I, personally, like Gnutella's approach better. I've always been a fan of anarchy and chaos

What are your thoughts on these protocols, p2p in general, and the future of p2p?