Every few years I try again to pick up J, however I quickly get frustrated as the "ASCII noise" means you have to memorize an awful lot to be able to read real J. In contrast, I can generally read code in any C-like or Pascal-like language as there's enough familiar convention that I can patch in the rest.
For the lesser-gifted like myself, I wonder if one couldn't attain the power of J without the cryptic syntax. Haskell, for example, has a general very easily understood syntax for function applications: if "add a b" invokes a binary add function than "add a" is a unary function that adds a and the syntax allows for infix expressions, like "a `add` b", "(a `add`)", and (`add` b). (The latter more useful for non-alphanumerically named functions, like (++ [42]). I wonder if J/Apl couldn't use a similar strategy to trade a bit of terseness for something much more readable.