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.

Reply via email to