Yes, APL is the ancestor; Arthur Whitney wrote A, a miniature APL interpreter which inspired Roger Hui’s implementation of J (designed by Ken Iverson who previously designed APL).
J optimized for purity, K for practicality.
I remember reading a commentary from Iverson that, despite J’s beauty and theoretical niceness, at least two practical choices made by K turned out to be better:
1. Doing left-to-right scan and fold; this is inconsistent with parsing, but turns out to be significantly more useful
2. K’a minimalistic currying (juxtaposition) is not as nice theoretically as J’a trains and forks, but turn out to be much more useful in practice.
However, I don’t remember where I read that and cannot find the source now.
J optimized for purity, K for practicality.
I remember reading a commentary from Iverson that, despite J’s beauty and theoretical niceness, at least two practical choices made by K turned out to be better:
1. Doing left-to-right scan and fold; this is inconsistent with parsing, but turns out to be significantly more useful
2. K’a minimalistic currying (juxtaposition) is not as nice theoretically as J’a trains and forks, but turn out to be much more useful in practice.
However, I don’t remember where I read that and cannot find the source now.