Justus,
I agree with you in spirit, but you should be a bit more up-front about the fact that Conformal's bitcoind implementation is written in the "Go" language.
There's nothing wrong with that, but there also isn't much demand outside of Conformal for a bitcoin client written in Go. If one of their major motivations was to contribute to the bitcoin community they would have chosen a language that more bitcoiners know and therefore can contribute in. In other words, their contribution is primarily to the Go community here, not the bitcoin community. That's okay.
FWIW, I write my "serious" code in Coq, which is a hell of a lot more obscure than Go… glass houses, stones, etc.
I can't disagree with you more. I'll talk about Go here in a moment, but the first thing I want to get out of the way is the fact that many improvements to the architecture made by btcd are now being incorporated back into bitcoind. So, I'm not sure how you could claim that btcd has not contributed to the Bitcoin community. That is patently false. On the contrary, we are quite proud that our contributions have been improving the ecosystem.
For example, the btcd codebase created btcctl as a standalone RPC client, rather than shoving it into the daemon, months ago. Just now, in the upcoming 0.9.0 release, bitcoind is following suit with bitcoin-cli which incidentally is almost an exact clone of btcctl.
Second, we made a blog post back in the beginning of Oct 2013 about btcd's architecture along with the benefits of separating the wallet from the core daemon (
https://blog.conformal.com/btcd-not-your-moms-bitcoin-daemon/). It would appear that at least some of core bitcoind devs agree as just after our announcement, plans were announced to do the same thing for bitcoind. If you haven't noticed, recently bitcoind has been working to separate the chain bits via the -disablewallet option. Once again, that idea is directly from the improvements made to the fundamental architecture by btcd which has already had this functionality for 6 months.
Those are just a couple of examples. If you spend some time cross referencing the release notes for 0.9.0 with architectural improvements made in btcd, you will find more instances of our contributions influencing bitcoind in a positive way. This goes both ways.
On the point of Go, it is not at all an obscure language. It is rapidly rising in popularity as noted on many language popularity tracking sites. Anyone who is familiar with C/C++ can pick Go extremely quickly. Interestingly enough, we frequently hear from people that weren't familiar with Go at all say they have a far easier time reading, understanding, and reasoning about the btcd code as compared to the bitcoind code. I would urge you to take a look for yourself rather than take my (or their) word for it though.
Perhaps most importantly, the modular design of btcd makes it easier for businesses to build services. For example, if you want to create a transaction script with the bitcoind codebase, you'd probably end up doing what everyone else has done and hand roll them as it's not easy to access only that functionality from the bitcoind code. On the other hand, creating a script that has canonical encoding which pays to an address (whether it's a pubkey, pubkey hash, or a script hash) with the btcd codebase is as simple as:
import "github.com/conformal/btcscript"
script, err := btcscript.PayToAddrScript(addr)
if err != nil { /* handle it */ }