|
|
|
|
|
by gpderetta
2439 days ago
|
|
> type checking and metaprogramming are fundamentally at odds [1] I would say that dynamic metaprogramming is at odd with type checking (and optimizations, and in general understanding the behaviour of a program statically). But of course metaprogramming can be done perfectly fine in a statically typed language. |
|
My blog posts give some more color on that, but also see:
https://discuss.ocaml.org/t/the-future-of-ppx/3766 (breakage)
https://words.steveklabnik.com/an-overview-of-macros-in-rust (breakage)
Also, OCaml has had at least 4 different metaprogramming systems -- ocamlmeta, camlp4, ppx, etc. Rust is getting its second one post-1.0 as AFAIU.
There are lots of open problems related to metaprogramming and type system design because they interact heavily.
This blog posts also hints at that: https://nim-lang.org/araq/v1.html
In contrast, in Lisp, metaprogramming is "just programming".