> 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.
Go does not avoid abstraction, only certain constructs. You do have functional abstraction with high order functions. You do have types and methods.
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.