Ok, I like Limewire's ideas and all, but bearshare is tons better. Why? Well, here are a few points where it excels:
1. Faster program. Limewire is written in java, therefore running on a java virtual machine, which makes it about 2x as slow on my computer (p2/333mhz, 128mb ram). i would say i still have an average computer, so that makes no real difference in this, but BearShare is written in C++, making it much faster than limewire.
2. Quality of Service meter. On limewire, I have no way of telling what clients are busy uploading and which ones are open that I can get a good download from. Half the time, the downloads on limewire wont connect to the hosts, because they are busy/down/etc. I should be a good test of host connection, seeing as I'm using an OC12 for my tests.
3. Gnutella clutter. The excess bandwidth wasted by limewire is large, but that is to be expected with gnutella. The one difference is that bearshare seems to dodge that extra usage and give great download speeds regardless, while limewire is clogged by it. I have never had a 200+ kbps download on limewire, while i routinely get 1.5mbps downloads on bearshare.
In the end, the basic criteria of a good gnutella client are:
1. Download speed vs Gnutella bandwidth
2. Host connections
3. Overall program speed
4. Search result features (Quality of Service)
Everything else is secondary. Who cares about a pretty interface, group options, chat options (who the hell chats on GNUTELLA?), etc, when you cant even get complete downloads? Not me.
And where's Gnucleus? :D