I see the short-term advantage of hiding J beneath keywords but I think it's costly because it submerges some of the language's advantages.
One of J's general advantages is that it is a symbolic notation. In his essay "Seven Great Blunders of the Computing World", Neville Holmes lists "Scientific Programming" as one of these blunders because this promoted lexical, rather than symbolic thinking. Unfortunately, this is one of those blunders so well-entrenched, like order of operations, that a good alternative will be rejected because it corrects a mistake we've grown used to. J seeks a good compromise between the "weird" symbols of APL - of which I am very fond - and the practicality of acknowledging that we're still stuck in the ASCII jail if we want widespread compatibility. The J symbols represent a lot of careful thought because many of them illustrate similarity of concept with similarity of notation. For instance, isn't it handy that "match" (-:) is so close to "less" (-.)? I'll often do something like the following when I'm comparing two data items: aa -: bb NB. Do they match? 0 aa -. bb NB. If not, what are the different elements? (If that's why they don't match) NB. The items of "aa" not in "bb" appear here... Looking across the vocabulary page highlights many other useful relations between the characters of a symbol and the symbol's relation to another, similar concept written with similar characters. I agree that perhaps an initial presentation should shield the audience from "raw J" but it's a disservice to continue this way for very long. We discussed this issue in a recent NYCJUG: http://www.jsoftware.com/jwiki/NYCJUG/2009-01-13#Beginner.27sregatta . Feel free to add to the discussion by adding another page on this topic and linking to what's there. Regards, Devon On Mon, Feb 23, 2009 at 12:02 PM, Gilles Kirouac <[email protected]> wrote: > On using primitive names, Alex wrote: > > >there are dis-advantages and the most glaring one > > is the loss of tacit programming. > > Really? > > plus times minus > plus times minus > (plus times minus)f. > + * - > 5(plus times minus)f. 4 > 9 > 5(plus times minus) 4 > 9 > > That said, I see other disadvantages, one being that there is no > J literature using those primitive names. They should be only > a short-term softener for exposure. > > Learning the glyphs is not that difficult; always have a copy of > the vocabulary sheet available; have three of them in your house! > > > ~ Gilles > > ---------- Original Message ----------- > From: Björn Helgason <[email protected]> > To: General forum <[email protected]> > Sent: Mon, 23 Feb 2009 07:16:22 +0000 > Subject: Re: [Jgeneral] Teaching > > > Very good! > > I guess we need more of such easy introductions. > > > > 2009/2/23 Alex Rufon <[email protected]> > > > > > Hi Guys, > > > > > > I would just like to suggest as looking at this in a different > > > perspective. > > > > > > I have a few/limited success in teaching J using the standard symbols > > > but I do have a better success in teaching J with the "primitives" > > > add-on. Of course the there are dis-advantages and the most glaring one > > > is the loss of tacit programming. > > > > > > foo=: monad define > > > NB. Look at the following while turning off your J knowledge > > > NB. Create 2 copies of a 10 by 5 integer > > > data=. 2 copy integers 10, 5 > > > NB. Create a new command which would sum a table > > > sumtable=. plus table > > > NB. Get the primary key, first column > > > primarykey=. 1 take rank 1 data > > > NB. Remove the primary key > > > data=. drop rank 1 data > > > NB. get the total value by each key > > > sumdata=. (nub primarykey) stitch primarykey sumtable key data > > > ) > > > > > > fubar=: 3 : 0 > > > data=. 2 #i. 10 5 > > > primarykey=. 1 {."1 data > > > sumdata=. (~. primarykey),. primarykey +/ /. }. "1 data > > > ) > > > > > > But if you would take into consideration me teaching 10 programmers J > > > using primitives add-on and all of them remembered a few of the > commands > > > in comparison to teaching 10 programmers using J notation and 8 to 9 of > > > the students walking away confused. So if your objective is to teach, I > > > would start them with general concepts and use the "primitives" addon > > > then later on ... for advance topics, you slowly introduce the actually > > > J notation. It works for me. > > > > > > I believe somebody else here has done this too (just forgot who he is). > > > > > > r/Alex > > > > > > > > > ---------------------------------------------------------------------- > > > For information about J forums see http://www.jsoftware.com/forums.htm > > > > > > > -- > > Björn Helgason, Verkfræðingur > ... > ------- End of Original Message ------- > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > -- Devon McCormick, CFA ^me^ at acm. org is my preferred e-mail ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
