So my first tidbit is to join the Performance channel on the Gopher Slack, because there are some really, really good people in there… But as far as our personal experience, Go has been amazing. I don’t think that we are good enough developers to build this in C or C++. I think we would have failed, because the build/compile cycles, and the memory management and all that stuff - I think you just get bogged down… Whereas with Go, we can have a lot of that taken care of for us; the type system helps us a lot, interfaces, all this nice, fancy, modern language stuff… But it also gives you the escape patches you need when you need to get down and really have super high performance on logical operations on bitmaps.

We employ unsafe in very low quantities, exactly where we need it, to get that performance and to keep memory off-heap, so that the garbage collector is not bothered by the bulk of the allocations… And you can end up with a really nice hybrid where you get the low-level performance advantages of being able to play with memory, but also a lot of the type safety and garbage collection and all those nice, high-level features.