I think that we have been too complacent about this issue.

Other languages (SQL for instance, Haskell for instance) share aspects of
this "unusual way of thinking about algorithms". And I see other
environments (Excel, Mathematica, Hadoop, Perl 6) which also touch on what
the APL family of languages have to offer.

I think we have been afraid of offering more traditional facilities for
fear of losing or muffling this aspect of the language. I think this fear
is misplaced.

SQL, for example, offers us the concepts of normalization. Haskell really
emphasizes the concept of "functional programming", and of course
map/reduce is becoming famous also.

One issue, perhaps, is that many APL programmers understand that if they
have access to raw file formats that they can often do a better job
themselves than commercial offerings. But our community is so small that
the financial industry occupies the attention of most of us (not all -
personally, my APL background has been more focused on textual databases,
debugging and avoidance of race conditions, and a related issue is that I
had heavy exposure to LISP and various assembly and machine languages (and
BASIC!) before I picked up APL).

Anyways, while some people delight in the creation of new languages, I've
seen dozens of APL variants already and I've had more than enough of them.
I'd rather go in the direction of language subsets for exploration
purposes, and the APL family seems a natural for this - it's so powerful
that stripping it of features still leaves us with plenty of processing
capability. And stripping it of features can also give people a more
approachable learning experience - especially coming from other language
environments. (I get the idea that SQL might have had a start as an APL
language subset, but it's hard to find documentation of how things went,
back then.)

So...

Language subsets can and will detract from features of the pure language.
But if handled properly I think they can make our community more vibrant
and interesting. If a specific application family only needs maybe a tenth
of the language, then writing apps that use that tenth, and documenting
them, and posting the documentation, and linking the documentation, can
make all sorts of people be productive. And also, of course, result in a
lot of awful code that people in other application domains would not find
useful.

But that can be a good thing for us. If it gets too bad then that should
encourage other people to document what they like about the way things used
to be.

We can't succeed, as a culture, if we refuse to reach out and tackle new
kinds of issues, nor if we refuse to interoperate with other languages and
other environments. And I think the ISI folk have made huge contributions
here.

It's high time that some of the rest of us started making similar
investments of effort.

Not all at once, of course, but there's so much we could do that we have
not done. Maybe we just need to make things a bit messier so we have
something to clean up?

Thanks,

-- 
Raul



On Mon, Feb 10, 2014 at 11:17 AM, Devon McCormick <[email protected]>wrote:

