5 ms·
APL isn't obtuse—just unfamiliar to people who aren't familiar with it. By the dictionary meaning of 'obtuse', in fact, APL is the opposite: a sharp tool and a
by gruseom 13y ago
APL isn't obtuse—just unfamiliar to people who aren't familiar with it.
By the dictionary meaning of 'obtuse', in fact, APL is the opposite: a sharp tool and a masterpiece of design.
- Locke1689 13y agoI wouldn't describe it as obtuse, but I would describe it as concise. 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.
- LfLxfxxLxfxx 13y agoI've observed two reasons people perceive APL code as unreadable: 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.
- doublec 13y agoKen Iverson wrote an interesting document, "Notation as a tool of thought", which covers his thoughts on what a concise/efficient notation provides: http://www.jsoftware.com/papers/tot.htm http://www.jsoftware.com/papers/tot.htm
- Locke1689 13y agoReally, interesting, thank you! 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 :)
- gruseom 13y agoIf you like the Iverson, don't miss the famous piece of Whitehead's where he talks about notation too: http://introtologic.info/AboutLogicsite/whitehead%20Good%20Notation.html 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.
- Locke1689 13y agoMore sources for thoughts about designing descriptive but efficient language notation: brilliant! Upvotes all around! :)
- sysop073 13y ago"just unfamiliar to people who aren't familiar with it". That was deep
- gruseom 13y agoThat was intentional. Calling a language unreadable is a kind of tautology, because it contains no information about the language, only the reader. Is Sanksrit readable? Saying "that's not readable" about APL is about as foolish as saying it about Sanskrit.