(long time lurker, made an account just to chime in here)JoshParnell wrote:[Go is] one of the only major languages that I haven't given time to yet. I do need to check it out (although IIRC GC may be an issue here as well).
I have, let's say "moderate" experience with Go. Coming from C++ and plenty of Python coding mostly thingies talking to each other (no interference from pesky humans), Go is quite pleasant to work in. It's syntax reminds of python, e.g. parens used sparingly and the code usually comes out succinct and easy to read.
Performance-wise I'd say it's in the range of "quite good" (comparing to C++). Its concurrency is quite wonderful; spawning "goroutines" left and right, actually by the thousands is no problem as they're not system threads.
Regarding GC, in the context here it's probably important to note that its GC is optimized for short collection time, which they now (in 1.8) brag to be "usually less than 100µs"[1] (no, not ms). Unfortunately, there is very little control over how the GC does its work [2].
That being said (mostly positive, I suppose), a major showstopper could be that there currently is no nice (for some definitions of nice) way of calling Go from C/C++[3], which I suppose is the way you'd like to do it. The other way around is quite easy, however, and even supported by the standard library[4].
[1] https://golang.org/doc/go1.8#gc
[2] https://golang.org/pkg/runtime
[3] http://stackoverflow.com/questions/6125 ... ons-from-c
[4] https://golang.org/cmd/cgo
That's it from me! I hoped that information helped you in one way or the other.
Thanks for all your obviously very hard work!