

A Programming Language, now in HTML (50th anniversary) - ranit8
http://www.jsoftware.com/papers/APL.htm

======
silentbicycle
That version is incomplete -- there's a full PDF at the Computer History
museum's Software Preservation Group page
([http://www.softwarepreservation.org/projects/apl/book/APROGR...](http://www.softwarepreservation.org/projects/apl/book/APROGRAMMING%20LANGUAGE/view)).

------
felixr
I always wondered whether APL is a language worth learning. I would love to
hear some opinions about APL or its children (J, K, ...).

~~~
wickedchicken
I used K professionally for a bit. The people who love it _dearly_ love it,
and it is exceptionally great for any type of linear algebra or relational
database problem. One of the interesting insights I was made aware of: in K,
the slowest operation is usually no more than an order of magnitude slower
than the fastest. Since all of the operators are 'approximately the same
speed' it's much easier to reason about a program's performance. It's also the
reason K programmers obsess over the character length of a solution, often the
shorter solution _is_ the faster one.

On the downside, I found K to be very polarizing with respect to
interoperability. There is a K way to do something and 'the other ways,' and
attempting to bridge the gap leads to a lot of headaches. Part of it is that K
is so good 'inside' that not as much effort is given to interacting outside of
that world. The K programmers I know are aware of this, and I think this is
more of a critique on the size of the community rather than its mindset.
They're focused on solving actual problems rather than the gardening involved
to keep the language friendly.

One nice thing is that K programmers tend to be higher up on the intelligence
side of things[1], so if you meet someone who knows it you're probably in for
a great conversation.

[1] like look at this crazy shit <http://www.nsl.com/k/ray/ray.k>

------
sxcurry
APL was the first language I learned - I had a very interesting and forward
looking Engineering Professor who taught us how to solve complex systems of
equations using APL. I loved it, and am sorry that I don't use it anymore.

~~~
gtani
IBM APL2 was the 3rd or so language I learned. At Merrill, I remember
workspaces with tens of thousands of LoC, possibly over 100K. Also we used to
have "each" contests and obscurified APL contests, where nobody could read
anybody else's code

------
chris_wot
I'm interested... what level of mathematics do you need to know to fully
understand this text?

~~~
ola
Just browsing through I'd say an introductory course in linear algebra and one
in discrete mathematics should be enough. I'm not an expert on mathematics or
APL so take my advice with a grain of salt.