> One of the dangers against which we should warn someone taking this
> approach is that J embodies an unusual way of thinking about algorithms.
> Matching to keywords in another language only approximates what you need to
> know - it doesn't illuminate what's different about the language.  I think
> this is what's behind the digressions in the "VB/J" string functions
> example I referenced earlier: it's useful to understand that J is doing
> general array operations that apply to arrays of numbers, for instance.
>
>
> On Mon, Feb 10, 2014 at 11:07 AM, Jim Russell <[email protected]>
> wrote:
>
> > Agree. In particular about NuVov, and add the J reference card, the
> books,
> > the phrases and (what ever happened to) the IX link from the help menu.
> In
> > addition to the main page search box the newcomer needs to learn about
> wiki
> > searches and fourms searches, and findinfiles, the foreign conjunction
> > categories, etc.
> >
> > It is sad that even after 10+ years as a J fan and lurker on the J
> fourms,
> > J is the one language in which I have never become productive, much less
> > proficient.
> >
> > I think a J Glossary, referenced from a more obvious "readme", or "noob
> > enter here" starting point to provide an overview of the site, the
> > language, and the J libraries would help.
> >
> > (Or maybe I just don't have enough synapses left in my old age.)
> >
> > (Raul--yes I am still working on my list of searches/questions I needed
> as
> > I revisited J on my iPhone and iPad.)
> >
> > > On Feb 10, 2014, at 10:16 AM, Skip Cave <[email protected]>
> wrote:
> > >
> > > Ideally, a newbie should be able to type the word "assignment" into the
> > > search box on the J Software main page, and get several results,
> > including
> > > links to Is (local) and Is (global) on the NuVoc and standard
> vocabulary
> > > pages. Additional links to pages discussing assignment in "J for C
> > > Programmers", "Learning J" and other doc would be great. Since this
> > feature
> > > would be oriented to newbies, the NuVoc pages should probably be at the
> > top
> > > of the list..
> > >
> > > When learning a new programming language, reading through all the doc
> > > causes information overload, at least for me. To get a flavor for the
> > > language, I like to start by searching for common programming
> functions,
> > > like assignment, looping, indexing, conditionals, subroutines, etc.
> Once
> > I
> > > get an Idea where the information about these concepts reside in the
> > > documentation, I will stat reading those sections. Then as I require a
> > new
> > > function, I will type the common name of that function in the search
> box,
> > > and continue to explore from there. To me, this is a much more
> efficient
> > > way to learn a language, rather that trying to absorb the whole range
> of
> > > syntax and functionality presented in the order the documentation
> authors
> > > want to present it.,
> > >
> > > Of course, the "common name" for any function depends somewhat on what
> > > programing language you are familiar with. That's why it's important to
> > > have as many different related keywords as possible for "subroutine".
> > >
> > > Skip
> > >
> > > Skip Cave
> > > Cave Consulting LLC
> > >
> > >
> > >> On Mon, Feb 10, 2014 at 6:30 AM, Raul Miller <[email protected]>
> > wrote:
> > >>
> > >> If you would put together a list of words (and perhaps phrases?) that
> > need
> > >> definition, I (or we) would be happy to fill in the definitions, and
> > supply
> > >> a few small examples.
> > >>
> > >> We might need to go several rounds of this to adequately satisfy you,
> > but
> > >> that's ok.
> > >>
> > >> Or maybe we have an adequate reference to refer you to? But if that
> were
> > >> the case, I imagine the search engines would have found it for you. So
> > >> instead let's maybe think about hashing out something that might be a
> > >> suitable addition to the J wiki?
> > >>
> > >> Thanks,
> > >>
> > >> --
> > >> Raul
> > >>
> > >>
> > >>
> > >>> On Sun, Feb 9, 2014 at 8:51 PM, Jim Russell <[email protected]>
> > wrote:
> > >>>
> > >>> (Sorry, I got no further than "No," when I put my iphone back in my
> > shirt
> > >>> pocket and "man boob" sent it.)
> > >>>
> > >>> More later when I try to recall all the dumb words phrases I was
> > >>> fruitlessly trying to find as I played with J on my iPhone this past
> > >> week.
> > >>>
> > >>>> On Feb 9, 2014, at 8:22 PM, Raul Miller <[email protected]>
> > wrote:
> > >>>>
> > >>>> Do you mean like
> http://www.jsoftware.com/help/dictionary/vocabul.htm
> > ?
> > >>>>
> > >>>> Thanks,
> > >>>>
> > >>>> --
> > >>>> Raul
> > >>>>
> > >>>>
> > >>>>> On Sun, Feb 9, 2014 at 7:06 PM, Jim Russell <[email protected]
> >
> > >>> wrote:
> > >>>>> I suspect that a glossary of J (and related programming terms)
> would
> > >>> help a great deal. Or does one exist?
> > >>>>>
> > >>>>>> On Feb 9, 2014, at 1:30 AM, Skip Cave <[email protected]>
> > >> wrote:
> > >>>>>>
> > >>>>>> I was looking over NuVoc the other day, and thinking how it helped
> > me
> > >>> learn
> > >>>>>> the J primitives. My next thought was how I wished that we could
> fix
> > >>> the J
> > >>>>>> search engine so that when newbies searched for stuff in the J
> wiki
> > >>> using
> > >>>>>> traditional programming lingo, they would automatically find the J
> > >>>>>> equivalent functions.
> > >>>>>>
> > >>>>>> When J gave new names to all the J programming elements, it was
> all
> > >> for
> > >>>>>> good reasons. However that made it really hard to learn J by
> > >> searching
> > >>> the
> > >>>>>> wiki for programming concepts, using common programming names.
> When
> > I
> > >>> am
> > >>>>>> programming in J, I often come to a point where I know what I want
> > to
> > >>> do,
> > >>>>>> and I know what most other programming languages would call what I
> > >>> want to
> > >>>>>> do. If I search for that name in the J wiki though, I usually come
> > up
> > >>>>>> empty-handed.
> > >>>>>>
> > >>>>>> What we really need in NuVoc, as well as all of the J doc, is a
> set
> > >> of
> > >>>>>> common-use keywords attached to every J concept. Thus if a newbie
> > >>> searches
> > >>>>>> for "assignment", he will get the vocabulary and dictionary pages
> > for
> > >>> Is
> > >>>>>> (local) and Is (global), When he searches for "indexing" he will
> get
> > >>> the
> > >>>>>> Catalog pages. I could go on like this for quite awhile.
> > >>>>>>
> > >>>>>> Also  when newbies or anyone stumbles upon a new concept in any of
> > >> the
> > >>> J
> > >>>>>> doc, we should make it easy for that person to add new keywords to
> > >>> that doc
> > >>>>>> page. Hopefully the keywords they add will make it easier for the
> > >> next
> > >>>>>> person to find that concept in the future.
> > >>>>>>
> > >>>>>> So my proposal is that each NuVoc page (and all J doc pages for
> that
> > >>>>>> matter) needs a list of keywords at (say) the bottom of the page,
> > >>> giving
> > >>>>>> common programming names for the J concept on that page. In that
> > >> way, a
> > >>>>>> newbie searching for "assignment" would at least have a chance of
> > >>> finding
> > >>>>>> what he is looking for.
> > >>>>>>
> > >>>>>> However, my idea is more that just putting a list of keywords on
> > >> every
> > >>> doc
> > >>>>>> page, As has been discussed on the J mail list, Newbies who are
> > >> trying
> > >>> to
> > >>>>>> learn J, know what they are looking for, when they search for a
> > >>> particular
> > >>>>>> concept. What If we could make it so when someone finally does
> find
> > >>> what
> > >>>>>> they were looking for, they could easily add words to the keyword
> > >> list
> > >>> on
> > >>>>>> the doc page they found. They could add the words that they were
> > >> using
> > >>> to
> > >>>>>> (unsuccessfully) search for that concept. Then each doc page would
> > >>> start to
> > >>>>>> collect keywords that people commonly use for that concept, making
> > it
> > >>> much
> > >>>>>> easier for newbies (and even casual J user oldies like me) to find
> > >> that
> > >>>>>> concept in the future.
> > >>>>>>
> > >>>>>> There needs to be an easy (but controlled, and perhaps curated)
> way
> > >> to
> > >>> put
> > >>>>>> a new keyword on any doc page, while that page is being viewed.
> > There
> > >>> needs
> > >>>>>> to be a brief statement above the keyword block explaining what it
> > >> is,
> > >>> how
> > >>>>>> to add a keyword, and why one should do it.
> > >>>>>>
> > >>>>>> I believe that in the long run, this keyword scheme could have a
> > >> bigger
> > >>>>>> impact on reducing the "steep learning curve" of J than almost any
> > >>> other
> > >>>>>> documentation mechanism.
> > >>>>>>
> > >>>>>> Skip
> > >>>>>>
> > >>>>>> Skip Cave
> > >>>>>> Cave Consulting LLC
> > >>>>>>
> > >> ----------------------------------------------------------------------
> > >>>>>> For information about J forums see
> > >> http://www.jsoftware.com/forums.htm
> > >>>>>
> > ----------------------------------------------------------------------
> > >>>>> For information about J forums see
> > >> http://www.jsoftware.com/forums.htm
> > >>>>
> ----------------------------------------------------------------------
> > >>>> For information about J forums see
> > http://www.jsoftware.com/forums.htm
> > >>>
> ----------------------------------------------------------------------
> > >>> For information about J forums see
> http://www.jsoftware.com/forums.htm
> > >>>
> > >> ----------------------------------------------------------------------
> > >> For information about J forums see
> http://www.jsoftware.com/forums.htm
> > >>
> > > ----------------------------------------------------------------------
> > > For information about J forums see http://www.jsoftware.com/forums.htm
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> >
>
>
>
> --
> Devon McCormick, CFA
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to