Google made a wonderous language, actually, scratch that, co-designers of C, unix and so on, reverted from their java-inspired inferno of uselessness, but - well, lock free channels are wonderous and Rob Pike is one of my heroes these days.
I might be a bit biased, but in my opinion, TM and Cosmos would never have existed without Go before it. I don’t know why, but it seems to be ‘convention’ but not ‘idiom’ to use these two aforementioned serialization and rpc frameworks. Far better, and faster, according to benchmarks, is rpcx and messagepack, by somewhere around 10-20% depending on the workload.
I am going to dig into how to write codecs that throw these crummy C/C++ based libraries that require separate generation phases. I personally am repulsed every time someone puts a different dep manager or build system on Go. Not that I think go should not be running generators for me automatically, but for anyone who has tried to work with C based libraries (eg OpenSSL) it is a huge pain when you want to actually start making your code fast, there is an opaque barrier between C and Go and with Go at least you can depend on things being done certain ways but with C, all that GC and scheduling logic is ignored and unavailable.
Maybe I would even say, I think that it should be a parallel path available when nodes have it enabled (for whatever reason one would not want it enabled, is beyond me).
I am working on other codebase in parallel to learning how to build apps with Cosmos, and it’s a priority for me in the polishing phase to integrate rpcx and messagepack on different ports. I will probably be building modules doing the similar thing in my current work (and don’t get me started on the mess of cobra/1980s grade CLI commandline LANGUAGE processors - I have started work on a more intuitive set-based config/cli system) and as I can, I will be trying to infect the world with the reasonable and rational idea that many safety features don’t need to be hand-written or especially not require integrating other languages into my otherwise uncontaminated paradise of Golang.
Just wondering, really, with this provocative post title, what other people who actually work with Go and do stuff involving network/disk/database serialization and rpc/rest/etc stuff. The REST stuff looks good as far as I can see but I see a problem every time I have to step into cgo or use something other than
go to compile my code, because
go makes my life fun, makes my coding interactive, and makes me not regret moving on from Python.