Perhaps. It's not for everyone. Though where impressions of the language are concerned, "C++" is ambiguous... C++11 is a huge improvement in usability from C++03, and 03 is a momentous improvement from the original spec.
I'm sure you're right. I was working with 03, and by the time 11 came out I was just exiting the job where I was using the language, so I haven't really given it a good look.
I think Go gets a lot right...*snip* That said, I have major issues with Go
Wow, great post. I didn't offer much in my original post, but I agree with you on many points. Generics especially. For the last 9 months I've been working in Scala, and boy was I spoiled by that language's generics. Just the other day I reflexively reached into the Go toolbox for a map function, only to come back with some sawdust and mothballs. Even some oddities like the math library not containing a min/max function for any primitive type other than float.
I *sort* of agree with you on compile time and optimization of the binaries, but only in the strictest sense.
I love the quick compile time. It really allows me to get the job done in a reasonable timeframe. When I was a C++ dev, we had something like 3-4M LOC source, and compiled independently on our development machines. From scratch, this took somewhere around 45 minutes. We eventually moved to distributing compilation across all dev boxes, cutting that time down to about 15 minutes, but that still pales in comparison to Go.
It makes perfect sense that this is due to a lack of compile time optimizations, leading to slower runtime. However, I believe that your point about writing code quickly is understated a bit. The balance between performance, time to write, and safety feels about right to me.
I'm currently wrapping up a prototype for a daemon which acts as a sort of syslog-like daemon, staging messages to disk while flushing them out to a streaming service backend for consumption by our other services in parallel. It needed to be up to a certain performance standard, reliable, and portable.
Within about three weeks, I was able to learn the language well enough to implement a highly concurrent solution (well, it's in it's final stages). I imagine the better part of a week was spent fiddling around with the language itself and learning about it. If I had to implement this in C++ using pthreads, even knowing the language, I'm certain I'd still be in the trenches.
Sure, the Go solution might be slower, but the juice was just so easy to squeeze out of it. Even if I'm only getting 80% of the performance I would have out of C++ I'm satisfied.
Of course, as always, it's about the right tool for the job. Go just nestled into that chasm between Python and C++, and I am very happy about that.