If that happens, their code will have to define the protocol which runs the network, right?
As a professional protocol developer (yes, really), I advance the notion that 'big boy' protocols are not defined by a single code implementation. Significant protocols have definitions that exist outside the various tangible implementations of their specifications. Indeed, many significant standards agencies will not recognize a protocol as ready for the big time until such time as there are multiple interoperating implementations from multiple sources.
We aren't talking about "big boy" protocols, we are talking about Bitcoin. By it's nature, the client dictates the protocol. If we actually switch to BU, that is the implementation which will determine the protocol, as clients with different rules will be isolated from the network (once that rule comes into question when a block is crafted accordingly), due to the very mechanics of Bitcoin.
These rather trivial bugs exhibited recently by BU merely serve to illuminate the problems that may arise when a single implementation is the only implementation of a given protocol.
I think trivial is marginalizing it, but whatever. I've been running a full node for 6 years now and I can't recall an instance where it shut down and the underlying OS wasn't to blame. And
again, the bug is less of a concern to me than how the entire event surrounding it was handled, but you don't seem to want to discuss that since you keep ignoring it.
A failure in one implementation is a failure in the entire system.
Recent events say otherwise. I'm not sure why you would make this claim.
To assume there are not bugs of similar scope in Core is a blindered approach.
I never made that claim.
Yes, as there has been a resistance within the community to develop a formal specification, we are reliant upon duking it out in the marketplace.
I've seen plenty of efforts to develop formal specifications in the Bitcoin ecosphere. I've also seen plenty of efforts to intentionally avoid or sidestep attempts at formal specifications. It's an open source project, so people are obviously going to do as they please.
Some day, I hope we can move past these baby steps to where we have multiple interoperating implementations from many teams.
That sounds great, except that's not how Bitcoin works if the "interoperating implementations" have different rule sets, once those rules come into question, those clients will isolate themselves. Example: If a block bigger than 1MB is mined by a miner using BU, the Core nodes and BU nodes will no longer be on the same network. I know you know this, but you are using flowery language to suggests otherwise for some reason.
In the meantime, a marginal implementation of the better design is far more valuable than any near-bulletproof implementation of a bad design. I continue to advocate BU.
Well at least you admit that BU is a marginal implementation. It's also a bad design. But hey, that's just like... my opinion, man.
You know, it's obvious we aren't going to agree, and I really think that's a shame. I think this constant infighting is exactly what people opposed to Bitcoin want to see (and the alt-coiners love it as well). Of course, there has been plenty of drama throughout Bitcoin's short existence and I'm confident that this will eventually just be another speed bump in the road.