Golang is absolutely not a replacement for c or c++. It's a better replacement for the other languages out there requiring a VM to run anything. In short golang is better at cross platform than these other platforms and is IMHO good for writing good tooling. One of my colleagues said that golang now is sort of like java was in the old, old days. Making the same mistakes and needing necessary features added to become truly productive.
In my opinion ternary stuff is short handed eye candy and not a great reason to discount a language.
c++'s collections and <algorithm> fundamentally and utterly thrash anything golang claims to have, not to mention the whole stupidity around building garbage collection into a language that wants to be low level.
Granted
> not a great reason to discount a language
The ternary quote exemplifies an attitude at the heart of the language designer's priorities. That is, the lack of ternary is, in fact, much more than a lack of ternary.
You mean the word go?
t && a() || b()
Admittedly tho, nested ternaries are tedious to parse by eye. t && a() || (u && b() || c())
Personally, I enjoy Rust's choice of letting `if` be an expression.As a Scala user, I agree it really is the best
val a = if (t) a() else b()
Is it cleaner than C/C++? Sure. It's still a painfully verbose language full of boilerplate and with zero concern for expressivity or the suppression of detail [0].
Which isn't to say it's overall a bad language. It prioritizes other things over readability -- like speed, enforcing consistency, keeping its primitive set small.
[0]: https://golang.org/doc/faq#Does_Go_have_a_ternary_form
(no further evidence is needed)