Macros As Freedom
Metasyntactic levels give the user of a system freedom.
Soccer. There is one rule for casual play: do not touch the ball with
your hands. Everything else follows, and all of the rules are develoepd around
this beautiful, simple principle. The structured game falls out from this very
simple idea.
Everything is a list. Actually it turns out that even common lisp
doesn't have proper homoionicity lol, but if your program has a list and you
have this wild 'eval' function that can evaluate a list, turns out you
can consdtruct the world. CPS is less important and actually distracting. CPS
feels like a rule that builds complexity rather than freedom; tools like call/cc
introduce another system of evaluation that is quite difficult to handle in
addition to the traditional one, and programmers wan the value in their head;
they don't want to have to think about all the continuations we have in the
current context, they just want to think about what i can get from what I have
right now and where it goes and to forget about the rest. "CPS is for old
people". - Matthias Felleisen
The biggest thing I don't like about lisp is that it obscures details
about the underlying system; it assumes some model of infinite memory.
Eveyrthing is a stack adn we have this simple stack machine that can do
anything. Insanely efficient, and unlike even lisp we don't need multuple
evaluation levels to properly metaprogram. We can just move functions around on
the stack! This is not dissimilar to tactics, in that tactics keep in mind some
order of application of a list of expressions and allow you to rearrange how
they're applied in a metaprogram when proving theorems. Is a metaprogram the
right word? I'm not sure.
I also like that stack langauges like forth, through their semantics,
implicitly develop a memory model of the underlying system.
DJing is just a macro system for music. You have these completed tracks
made by these beautiful artists, and you can approach whole-track modification
after these products can be completed, ev en adding in new songs and ideas on
top of them. You have this ver ysimple set of rules - you have control ovewr the
position of the track and the volume of the waveform at particular points. and
so much beauty falls out from that and from the music of others. djing is really
a social event, a conversation with those around you. provide them the energy to
hang out!
You can get "into the guts" of DJing as much as you want, and
the same rules apply to every track! but it's this investigative,
descriptive process of breaking down the waveforms of a completed song and
extracting imperfect information from them. you're taking complete products
and dissecting them to form new thing
Writing is inherently unstructured and we can ascribe any structure we
want to it, which is beautiful. prose is unstructured conversation, and it's
important for everything to be a conversation
reminds me of DJing; your role is only to highlight a particular
perspective. you can control the "macro" elements but not the micro
(photoshop can be avoided with better work and better practices!) and i love the
practice of using lightroom "macros" to adjust the environment
globally, and having some level of local change, but not being able to directly
modify everything locally. ie if i'm taking a photo of a building i have no
ability to modify the building, i must just observe it and try to frame it in
the best way possible. this reminds me of worshipping, and maybe djing is
worshipping tracks, but it is also having a conversation with the space
you're inhabiting and with the creators, like programming
Lisp
Forth
DJing
Prose
Photography