Don Watson wrote:

> I only remember how quickly I learned APL 40 years ago;
> although J can express harder things much better, I perceive
> it harder to express simple things in J.

My skill at APL was never high enough to let me claim expertise for
such comparisons, but that won't keep me from taking a shot at
explaining what you might be experiencing here.

First of all, I want to mention that for the most simple things I
consider J to be no more difficult than APL. The introductory labs are
the level of work I have in mind here.

As coding becomes somewhat more ambitious I think J may indeed require
more effort to learn than its predecessors, the APLs. All these
languages are noteworthy for allowing much to be accomplished with few
tokens. This compression occurs because many things that have to be
specified in other languages are things that "go without saying" in
the Iverson languages. It looks to me that J is more difficult to
learn than APL because there are more such things in play. One of the
most prominent examples of this is rank. The long-term benefits of
rank are great, but in the early stages those benefits may not be
apparent, the abstraction of this big idea is pretty high, and its
application is often invisible.

Absence of index referencing is another thing that is disorienting for
beginners. Core conjunctions From and Cut are tough, at least in my
experience. It's worth emphasizing that the difficulty here arises
from a way J is *simpler* than APL. Simplicity and ease are not so
tightly coupled as we might imagine. Simplifications such as this (no
special syntax for index reference) contribute to the power of J, but
they also deprive people of the redundancy and structure that makes
natural language easy for us to parse. Learning to live without such
cues is part of learning any of these notational languages, but J is
more extreme in this regard.

I'm confident that it is not harder to express simple things in J, if
we assess difficulty by comparing how much needs to be written or that
code's complexities. It may well be harder to express simple things in
J if we assess the relative difficulty of learning enough of the
language to compose a satisfying answer. That, I propose, is a natural
cost of working with a more powerful language.

I remain satisfied by the cost-benefit ratio of such learning.

Tracy
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to