macros are generators
you just don't really grasp what is going on under the board
it's a really liberating thing knowing what goes on under the board
i'm not against the idea, per se, but text/template has got everything covered and personally i prefer to use string concatenation and fmt.Sprintf rather than go to the extra effort of writing a template because frankly i'm not used to templates and it is fast for me to do
all your macros do is make for less keystrokes not less thinking, and they make for more divergence of your codebase from the underlying language - that's why #golang doesn't have macros
that's why there is gofmt, and why go is more readable than python, which is the most readable language until go
knowing what is done because of your code lets you avoid a bunch of really dumb performance and security problems that almost everyone falls into then tries to pretend didn't happen, and that's why #golang makes complex operations require a lot of code, so you remember it's complex
that's why go doesn't have macros, and why its "generics" are so limited (only work on builtin types)
a lot of people, like our fiatjaf, don't realise this and think "any" is some python/javascript dynamic type thing
no, it's an interface, any is an interface
that's why you have to type assert it and that's why if you type assert it wrong your program dies with a nice stack trace
it's false economy, all these things, that's why two of the most experienced developers in the whole industry who are still alive (!) are working on Go... co-designer of C and a guy who was documenting Unix, and teh guy who devised the chrome javascript interpreter, which is the fastest one and is the basis of nodejs
the whole industry disses on these guys and the industry uses their shit all day long, it's hilarious