@franky1
posted something interesting (to me) regarding how alternative implementations of Bitcoin are regarded, here's the relevant snip:
for anyone that has tried to make a REFERENCE client of a full node thats not part of the 'core' dev branding, they get treated like outsiders, competition, threat. thus everyone ends up relying on core.. like zombies
I find that really unfortunate. I think alternative implementations should be encouraged.
I've been slowly working my way through old posts in "Development & Technical" (to understand the history of Bitcoin better). These snips by @satoshi surprised me a little:
I don't believe a second, compatible implementation of Bitcoin will ever be a good idea. So much of the design depends on all nodes getting exactly identical results in lockstep that a second implementation would be a menace to the network. The MIT license is compatible with all other licenses and commercial uses, so there is no need to rewrite it from a licensing standpoint.
A second version would be a massive development and maintenance hassle for me. It's hard enough maintaining backward compatibility while upgrading the network without a second version locking things in. If the second version screwed up, the user experience would reflect badly on both, although it would at least reinforce to users the importance of staying with the official version. If someone was getting ready to fork a second version, I would have to air a lot of disclaimers about the risks of using a minority version. This is a design where the majority version wins if there's any disagreement, and that can be pretty ugly for the minority version and I'd rather not go into it, and I don't have to as long as there's only one version.
I guess I can empathize with this stance a little, but I can't help but think this whole approach is kind of backwards. Bitcoin offers unprecedented freedoms (compared to fiat) to
users of the network, and that should be loudly applauded. But why don't
developers get to freely participate in this brave new world?
Now, I'm aware that nothing
prevents anyone from attempting an alternative implementation and that someone could conceivably read the source code and proceed from there. But if the reference implementation is hostile to that idea and the core devs don't properly document what they're doing and work amicably with outsiders then any such attempt is surely doomed to fail?
Take PDF for example. I think it being an ISO standard is a great thing and I would be pretty bummed if Adobe had arranged things so that no one but them could provide a working implementation.
Shouldn't Bitcoin, first and foremost, be a documented standard?
Shouldn't the reference implementation be one of many?
Isn't that more in the spirit of decentralization?