Disclaimer: I don’t mean for this to seem controversial or offensive and am genuinely curious. I have no idea what I’m doing. I’m probably wrong, and will keep it short.
tldr: What if “Specs as data” was the primary design constraint?
The operations could be functions that take data and return data. The stuff in alpha2 like
resolve-spec are appreciated but I’m still exposed to objects (what is this, java?) and macros which severely reduce expressivity and seems to increase complexity in spec itself (e.g.
defop). Clojure taught me to think like this and I’m confused about something so core is taking such a drastic departure from the foundational “everything is data” tenant. Is it technically necessary?
If specs aren’t pure data, how do we send them across the wire and save them in our dbs (among all the other benefits that pure data give us)?