4 ms·
I’d like to play with an array language because I’ve never used one. I don’t want to pay for it; this is just for fun and as an experiment. I also want to run i
by kstrauser 9mo ago
I’d like to play with an array language because I’ve never used one. I don’t want to pay for it; this is just for fun and as an experiment. I also want to run it locally in a shell, writing it in a local editor, not working in a web UI. And while popularity isn’t everything, and none of these are exactly Python levels of widespread, I also don’t want to find myself learning a cool one along with 3 other people in the world and then find out all other array language programmers do things completely differently. (Analogy: I don’t want the equivalent experience of picking Haskell as my first ever PL.)
This topic tends to bring up a few, like APL itself, J, K, and BQN. Given those (soft!) constraints, what’s the one I want to start hacking around with?
- vegabook 9mo agothere's also a Forth-meets-APL project called uiua [https://www.uiua.org/ https://www.uiua.org/]
- kstrauser 9mo agoThat may require a little more mental bandwidth than I can summon right now. It looks incredibly cool, though.
- invalidOrTaken 9mo agoI haven't tried the others, but J meets all those requirements.
- RodgerTheGreat 9mo agoYep. J has a small userbase, but it isn't fragmented into dialects like K or even APL, J uses ASCII characters instead of requiring a custom font/keyboard layout, J is FOSS, J has extensive learning materials, and J is reasonably batteries-included and suitable for making practical nontrivial programs. I like K better than J aesthetically, but it's harder to recommend to beginners due to the fragmentation of the ecosystem.
- kstrauser 9mo agoI keep getting nudged in that direction. I'll check it out, thanks!
- skruger 9mo agoI faced exactly this situation a few years ago - I went with APL as the “OG”, but it probably doesn’t matter that much. Learning k or j once you know APL is much easier. I wrote a bit about this (apl and k) https://xpqz.github.io/learnapl https://xpqz.github.io/learnapl https://xpqz.github.io/kbook https://xpqz.github.io/kbook
- kstrauser 9mo agoOh, perfect. Thanks for the links!
- gsinclair 9mo agoI believe Uiua is an excellent one to look at first. It’s simpler than the others you mentioned without sacrificing any power (that I know of). You can type in meaningful words which then appear as cute glyphs, rather than learning new ways of entering things. Each glyph has only one meaning whereas APL (and I think the others) assign context-dependent meanings to some glyphs.