I didn't look at the actual code (It would be worthless since I'm a crap at C++ anyway), but I think it's important to do the kind of cleaning you did. I hope it will make it into the code.
It's important for
security and
trust, as it allows easier peer reviewing and bug finding, which is all the more necessary that Bitcoin touches a domain where trust matters a lot.
It's important for extracting a
library, so that other programs can appear, and still use the same backend code as the GUI. They would only have to code their specific parts (e.g. the readline part, if it's an interactive shell-like client), which would make their development easier and more secure. Just like JSON-RPC, but lower-level and more flexible: class loading and direct use of Bitcoin functions, instead of HTTP communication.
It's important for the
improvement of the lib itself:
- If it's better organized, more people can understand it and contribute to it.
- Modular code is easier to manipulate and modify, add new features to it, etc.
And finally, the coupling to wxWidgets is the main reason why bitcoin hasn't made it into
Debian yet (it's a nightmare). So sorting things out would greatly ease the package maintainer's work, and bitcoin's wider adoption by a valuable geek population.
I can also think of half a dozen topics on this very forum where infinite discussion could have been replaced by actual code.