I think that even people who are familiar with it could feel that its concision hurts readability. It's not such an unfair criticism as you may suggest.
I think that even people who are familiar with it could feel that its concision hurts readability. It's not such an unfair criticism as you may suggest.
The one worry I have with APL and its descendants is that its conciseness will encourage people to make overly long expressions.
One possibly beneficial side-effect of more verbose languages is that it tends to encourage the use of additional identifiers to hold sub-expressions. The act of naming things is often a good thing for both the authors and readers of a program. More abstractly, it allows the program to carry intentional semantics alongside operational semantics.
This is also a problem I have with mathematics -- mathematical notation often uses context-dependent single-letter variable names for semantic information, which is terrible from an outsider's perspective (and by outsider I really mean anyone who isn't working in the exact field of the mathematician).
Edit: I should mention that I'm still pretty enamored with J for numerical computation, even though I never do any of it :)
http://introtologic.info/AboutLogicsite/whitehead%20Good%20N...
Iverson took one of his epigraphs from there, but the whole thing is short and well worth reading.
Fun fact: Iverson, Roger Hui (the J guy) and Arthur Whitney (the K guy) were all from Alberta.
1. They are not familiar with the symbols. It's the equivalent of trying to read a label in a foreign language. The text may seem unreadable to you, but if you learn the alphabet/hieroglyphs and some vocab, it makes sense.
2. They aren't used to brevity of notation. An APL program is to be read character by character, the way one reads a Java program line by line. Brevity is an advantage because it allows you to see more of a program's structure at a glance.