On Fri, 10 Jul 2009 13:52:35 +0100 Robert Raschke <rtrli...@googlemail.com> wrote:
> On Fri, Jul 10, 2009 at 1:14 PM, erik quanstrom <quans...@quanstro.net>wrote: > > > > there has also been a lot of discussion in the past 1-2 months about > > > K, a successor to APL, in #plan9. you might ask there; i may have > > > missed a more recent development. > > > > could someone please explain to the ignorant, what > > is interesting about apl? the last surge of interest i > > recall in the language was in 1983. ibm offered an > > rom for the mga (monochrome graphics adapter) > > that substituted the odd apl characters for the > > equally-odd pc character set's bucky-bit characters. > > > > - erik > > > > > Don't view it as a programming language, view it as an executable > mathematical notation instead. And as such notations go, it is very > rigorous; but also a bit esoteric when you come at it from a programming > background. > > The J "dialect" of APL (http://www.jsoftware.com, essentially the > continuation of Ken Iverson's development efforts after APL) is a great tool > for thinking about generalised operations on vectors, matrices, cubes, etc. > There's a great self-published book on graphics and image processing called > "Fractals Visualization and J" by Cliff Reiter. > > The learning curve is very steep (unless you've never programmed and are > used to lots of math). And there is a tendency of adherents to strive for > the shortest possible expression(s) to solve a problem. That means it all > looks a bit opaque from the outside. But it is possible to write J code that > is elegant and easy to understand, even if you come back to it after some > time. I took a look at Q recently. The ancestry of Q is APL -> K -> Q but then there's a disjunction, the open-source Q being written and maintained by a different person with no reference to the Ken chap who authored K. I think the open-source Q is an independant implementation & not this Ken's implementation of Q, but it's possible Ken didn't create Q at all. I'm a little hazy on that detail. The difference between K & Q is primarily that K uses single letters and various other ascii characters where Q uses words, making the learning curve for Q slightly shallower. The open-source Q has also been unmaintained for the last 2 years or so. (It fails to work correctly in 64-bit Linux.) Development has moven on to Pure, which delightully is implemented as a front-end to LLVM, that new compiler collection that's written in C++. Q is at any rate easy to compile & works correctly on 32-bit Linux, as far as I can tell. The core package of Q is very light on it's dependencies too. Q seems pretty easy to learn if you can wrap your head around the idea of writing in quasi-mathematical abstractions, which is the part I'm struggling with. I'm sticking with procedural for now. -- Ethan Grammatikidis Those who are slower at parsing information must necessarily be faster at problem-solving.