Metaprogramming

essays about the act and art of programming

TODO programming tax

higher level languages are built to help the programmer focus on higher level ideas, protecting them from thinking about memory permissions, etc. this is the case most of the time but all abstractions are at some point leaky given our finite access to memory and compute.

javascript does not accomplish this; it merely shifts the responsibilities of the programmer operating at lower levels of abstraction from thinking about pointers, memory mapping, etc. to thinking about undefined, NaN and object comparisons instead .

proper abstraction enables the programmer to think at a higher level; javascript comes close before dragging the developer down with it

macro notes

haskell doesnt work

macros involve evaluation: running program at compile time

requires running language inside compiler

places burden inside of language implementation to make life tricky

erlang vm has always supported continuously evaluating new code, unlike haskell, which has to have a very strange embedded interpreter to work properly! ghc templates might work better with better multi stage compilation?

macros in ruby are interesting: [https://www.toptal.com/ruby/ruby-metaprogramming-cooler-than-it-sounds]

2022-11-02 9c4e8c1
2022-11-01 c6a3cd9
2022-11-01 c9b459d
2021-09-22 52a677b
2021-09-21 7732812
2021-08-19 87d9551
2021-01-18 af0b1e0