Motivating examples include:\n\n  macros: generating customized implementations given\n  generalized packages, such as sort.Ints from ints\n
\nIf this is seriously their proposed solution to the lack of generics then my estimation of Go just dropped even further.

It is a bit astonishing what lengths the go community is willing to, er, go, in order to avoid compile-time code execution (the basis of lisp macros) or generics. I understand that neither of these ideas were invented at Bell Labs during the 1970s, but at some point, can't we just put aside the not invented here syndrome?

Could we all just agree to pretend that Bell Labs folks invented those ideas? Would that work?

So how many programming languages besides LISP are powerful enough to support turning Protocol Buffers into code during compilation? And is this the ultimate must have?

D, Rust, Nim(rod), Template Haskell, OCaml, C++...

I don't think these can open and read .proto files during compilation.

Rust can.

Are you referring to compiler plugins like the one providing regex! macro or is it something else?

Yes, compiler plugins. For a relevant example, check out the Rust docopt crate[1].

An identical technique could be used for yacc or protobufs.

[1]: https://github.com/docopt/docopt.rs