What Ever Happened to APL? 19
geophile asks: "Is it still supported? Are there new applications being written in it? Has it been extended? Did it die? When and why? Whatever happened to those funky keyboards?" APL [?] has the distinct reputation of being one of the most cryptic programming languages ever invented, due to the fact that it's a language based entirely on symbols. Is anyone out there still using it? If so, for what types of projects?
nlp (Score:2)
It Lives! (Score:2)
We got our APL from a company called Dyadic: http://www.dyadic.com/ . They're still in business (more than I can say about my ex-employers).
It sorta lives on... (Score:1)
I haven't heard of it otherwise. For hardcore mathematical coding, it seems like people are using one of the CAS systems like Maple, Matlab, or Mathematica. It seems that a lot of those systems have a lot of the same sort of operators that I learned when I learned APL.
It scared me... (Score:1)
Note (Score:3)
Re:It scared me... (Score:1)
Not the most cryptic (Score:1)
J language (Score:1)
Re:It scared me... (Score:1)
Re:APL, the relational language (Score:2)
--
Re:nlp (Score:1)
Of course, depending on how you look at it, APL is significantly more straightforward and natural than English.
Re:It scared me... (Score:4)
--
Re:Note (Score:2)
Re:Soliton (Score:1)
It even ran on a "portable" (Score:2)
Had a choice between APL and BASIC, I finally settled on the APL as the higher-level operators gave us better performance, and the workspace-based nature of the language was very good for allowing the equipment to be shared out.
What ever happened to Dr. Iverson, anyway?
Special Interest Group on APL (Score:2)
Re:Note (Score:1)
It's not free, or even cheap :-(
On the plus side, you can download nice PDF versions of their reference manual and user guide for free, and hopefully the syntax is close to J.
APL was fun (Score:1)
APL, the relational language (Score:2)
Other operators allow collapsing or aggregating along one dimension, eg +/A sums up A along its "first" dimension and produces an array of the results. Another operator transposes the array to put the dimensions in the order needed to match other arrays, etc. By transposing and aggregating, complicated relational operations can be performed in one line of code.
In fact, I realized recently that APL has many of the capabilities of SQL, but it is many times more concise. The reason is that, while SQL demands writing out join conditions for every "dimension" (join key) in an expression, APL works by knowing which dimensions are supposed to match in each operation. For example, say A and B are "tables" with 3 "keys" (dimensions) d1-d3, similar to A and B above. If we want to add up A+B elementwise, we have to write out something like:
This is cumbersome and varies according to the number of key fields in A and B. Hopefully you can see that APL is a better solution in this case.Someday I hope to come up with an APL-like shorthand for doing relational queries. The main idea would be to have joins, cartesian products, aggregations, operators, etc. that work by implicitly matching keys rather than by listing them. In fact, a lot of the APL operators would work if applied directly to tables, eg
or