Bitcoin has been around for some time now and yet there seems to be only one legitimate competitor (armory) to the main bitcoin client and even that requires keeping the main client running for full functionality.
Instead of worrying about things like address management, wallet files, bootstrapping, gui, etc why cant the main client devs focus on making a multi-platform library that can be imported by everyone else? Thinks like reading the blockchain, transactions, p2p protocol and much more would obviously need to be handled by a core library. But I think many other implementation details can and should be left up to individual devs. Not only will this turn bitcoin into a true *platform* for development, but it would lead to specialized clients that can fulfill niche roles not yet foreseen.
Right now I feel bitcoin seems to be held back by its client. Thoughts?