Developers.Roadmap
We all know what the Shareaza code looks like now, and have ideas about what we want it to become in the future. This page is about brainstorming the big future transformations for the code: what they are, which ones we should do, which ones we should not do, their priorities, and what order makes sense.
To start out, here's every big idea that's been suggested that I can think of:
Document each Object Developers who are familiar with the code could write a few sentences describing what each object is, and what Shareaza uses it for.
Comment Everything There are very few comments in the code right now. Ideally, every method would have comments throughout it, making it easy to look at one for the first time and understand what it does.
Organize into Namespaces The Shareaza code right now is object-oriented, but the objects themselves are not organized. We could sort the objects into namespaces and start to give each namespace an encapsulating interface to the others. This is sort of like making the code object-oriented on the large scale. It already is on the small scale.
Port to C# or Java C++ and MFC aren't as pretty as more modern languages like C# and Java. Type-safety and garbage collection are nice features too. Calling external code and getting events back from it is hard with C++ and COM, and easy with C#.
Make Shareaza.dll We could separate the network code of Shareaza from the user interface code, making a Shareaza.exe that calls Shareaza.dll. Then, people could design their own peer-to-peer program using the base services of Shareaza.dll.