
Lessons from APL, a “Lost” Language - ngcc_hk
https://blog.benjojo.co.uk/post/2014-05-26-APL-the-lost-language.md
======
vincent-toups
When I started my current job as a data scientist I spent the first three
months or so doing all my work in J (a descendant of APL that doesn't need a
funny keyboard).

I'm a long term Lisper (prefer Scheme) and so I have a high tolerance for
languages with weird syntax and small communities, and I had to write a lot of
code to get a working environment in J (for instance, I hand wrote my own
simple system for interfacing with Hive, which I used a lot back then).

The main thing I did was implement Naive Bayesian inference on some internal
data and lots of plotting.

J is fun and it gives you that special feeling of doing something hard and
weird which sometimes motivates me, but in the end I gave up on it in favor of
R and Python. Surprisingly, the main thing that won me over to these languages
is that they were faster and required less care. I'm not stranger to
vectorization (did Matlab for 6 years during my PhD) and I liked doing it in
J, but in the end I could do less work and get sometimes much better
performance out of R.

Plus, even after many months of doing J full time, I still have to get into a
whole headspace to even _read_ my J code. R and Python are at least legible in
a way that you can come back to after awhile.

Finally, I started to really miss the uniformity of simple, first order
functions with lexical scope.

Still miss the notion of verb rank, though. Wish it was part of modern
languages.

~~~
jshaqaw
I absolutely agree. I’ve never had an actual use case which made sense for me
to utilize J vs a conventional alternative but it is a blast and I too get
pleasure from the “weird” in programming.

~~~
avmich
I've had a positive example of using J for a prototype which wasn't
algorithmically clear initially. So I had to twist and turn some parts to
figure out what actually is possible and simultaneously good enough.

Interesting that developing a POC in J took about 40 minutes and then
rewriting it into C# took 3 hours, even though with C# it was clear what's
needed. J can be surprisingly efficient for research work.

------
Aearnus
I wouldn't really call APL/J/K "lost" (or "dead", or "useless", or...).
There's an active community on Reddit and there's a pretty active circle of
APL'ers on Twitter. It wasn't ever a super mainstream language, but it's
definitely not lost its appeal -- maybe even as a fun hobbyists' language.

~~~
smabie
kdb+/q is reasonably popular. And the salaries are very very high. I know some
q guys pulling in over a million/year.

~~~
non-entity
Wow I had never heard of those technologies before. What kind of background
would you have to have to get a job like that? What companies are hiring
people on damn near a million?

~~~
smabie
Banks. Maybe some hedge funds or prop trading shops, but mostly banks.

