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
