Please, people, stop using, promoting or even placing J on the same footing as APL. It is an absolute abomination of a language. It's ONLY motivation was that doing non-ASCII characters was really difficult way-back-when. That's it. And in creating J they absolutely butchered the very principles Iverson and others were vocal and passionate about promoting and teaching.
I learned APL about thirty years ago. Yes, we had computers thirty years ago. I learned it from what I'll call "first generation APL'ers". It's like saying "the first inner circle who started to dabble in Linux as soon as Linus made is public". The first disciples of Iverson, if you will. So, I am two levels away from Iverson. I met him multiple times at conferences, seminars and APL university meets. Him and other APL pioneers like Ray Polivka, Sandra Pakin, James Brown, Adrian Smith and Paul Berry. All of these people wrote books about APL and taught it.
Big deal, right? Well, yeah. Because I was in the room, a very small room, with maybe 200 people, if not 100, when this paper was presented by Iverson himself (in fact, I have a picture with him at the event):
http://www.eecg.toronto.edu/~jzhu/csc326/readings/iverson.pd...
Notation as a Tool of Thought was an incredible eye opening paradigm for me back then. I sat there listening to this presentation that pulled together all had learned about APL during the prior year or two of using it. And it was revelation. Notation made the power of the APL concept that much more than the ideas of easy array manipulation. It brought computational problem solving to a level of expression matching mathematical notation. This was way ahead of it's time and I felt privileged to be among the first generation of people using it.
Yet, there was a problem. Machines of the time made it difficult to work with non-ASCII character sets. We had to use specialized terminals (IBM and Tektronix made some).
When the IBM PC came out we had to literally burn a custom character set ROM for the graphics card and replace the line drawing characters with APL characters. That was great, but it sure didn't make for easily opening up APL to the masses. You had to be very, very interested in APL to not only buy an expensive APL interpreter but also engage in swapping chips out of your computer. The language was definitely ahead of it's time. In some cases you had to buy very specific hardware or it would not work.
As PC's exploded and portables like the early Compaq's came out it became more and more difficult to deal with the character set.
And so, I remember going to APL conferences where the concept of transliterating the language started to surface. The idea being to use a set of ASCII characters to represent APL characters and, therefore, enable this franken-APL to be accessible without hardware mods to your computer.
This was incredibly short-sighted. Many of us knew it was a matter of time before graphical display of symbols (like math and music notation) would be easy.
Eventually this evolved into J. A notation that completely abandoned the paper that earned Iverson the ACM Turing Award. It's APL without perhaps the most powerful thing about APL. It looks like a terminal shitting characters because it is operating at the wrong baud rate. Iverson made a huge mistake with J and he abandoned EVERYTHING he was so right to champion years earlier.
If we are ever going to go in that direction again (I think we have to, in some form) we need to understand that notation, more than almost anything else, was the key.
Computational problem solving needs to evolve beyond a state where the best we can do is type English words into a text editor and into something that is far more expressive. For that you need a notation, not an abomination like J.
<rant off>