← writing

what k got right

summary: three months in. why arity-classed vector evaluation still gives modern systems a useful design challenge.

ThePlatform ThePlatform: one runtime, one table work: 2016 technical note

Core idea: K's lasting lesson was that arity and value shape can move complexity out of call sites and into a compact, optimizable runtime table.

K's compactness is a software-engineering story, not a hardware one. The decisions live in the operator table, not at the call site.

Three months in. Most of my time has gone into reading kdb+'s footprints. The thing I keep coming back to is that the same symbol means different things at one and two arguments, and that sounds like a parser trick until you build a runtime around it. Then it is the only sensible way to schedule work. A monadic primitive is a kernel over a column. A dyadic primitive is a kernel over two columns. A triadic primitive is a join. The query plan writes itself, because the language has very few decisions left to make at the call site - they were made in the table.

Everything else in K - the closed atom-vector-dictionary shape, the absence of loops as a syntactic form, the explicit reduce-and-scan adverbs - falls out of that. Once you have committed to a table that does the choosing, you have committed to the rest.

I will not write K. I will write something that owes K a debt.