What I find promising about LISP is the ability to do term rewriting and macros.
But people write lisps in imperative style rather than definitions of desired behaviour declaratively. I don't think we've sufficiently solved how to define desired behaviour to a computer.
Term rewriting behaviours. What are your thoughts?
I started trying to implement term rewriting into my LISP parser, which is the idea that we can match on trees and transform them, subsume branches or move branches around arbitrarily. You kind of want the matching function and transformation function to be imperative or sometimes like a query.
So use ASTs for behaviour and relationships and imperative LISP macros for transformations and rewriting.
The reason I say this is because I dream of a compositional language where I can create a cell in a spreadsheet and say that it should have these behaviours
import load-balancing
import batching
import backoff
import backpressure
import retries
import durable-execution
import memory-contiguity
import memory-alignment
Truly futuristic programming where we we program behaviours.
I am asked to define the terms that these behaviours require.