​Having learned APL in its early days, but never was my main programming
language, you may need to take my comments with a grain of salt too.

APL and J are conceptually similar. That is, one knowing one language can
easily pick up the other. But when J was started Iverson had an opportunity
to make better some concepts. The differences seem minor, but can be
frustrating to one first seeing J after knowing APL. But since then APL has
evolved as well. Both languages have kept up with current technology.

APL was first implemented on IBM EBCDIC machines (360), but was never
dependent on EBCDIC. Actually, a special type-ball for Selectric
typewriters was built for APL. When unicode was finally generally accepted
that problem went away. When J started it was decided to avoid the special
character problems by going with standard ASCII only. It makes J programs
look like core dumps where APL programs look "pretty". Both are
unintelligible to those not knowing the languages.

Both APL and J are array languages. Ironically something mainstream
programming languages have difficulty in incorporating. The hardest people
to teach APL and J are programmers. If you are a programmer you must
approach both APL J forgetting all the rules of "good programming style".
Not that those practices are not still valid. But APL and J open up
alternative approaches truly unique.

APL and J are not strongly typed. Actually, a name can refer to nouns
(data) and change to verbs (functions). And the size and types of arrays
are dynamic too. Good or bad. Always a fun debate.

As to OOPS. Both now have OOPS, but I'm sure C programmers would not call
it OOPS. I say that because people have strict ideas as to what OOPS is.
Similar to database. Nobody really knows what OOPS and database are. No
implementations in any programming language truly conform to their strict
definitions. Sorry about getting on a soap box.

Being primarily a systems programmer working mostly in assembly language I
felt like I had one hand tied behind my back when I learned C. However,
with APL and J I felt more like back in math class. The computer hardware
peculiarities seemed to disappear.

Back on my soap box, the in things in computing now are GUI and web. Actual
problem solving makes up a very small part of programming now. One can give
all the goodies people expect in both APL and J but they still require a
huge learning curve and a lot of busy work as in all programming languages
and is still evolving. Hard to keep up.

As to which to use - APL or J. I like working with both. Both are available
at no charge for personal use. Neither is a subset of the other. As to
niche languages, it is not that they are niche languages. It just seems
that mainstream programming people are strongly resistant to non-scalar

I don't know what your intentions are, but they are both easy to install
and play with but also can do serious work. J has excellent tutorials and a
relatively small footprint. It is available on all current platforms
including cell phones.

Have fun.

On Wed, May 16, 2018 at 9:27 PM, jane dalley <jane.dal...@outlook.com>

> This is my first post; my hope is this is an appropriate question.
> My knowledge of APL and J is very limited so my expectation is a simple
> answer that is within my limited ability to grasp.
> Examples:
> How similar are both APL and J?
> To the best of my recollection APL could be written with EBCDIC so why J?
> Can APL do everything J can do and visa versa?
> Can APL and J be forced to be strongly typed?
> Are APL and J capable of being Object Oriented like C++ or C#?
> Would one view J as a superset of APL?
> Are J and APL more than niche languages?
> Sorry if any of these questions are perceived to be offensive, probably
> they have been asked many times before.
> Sorry also if these questions are deemed silly such as a toddler might ask.
> Regards,
> Jane the novice of J
> ----------------------------------------------------------------------
> 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