APL -> A+ : opinionated (vector indices always start at 0, for example) and “electric” GUI (deserves a whole post to describe)
A+ -> K2 : significantly simplified - only ascii, no multidimensional arrays (uses nested vectors instead), much smaller vocabulary but just as effective in the basics department (e.g. the Whitney where/replicate monastic operator replaces 6 or 7 APL operators), added simple dictionaries, workspaces, dropped a lot of math from language. Simpler electric GUI. Time and date native types (as floating point)
K2 -> K3 mostly dropped GUI afaik. Added integral time and date.
k3 -> K4/kdb+: simplifies language more, comprehensive dictionary, TSDB rolled deeply into language (was previously a product written in K), native 64 bit support.
K4->K6: still more simplification, I think k6 is the kOS language. Never left dev state.
K6->k7->k9: continuous simplification, now at shakti rather than kx/firstderivatives - and with much more community involvement.