On Tue, Feb 24, 2009 at 2:14 AM, Tracy Harms <[email protected]> wrote: > Don Watson initiated a conversation under the title "Teaching" on the > General forum. I'd like to sketch out some further thoughts along > these lines. > > Among the most important strengths of J are its notational nature and > its extraordinarily simple, general syntax. The spelling of its > primaries, while semantically admirable in ways that have been > elaborated by others, leads to difficulties of recognition. Iverson's > notation eliminates the syntactic patterns that are rooted in spoken > language, which means that cues we commonly rely upon to identify > patterns by sentence structure are missing. A good deal of concision > results from that choice, but it means that many more elements must be > interpreted on their own rather than within a larger pattern. > > The difficulty with two-character primaries is not that they are less > concise. The extra length is irrelevant. The difficulty comes mostly > from the fact that the primary symbols have been constructed from > characters that evolved as minor modifiers; they are hard to read > because their primary use relies on their being unobtrusive. Take a > text, eliminate all the punctuation, and you have a text that does not > look very different from the original. Even the space character is in > this class. (Most ancient languages were written without spacing > between words.) Punctuation characters are not well suited to be > understood on their own, in large part because many look very much > alike, and especially because they are mostly diminutive. > > Mind you, ASCII punctuation marks are what K.E. Iverson had to work > with. He did a fine job with what he had, but his work here was > distinctly bricolage, in contrast with his original decision to use > symbols that extended his success at the chalkboard. > > I agree with Don (and several others) that J will benefit from > improved display, and that this can be accomplished without departing > from the established spelling of J primaries. At this moment I won't > elaborate on particulars except to say that I envision @: being > displayed as a small black circle (a.k.a. bullet) and @ as a small > unfilled circle (as in the math notation that inspired it.) > > Let me go beyond the idea of replacing, (for display only, not typing > or text editing,) J primaries with improved (but visually similar) > symbols. What I think J naturally leans toward is having symbols stand > in for defined names. Again, this can be done while having the text > that is typed (and also copied, pasted, and saved) be standard text, > but the display show something else. The defined name could be 'Aleph' > and the display be the Hebrew character of that name. All the Unicode > characters would be readily available in this manner. Other symbols > could be supported, too. In fact, they can include hieroglyphs, in > which case Donald McIntyre's phrase "from hieroglyphics to APL" will > look more like a circle! > > Long variable names strain the symbolic structure in which J is > strongest. Symbolic substitution for defined values will amplify one > of J's greatest strengths. (Haskell's support for user-defined > symbolic operators is worth noting, here.) I anticipate that once > editors are built that support this sort of visual enhancement they > will be favored in many circumstances, perhaps most. > > No change whatsoever would be needed from J Software for such a thing > to occur; the language specifications would persist untouched.
This reminds me a lot of the pretty-printed Literate Programming approach (CWEB, for example). In this style of LP programming (there's also the non-pretty-print variety, e.g., noweb), there is a clear division between writing the code and its subsequent presentation. And since the focus of LP style programming is on exposition of thoughts, rather than code-with-comments, this might be an easy way into experimenting with various ways of presenting J to a reader. Robby ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
