News for hackers. Stuff that matters.
Re:The Value in Go’s Simplicity by robert_tweed on Saturday November 16, 2019 @09:09AM (#21552688)
An important difference is that Go not only has a concise set of constructs, it also tends to deliberately avoid abstraction.

So any given piece of code is very explicit and self-contained. Apart from function calls, you can tell exactly what it does without looking up anything else, like a macro definition for example. It similarly doesn't have a lot of different ways to do the same thing tends to be opinionated about idioms (gofmt, for example).

Something like a Lisp DSL would be antithetical to the Go model of what simplicity means.

Re:The Value in Go’s Simplicity by ken on Saturday November 16, 2019 @09:25AM (#21552765)
> Apart from function calls, you can tell exactly what it does without looking up anything else, like a macro definition for example.

It sounds like you’re splitting hairs here. In my experience, macros aren’t any more mysterious than functions. The only difference, after all, is when they’re evaluated.

Re:The Value in Go’s Simplicity by silasdavis on Saturday November 16, 2019 @11:43AM (#21553519)
The difference is that they generate code. So now you have compile some code in your head as well as running your hypothetical execution. Nothing wrong with that but they tend to be harder to understand than functions.
Re:The Value in Go’s Simplicity by balfirevic on Saturday November 16, 2019 @09:29AM (#21552788)
The other crucial difference is how their arguments (and result) are evaluated.
Re:The Value in Go’s Simplicity by _ph_ on Saturday November 16, 2019 @10:02AM (#21552947)
Go does not avoid abstraction, only certain constructs. You do have functional abstraction with high order functions. You do have types and methods.
Re:The Value in Go’s Simplicity by pjmlp on Saturday November 16, 2019 @09:45AM (#21552857)
Yep. Copy-paste for the win.

Maybe they should do away with the abstraction that memory is endless.