I’ve been following Shareaza development for quite a while now (friends know that I’m an unashamed pimp of the app :-D) and I’d like to share with you its history and examine the good things that have happened to it after it went Opensource.
My first introduction to the client (as my introduction to most things around here) came about through random browsing. I believe the first version I was introduced to was one of the infamous 1.7 betas, including the whole Gnutella2 riot act. For the uninitiated, a quick (biased) history:
Gnutella has been around for quite a long while now. It was the first truly peer-to-peer network (nah, not Kazaa) but due to the fact that the technology was still immature, (the fact that there were no ultrapeers to support the network was a major caveat) searches were damn slow, and the network crawled along when it came to delivering files. Kazaa ripped off (or innovated depending on how you look at it) an idea floating around in the GDF (or its equivalent) at that time (the Ultrapeers) and created a network which was essentially Gnutella but which had a stablizing network of supernodes (catchy, yes?). Oh, and Kazaa was also proprietary, whereas Gnutella was free. (A tidbit: the guy who created Gnutella incidentally also created Winamp: Justin Frankel)
Kazaa was immensely successful. And the network was so much better that people flocked to it from the buggy Gnutella network (which had grown too large too early) and the dying Napster to join a new breed of filesharers. Kazaa promised (then) protection from a legal shutdown.
The smaller, much impoverished Gnutella still had its fans. And as the success of Kazaa proved, good technology can come up with a good amount of returns. To beat Kazaa, smaller commercial vendors teamed up to use and improve the existing Gnutella protocol, and they too had their successes. Morpheus and Kazaa dominated, but Bearshare and Limewire had its users. The field soon rippled with new clients that connected to Gnutella, because unlike the Kazaa network, it was still open, and anyone with enough coding skills could implement a client. Into this field came Shareaza.
I’m not well versed with the early history of Shareaza, but from the beginning it was an innovative client. Shareaza was instrumental in bringing about upload queues and improved hashing techniques to the network, changes that were slowly picked up by the larger clients. But Michael Stokes, the (only) developer of the client felt that the development pace of the protocol was insanely slow and the protocol itself was cumbersome, and that the discussions around it tended to go around in circles with the more influential developers throwing their weight around. (This is partly personal experience, try posting a question to the GDF)
So he created a new network: Gnutella2. (Incidentally, Ares also was a Gnutella client that switched to a new homegrown protocol, but it did not have its day of controversy). G2 was in some areas radically ahead of the then Gnutella implementation. It had Tigertree Hashing (TTH) that for the first time almost eliminated corrupt downloads without having to redownload the file again, improved metadata for files and much better boolean searches, and a wider search scope. It also had a slicker and spankier interface than all other clients and it didn’t have any adware (that’s the reason I started using it).
Gnutella2 immediately came under fire in the GDF. Bearshare (and to a lesser extent Limewire) felt that the Gnutella2 domain had been stolen from them, and just the fact that a single guy made a network much, much better than their team of developers pissed them off [yeah, my roots are showing here, sue me ;-)]. Bearshare developers began a campaign of slander and misinformation (not to mention threats and abuses in the forums: “The Vinnie flame wars”) but Mike usually took the high road and eventually everyone shut up about Gnutella2. It was just a new network, and people who knew better things when they saw them switched over. Most of the P2P users didn’t, but then the Ares/Warez campaign did show how much of an intellectual level average users have 🙂
The slow pace of Gnutella improvement means that it has finally (almost) caught up with G2, so much of the fuss about Gnutella2 is old news. When I compare both networks now, while G2 is much better, G1 has come a long, long way in elimiating much of its flaws. Gnutella is also a tried and true network, whereas G2 has never been seriously strained, though if the current trends continue, that would soon change.
With a release of version 1.8, and after a good number of people quit using the client after the initial hype and a version fiasco, G2 stabilized to form a small network of about 10-20,000 users. It hasn’t grown much after that until recently (2.0), when Mike released the project under the GPL and that brought about another generation of newbies.
Opensourcing has many benefits, but the best among it (in the current context) is that more than one brain can work on it, and the fact that incremental development is a whole lot faster. From the time it has been made opensource, rarely a day goes when some change is not made to the CVS. And alpha builds pop out of the build factory like masala dosas. With an impressive debut build already (2.1, which fixed a whole lot of bugs and network issues and made many minor improvements), the DevTeam (which is only a handful of people now, but growing every day) should be pretty proud of itself. 2.2 is slated to be a feature release, and passive FTP support, a scheduler and an adult filter has been added in already. It does come with its share of troubles though: script kiddies acting up, a flood of inane feature requests, and a performance anxiety seems to come over the forums every now and then, but the transition to opensource has been smooth and beneficial.
One of the inspiring things about the development of Shareaza is that one guy working alone can create such a beautiful client and a network to rival any other. And then, when he can no longer follow its development actively, he can turn it opensource, and still watch his application grow. It’s something that’s often been missappropriated when opensource has been quoted in the media: the fact that other developers contribute to your project makes you more happy, not less. Of course, there’ll be ego issues, but that’s true for any kind of collaboration.
And since I do have a most reputable profession to attend to, I leave you with a most excellent application. The only app that will blow you (away) for free ;-): Shareaza
See also this Slyck story about Shareaza.