|
|
|
|
|
by scosman
844 days ago
|
|
Faiiir. Nothing was net new concept. But the package they made was quite unique. Garbage collected but always native. No thread access, native channels and coroutines instead. Defer is pretty much net new in language design terms. No while loop?!? “If err != nil”!!? Lots of bold ideas, in a good package, and it worked so well. Calling the evolution boneheaded dismisses how hard it is to make so many opinionated bets in one go, and still make something successful. |
|
> 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:
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]
> Calling the evolution boneheadedI didn't. Why are you putting this here?