A look at the J language: the fine line between genius and insanity (2012)
I've read a bit about APLs and I've seen them popping up in HN a few times. They do seem incredibly awesome and the products around it (K/KDB+ etc) amazing.However, in case I ever felt like learning one of these, I'd always wanted to know: the syntax crazyness, "a la brainfuck", is it a feature? a bug? Is it really needed? Can't they make an APL "look like Python" but using the same concepts, etc? Or is it "a thing" / something ultra-core to these languages, to be extremely terse / cryptic and intensely dense (each line packs a ton of punch!)?e.g. just read http://www.jsoftware.com/help/dictionary/didot.htm and some of the stuff in there can be translated quite well:i. 5 --> list(range(0, 5))i. _5 --> list(range(0, 5))[::-1] or list(range(4, -1, -1))i. 2 _5 --> [list(0 + j, 5 + j)[::-1] for j in range(0, 10, 5)]P.S. any pointers to content / books about the philosophy and ideas behind these programming languages are welcome! :D