metaprogramming
essays about the act and art of programming
TODO programming tax
higher level languages are built to help the programmer focus on higherlevel ideas, protecting them from thinking about memory permissions,etc. this is the case most of the time but all abstractions are at somepoint leaky given our finite access to memory and compute.
javascript does not accomplish this; it merely shifts theresponsibilities of the programmer operating at lower levels ofabstraction from thinking about pointers, memory mapping, etc. tothinking 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 atcompile time requires running language inside compiler places burdeninside of language implementation to make life tricky erlang vm hasalways supported continuously evaluating new code, unlike haskell, whichhas to have a very strange embedded interpreter to work properly! ghctemplates might work better with better multi stage compilation?
macros in ruby are interesting:https://www.toptal.com/ruby/ruby-metaprogramming-cooler-than-it-sounds