5 ms·
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
by FullyFunctional 4y ago
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.
- sidlls 4y agoI don't understand the fetish for languages like this. Their notations and constructs aren't very high fidelity representations of the way most people who use mathematics think when working on a math problem. Maybe for a (relatively tiny) subset of such individuals, but not generally. The ability to parse and understand the code in these languages has nothing to do with how intelligent one is (outside outliers, such as those with low IQs).
- mlochbaum 4y agoYou seem to take it as a given that the language needs to work the way you already think? The people enthusiastic about array languages have put some time (but not as much as you might expect) into learning this different way of thinking about problems and find it pretty neat. Okay, the fetishization of a language that looks really crazy is... probably the main reason it ever shows up on HN. But the different way of thinking is pretty neat!
- sidlls 4y agoFinding it neat is one thing. Conflating it with having higher intelligence is another
- mlochbaum 4y agoI understood "lesser-gifted" as just referring to facility with symbols and memorization, so I feel like you're reading a bit too much into that comment.
- FullyFunctional 4y agoMy fault for being sarcastic; ignore that part and focus on the how welcoming J isn’t for people coming without prior J understanding.
- avmich 4y agoStart using J as a desk calculator. One can just keep J window open, and run tiny expressions every once in a while for various needs. It probably won't teach effectively more complex features, you might need a bigger project for that. But it will add to familiarity. Where other languages have lots of libraries, J has language where many things are just so easy to assemble from few language primitives.
- FullyFunctional 4y agoTechnically that’s not addressing my point, rather you are suggesting how to learn J, but sure I’ve tried this in the past and I’ll try it again perhaps with a cheatsheet.
- avmich 4y agoIf you tried before - did you read "J for C programmers"? I found that invaluable in understanding what J actually does.
- FullyFunctional 4y agoHmm I’ll check it out. FWIW, I mostly don’t have trouble understanding what it does, only remembering the obscure ASCII mappings is frustrating.
- moonchild 4y agohttps://wjmn.github.io/posts/j-can-look-like-apl/ https://wjmn.github.io/posts/j-can-look-like-apl/