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.<p>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!)?<p>e.g. just read <a href="http://www.jsoftware.com/help/dictionary/didot.htm" rel="nofollow">http://www.jsoftware.com/help/dictionary/didot.htm</a> and some of the stuff in there can be translated quite well:<p>i. 5 --> list(range(0, 5))<p>i. _5 --> list(range(0, 5))[::-1] or list(range(4, -1, -1))<p>i. 2 _5 --> [list(0 + j, 5 + j)[::-1] for j in range(0, 10, 5)]<p>P.S. any pointers to content / books about the philosophy and ideas behind these programming languages are welcome! :D