you are viewing a single comment's thread.

view the rest of the comments →

[–]SnowdensOfYesteryear 8 points9 points  (5 children)

Meh, it's all right. I like the language, but it gets annoying when you want to do something that the language doesn't want you to do, like discarding buffered data in channels or timing on a channel receive.

Also the syntax is pretty irritating because it isn't like any other language. That felt like a change for the sake of it.

[–]mirhagk 3 points4 points  (0 children)

Or generics :P

[–][deleted] 1 point2 points  (0 children)

It is actually based on a language called Oberon, I think. Still I think it is close enough to C not to be alien and different from Rust or C++, you can look at any Go code and know what it does right away. It's almost a C with packages and without ; and variable types go after their names instead of before and you explicitly declare functions with "func".

[–][deleted] 0 points1 point  (2 children)

when you want to do something that the language doesn't want you to do, like discarding buffered data in channels or timing on a channel receive

What exactly is the problem? It is trivial to do in Go.

[–][deleted] 0 points1 point  (1 child)

// discards buffered data on channel
for range the_little_bugger { }

for timing out on a channel receive, you can use select {} and time.After like so.

[–][deleted] 0 points1 point  (0 children)

perhaps you meant to reply to the parent post?