Thinking in an array language (2022) - https://news.ycombinator.com/item?id=38981639 - Jan 2024 (152 comments)
Thinking in an array language - https://news.ycombinator.com/item?id=31377262 - May 2022 (66 comments)
So if I understand this right K is one of the more popular/recommended APL-derivatives nowadays. K is proprietary but there are a bunch of compatible implementations which are themselves open source. Is that correct?
Which APL derivatives (with an active/healthy userbase) besides k would you recommend to take a closer look at?
Only APL and K see real industry use. Both are actively developed. K is really a family of mutually incompatible languages, called K3, K4, K5, etc. Financial applications and most of the development is on K4, as far as I understand.
> Which APL derivatives (with an active/healthy userbase) besides k would you recommend to take a closer look at?
But why not APL? Dyalog has a team actively working on their interpreter, and industry has mostly converged around Dyalog APL now. If you want something well-worn through real-world use, then it's basically the only choice, unless you have money to drop on K4 or Shakti. Also, the literature is dominated by APL.
If you're more interested in array languages for their mathematical appeal and for tinkering on puzzle problems, then BQN will probably suit your tastes. If you don't like the symbols and want something open-source, then J is a strong option. If you wonder what kind of baby APL and Forth would have, then Uiua is just for you.
Note that while J and BQN can be considered APL variants, K is somewhat of a separate beast.
Have fun!
I've written and worked on real-world APL applications, and this doesn't fit my experience. APL allows writing some of the most readable code out there, specifically because it makes whole-application architecture imminently more visible.
I like APL because it keeps me from bike-shedding on boilerplate or ceremony and forces me to consistently think about fundamental issues in the problem domain.
That said, APL by beginners (including myself, years ago) can be pretty terrible and effectively write-only. The steep learning curve is very real, and learning to write good APL is synonymous with learning good application architecture and UX.
It's similar to the problem with unix/plan9, lisp or smalltalk. There is it turns out, too much of a good thing.
Such systems are great for learning, but I would make the mistake of building software on them
And Unix is easily the most used family of operating systems on Earth. Every iOS and Mac OS device has a Unix at its core, same with Android, countless computers in data centers running a Linux distribution, probably many other categories of devices as well.
I would hesitate to say building software on Unix is a mistake.
You might have a better time trying something like Uiua[2] or BQN.
Like regexes!