Competition ABCI - Glow-Lang/glow GitHub Wiki
Cosmos offers the ABCI, a way to build your own Tendermint blockchain with its own extensions written in Go for application-specific consensual computations. The biggest problem with this approach is economical: to trust such an application, you need to trust a network of staked validators who all run this code.
This is not a recipe for either decentralization or success; instead of enjoying a large, heavily capitalized validation network, you have a small one that can be cheaply corrupted, taken over; there are high infrastructure costs to running a validator node running across time, and keeping it secure in an adversarial environment with rapid bitrot, and this balkanization of validator networks is not capital-efficient.
Technically, Go is a great language to write servers, but a dangerous language in which to write consensual computations, and not at all a good language to write DApps that have both consensual and private components that must work perfectly in unison. Importantly, the Go language and its existing toolchain aren't designed to ensure that a Go program will behave in a deterministic way without side-effect; that is why each program much be socially vouched for, and the validators for each application must remain separate from the others: if arbitrary application code were to run on the same server using this language and toolchain, malicious applications could disrupt other applications and steal resources.
Thus, the economic limitation of the Cosmos architecture above is a direct consequence of the technical limitation of its application language Go.