Someone who was _very competent_ with J gave a demo of it at one of the Recurse Center (ne Hackruiter) _Brain Dump_ meetups back in the day and broke the crowd's collective brain. It might as well have been Brainfuck to all of us, but the proof was in the ... STDOUT. I believe they were demonstrating the standard factorial, map/reduce, etc. sorts of solutions you'd expect, but I remember being shocked by the small amount of code required to achieve the desired outcome. To the point the article appears to make, this may or may not be a good thing in terms of team productivity and maintainability, but it was damn impressive.
There's a very elegant Haskell quicksort implementation that misses out on performance because it's not in-place. It's frequently used as a demonstration. The performant version looks as bad as C.
I'd be more interested in a J/K demonstration that plays to the language's strengths. How about live-commentating e-sports?
* Player gets first blood. Commentator executes search query in J across DB. *
"We've seen $PLAYER_NAME contribute to 65% of first blood situations across their last 10 matches."
Idiomatic K solutions (and from what I hear, J as well) tend to be faster than idiomatic C solutions to the same problems.
It originally seemed like magic to me, but really - there is no magic. It is simpler in K and J to process more things, in more stages, but with completely predictable and very pipelineable operations. The J/K program often does 2 or 4 times as many operations, but has virtually everything prefetched to L1 before it’s needed so it runs as fast or even faster.
CPUs are constantly converging towards the K model (GPUs were always there).
K is often shorter and simpler than J for these kinds of things, although J’a much richer vocabulary pays off if the problem domain lends itself to J’s immense built in vocabulary.
I have a hard time understanding where apl/j/k maintenance costs could be higher than java / c#
As A. Hsu say, a java method name is long enough to encode a complete algorithm. the drag of having to maintain MLoC of boilerplate with all the opportunities for bad naming, bad style, NPE and such is so huge.