On Sat, Apr 13, 2013 at 8:05 PM, William Tanksley, Jr
<[email protected]> wrote:
> I'd really like to hear more from the people who use J as a tool for
> thinking. That was, of course, what APL was made for -- how does it
> work for you? I'm curious about the generalities and the specifics.

Since this probably includes me...

First off, at this point, I've been using APL and J for something over
20 years (this includes 10 years dealing with large bodies of text
using APL - I was often focussing on finding and eliminating race
conditions in other people's code a multiuser system), and this also
includes exposure to an APL compiler, which was limited [the supported
apl subset was roughly as capable as fortran but had type inference,
and would compile what a J programmer would call a "verb"], fun,
occasionally useful, and educational.

At this point (since I'm no longer working with APL (or J)
professionally) the most useful thing about the language, for me, is
the perspective it offers.  Refactoring code is, quite literally,
refactoring - it's basically just algebraic manipulation of equations,
even for things that would involve nested control structures in other
languages.  And I am sometimes surprised that a change in data
representation (bit vector -> index vector, for example) results in
updated code that looks almost identical to the original.

Also, if I'm ever stuck on how to code something, the first thing I do
nowadays is code it in J.  Sometimes, if it seems like it would be too
hard to translate to another language I might work out how to use J in
the environment with the right connectivity.  But it's usually not all
that hard to translate from J into javascript or c# or whatever else
(though, granted, it sometimes looks like nothing I'd ever come up
with if I had started from scratch in the target language).  I've even
did some analysis code (lots of inner products, and column oriented
computations) in sql, for example back in the .Net 1.0/1.1 days when
the C# 1 gig memory limit kept me from doing completing computations I
needed in C#.  Since I had originally modeled the computations in J it
wasn't hard to move the big computations into SQL. The result was slow
(something like an hour) but it only had to run once a day so that was
an annoyance rather than a failure.

And, of course, when I am exploring ideas, I often reach for J to make
sure that I really understand what I think I understand. (If I can't
code in J, I probably don't really understand it.)

Is that the sort of thing that you are looking for?

Thanks,

-- 
Raul
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to