Edit: this has been posted on HN before.
Edit: this has been posted on HN before.
I'm sure that writing a greenfield APL program is a lot of fun. Initially.
Or if you're just writing vignettes to do some temporary data wrangling then it's fine.
As a language for writing applications that do proper work and need maintaining? Wouldn't be in my top 50 choices of language. And I don't think I've worked with 50 languages yet.
I've been livestreaming a presentation tool / time-travelling REPL for J for a few months now:
https://github.com/tangentstorm/j-prez
It hasn't paid anything directly yet, but my videos probably helped me land my current job.
At work, I use another APL-inspired language called K.
https://news.ycombinator.com/item?id=23055793
"Is APL Dead? Not anymore"
APL dialects April[0] and KAP[1] are improving rapidly, and my own offshoot BQN[2] has gone from prototype to a full language. All of these are open source and made to work with the Unix ecosystem. While the K language isn't as close to APL, ngn/k[3] is following a similar trajectory.
This year we created a Discord/Matrix forum[4] (bridged together) for array languages, which has hundreds of members and a few conversations per day at the slowest. The Array Cast was featured prominently here when the first episode aired[5] and is also worthy of note: they say they now have thousands of subscribers.
[0] https://github.com/phantomics/april
[1] https://github.com/lokedhs/array
[2] https://mlochbaum.github.io/BQN/
[3] https://codeberg.org/ngn/k
if you like terse generic code you'll be fed for a while (too much even, Aaron's two page parser/compiler was somehow too cryptic even for my tastes :)
That parser was mind bending.
But those languages are astonishingly intimidating for new programmers -- reading from right to left, with implicit variables, different usage of brackets, types that are hard to discern, overloading of every possible bit of punctuation, etc makes it more like translating Latin than writing code.
So while a line such as : .[`:/data/raw; (); :; 1001 1002 1003]
is very succinct, the skill and concentration necessary to write that line is not something that lends itself to widespread adoption.