4 ms·
I don't want to repeat myself here so I'll link a previous comment https://news.ycombinator.com/item?id=28094051 https://news.ycombinator.com/item?id=28094051
by rak1507 5y ago
I don't want to repeat myself here so I'll link a previous comment https://news.ycombinator.com/item?id=28094051 https://news.ycombinator.com/item?id=28094051
The tl;dr is that while you have to learn a few more symbols, the benefit of that is they're so composable you don't have to learn anywhere near as many keywords, because they can be defined in just a few characters.
- rbanffy 5y agoYou still need to learn their names and meanings instead of learning names/keywords and their meanings, minus symbols. I'm repeating myself in hopes it becomes obvious that learning the symbols is not needed in other languages because the keywords are already the names we would need to learn anyway and, usually, also make it easy to derive their meaning. Think of how you read code in an unknown language - you look for patterns you usually see and use the names of keywords and variables to understand both what's being done and why. With "vintage" APL, the symbols are opaque and you are left looking for patterns you probably won't be able to identify without first understanding what the symbols mean, because both syntax and alphabet are unknown.
- dzaima 5y agoThe core point of the parent comment was that the symbols become more composable, so you end up with vastly less of them to learn than the equivalent set you'd have in a traditional language with shorthand spam from things like "reduce(+,x)" (or worse if you need a lambda around plus) being way too unwieldy and hard to read. APL has like 80 builtin glyphs, compared to hundreds or thousands of functions in stdlibs of traditional languages, and when you learn those 80, you can read & write all of APL (and the terseness means you can consume information much faster, and knowing all of the language vastly simplifies the writing process too - you might not need to learn all of a traditional language to read it, but writing one well still needs a very big coverage of knowledge, or constant docs lookup). Sure, for someone who knows C-like syntax, Java is infinitely more readable than APL, but if you bother to learn APL, it's pretty simple.