I've long been a big fan of APL, since I learned it many years ago. I started by studying on the classic book by Gilman and Rose and trying to use the scarce freeware/shareware implementations available at the time. At the time it was hard or impossible to get anything working for free on a Linux computer.<p>Nowadays there is a great, free, and actively maintained implementation: GNU APL. That, combined with the widespread use of Unicode and the APL support in Linux/XOrg keyboard definitions, make it so much easier to get started than in the past.<p>I have used APL mostly for fun, that is, for learning the language itself, solving mathematical puzzles, and taking part in "code golf" games. I find the language exquisite, especially its programming model based on multi-dimensional arrays, its graphical symbols, and its grammar. But it is somewhat "impractical" to use nowadays.<p>J is a great successor (designed by the same mastermind behind APL) but I found it harder to learn (and to read) due to its ASCII "line-noise" look and to the prevalence of point-free or tacit function definitions, which I find inferior in readability.<p>I'm only now learning NumPy and TensorFlow, and I bet their authors were inspired by APL.<p>Does anybody have any benchmarks of J's performance against NumPy?<p>As for K, I wouldn't recommend picking it up. It's closed-source and documentation-less, meaning good look if you run into any trouble; its error messages are notoriously infuriating; it overloads its operators with a ton of meanings, depending on context, even more so than APL and J; and its fundamental programming paradigm is not based on multi-dimensional arrays.<p>On the other hand, writing an APL-like frontend for TensorFlow looks like a nice project!
Have any data scientists here who were primarily working in R or Python, learned J? What did you think?<p>I love programming languages that teach you new ways of thinking about programming and I'm very curious about the APL family--thinking of learning J or q/kdb+.<p>I do most of my work in query languages on column-store databases, then some visualization and hypothesis testing on top. So I'm wondering if I could find J more expressive than R/Python + some SQL-like language.
why does no programming language website ever include an example of the language? just a hello world or whatever would go a huge way. this annoys me so much.
NB. You can get J for Apple iOS, free: <a href="https://itunes.apple.com/us/app/j701/id1255235993" rel="nofollow">https://itunes.apple.com/us/app/j701/id1255235993</a><p>and it's apparently got a new in-app keyboard to make it easier, since last time I looked.
For a second I thought this was the return of J Sharp <a href="https://en.m.wikipedia.org/wiki/J_Sharp" rel="nofollow">https://en.m.wikipedia.org/wiki/J_Sharp</a>
I suggest they update the logo since it now looks very out of place.<p>Does anyone use J for anything aside from experimentation (and math)? I know the same question is asked of everything that deviates from the mainstream, but the APL (and by extension J) world seems really far out from my mental model of computers.
Seems to be a lightweight shell that links to their wiki: <a href="https://code.jsoftware.com/wiki/Jd/Overview" rel="nofollow">https://code.jsoftware.com/wiki/Jd/Overview</a>