Hacker News new | ask | show | jobs
by Tomte 2210 days ago
I've wondered that myself, because the zoo of symbols doesn't speak to me, like iota, but maybe the mathematical use has something to do with the APL use.

So I simply assume there is something deeper going on than "it looks ugly". Maybe someone here is in that camp and can tell us. At least the argument was made on HN in some earlier APL or J thread.

2 comments

There is something I call "the whiteboard test". I work in research, and I spend a good part of my time working with formulas in whiteboards and discussing about them with my colleagues. I am constantly confronted with the irregularities and limitations of standard mathematical notation and see APL as a huge improvement, I would really like to use it more, and I have even taught some basics to colleagues so we can use +/ for sum and ×/ for prod, or ⌈ and ⌊ for max and min, for example.

Iverson solved some remaining inconsistencies in J, and it includes some elegant concepts as tacit programming (+/ % # for the arithmetic average is beautiful) that were not in the original APL, but I do not see myself writing J in the whiteboard or a notebook.

But ASCII may not be the main problem. Curiously, I find that K performs much better in my whiteboard test than J, perhaps because the set of symbols is much smaller. And if you think it may be a matter of getting used to it, I have worked with APL far less than with J and still find the APL symbols more appealing.

There are many things I like about J, and I do not have a very rational explanation to give you, but I agree with those that say that APL is a better tool of thought.

Are you really saying that non-ASCII is notation and ASCII is not? When I read your first comment, I understood it to mean that better notation is better than worse notation.
I'm not saying that. Some APL fans say that ASCIIfication of APL is a bastardization, because notation matters. (search through earlier HN threads)

Notation is obviously a shorthand for "sensible notation" or even "better notation" there, because obviously just about anything can be notation. Including laying out pebbles on a beach.

But further than that, I don't know.

The usual argument is that "one should APL like one reads music", meaning that with experience you immediately recognize specific patterns which help you understand what is going on. As for why ASCII can't do that, only the critics know their true reason, which I suspect amounts to "it's different from what I'm used to". I've done both, and I found J notation no more obscure. Critics should also note that (Dyalog) APL departed from APL2 to copy many J patterns, so it appears difficult to argue that J was such a mistake to begin with.

Some people hold prejudice against parentheses and prefix notation, for others it's ASCII...

ASCII is a much smaller space of possible operators, so an ASCII-based language is always going to end up significantly more verbose than one that allows non-ASCII symbols. I don't use APL but I definitely appreciate being able to write ≤ or ⊆ or ∀ if that's what I mean, rather than having to expand those out in ASCII.
≤ "expands" in J to <: Definitely not more verbose.

J uses . and : as modifiers to a base operator to create a pretty big set of primitives. See https://code.jsoftware.com/wiki/NuVoc

> ≤ "expands" in J to <: Definitely not more verbose.

I mean, in a fixed-width font (as people tend to use for programming) it's literally twice as long. That adds up.

Actually, J is often less verbose than the equivalent APL, hence its use for code golfing.

This is less true since APL has begun integrating J semantics and operators, but still..

I should have used the full sentence. Why does it stop being "notation as a tool of thought" See comments like this one https://news.ycombinator.com/item?id=20732924