It used to be described as the ultimate write-only language. I remember
it being said that Ken Iverson wrote a GUI style text editor in 25 lines
of APL, but was unable to understand it six months later.
... also by Iverson!
As far as J (or K for that matter) is concerned, it doesn't take but
some regular use of the language to master the symbols; the mnemonics
are pretty decent, and the extra operations created by combination with
.. and : relate quite well.
*Because* the language is so concise you typically have much less code
that you have to look at in order to figure out what's going on. Not
necessarily so with a pass of execution spread out over umpteen classes
and methods in Java or C#.
As wit any other language there is poor code written in J and good code
written in J. Good variable names, and choosing explicit or implicit
control structures as best suited, and in general not being too clever,
lead to readable and maintainable J code.
AHS