I've had this thought as well, but wouldn't that make achieving consensus extremely difficult or impossible? I believe Peter Todd pointed this out to me. We can have multiple implementations of Lightning, I understand, but the base layer is different because everyone must agree on every transaction. And apparently fundamental limitations of computer science (inevitable bugs) make accidental forks from multiple implementations all but guaranteed. But maybe that's all nonsense. I've no idea.
Yea, basically this. It makes it incredibly difficult, and possibly impossible in practice. Let alone with the available resources for this kind of thing (which is not much).
It's hard to believe it's impossible. Maybe Core should start breaking the main repo down into libraries to allow some interface specification of the consensus part? Sure, It will need additional financial support to break it down, but once done, making things compatible can be assured simply by comprehensive coverage of test cases. And once the main interface is covered, new implementations can start to flourish.
There’s ongoing work to do that! Look into the libbitcoinkernel project.
Nice! Thank you!