> Garbage collected but always native.
Ok, sure. There were no other native garbage collected languages. Ignoring history, this is true.
> No thread access, native channels and coroutines instead.
If we ignore history again, also new with Go.
> Defer is pretty much net new in language design terms.
I can't think of an equivalent in the form of syntax, so sure. This is a point to Go. It's a small change, but useful for flattening code.
> No while loop?!?
I don't know why the exclamation mark. They have one named type of loop with `for`, but they definitely have a while loop:
for x <= 10 {
...
}
That's a while loop, it's not an infinite loop, it's not a do-while loop. That they reduced their looping constructs to one name (and then determine which actual loop kind by what's between `for` and `{`) does not mean they actually removed while loops. This does simplify the syntax, maybe.> “If err != nil”!!?
[edit: missed this one]
if (some_c_lib_fun(...) == -1) {
// check the errno
}
> Calling the evolution boneheadedI didn't. Why are you putting this here?