If we are going to argue J v Python, we need to at least look at NumPy
(based in part on APL) and SciPy. If anybody is interested, I can
start those topics.

I also have another set of issues, regarding choice of languages in
working with Sugar education software. I will give the background
here, and again if anybody is interested, I can provide much more
information.

Our first question is how to present programming at the elementary
school level. The options in Sugar are Turtle Art, with paths into
Logo and Python, and Etoys, with a path into Smalltalk. Both are
excellent for their purposes, and can easily be introduced in third
grade. XOs also have Perl (not recommended for children), FORTH (which
we can discuss), and GeoGebra built in. Most Sugar software is written
in Python, and we have a textbook on how to do it.

http://en.flossmanuals.net/make-your-own-sugar-activities/

Turtle Art provides a tile set implementing stack-based programming
which can be used as a path into FORTH. I am also working on math
textbooks in J, starting with first-grade arithmetic, and would like
to get J packaged for Linux generally and for Sugar in particular. I
hold with Marvin Minsky:

    You don't understand anything until you learn it more than one way.

    In Rebecca Herold, Managing an Information Security and Privacy
Awareness and Training Program (2005), 101.

In order to understand programming, one should have a solid grasp of
options, including both the limitations and possibilities defined by
Computer Science. In particular, one should understand the concept of
Turing Completeness, including Church's Thesis on the wide range of
methods for building Turing complete languages. I recommend at a
minimum languages on the LISP model, including Logo for children; on
the APL model, including J, used starting with first-grade arithmetic;
tile-based programming in tree structures, as in Turtle Art and Etoys;
Turing machines themselves (I built one in Turtle Art, and Alan Perlis
created a wonderful set of examples of Turing Machine extensions in
his Computer Science textbook using APL); Object-Oriented Programming,
as in Smalltalk and Etoys; and math languages such as GeoGebra. I have
also recommended Python for some purposes.

Another essential concept is called Syntactic Sugar. LISPers in
particular know that the syntax of a language is not the language.
This is in large part because LISP separates the syntax analyzer from
the rest of the language and allows users to replace it, and also
because writing a syntax analyzer in LISP is so simple and easy.

This goes with the concept of application-specific languages, which
should be easy to create. This is well understood in the LISP and
FORTH communities, but not very well elsewhere.

For practical programming, the criteria are quite different. Many
organizations prefer compatibility with past practice over any
considerations of efficiency and quality. I don't have the resources
to argue with them. My father George tried to offer the Society of
Actuaries an introductory actuarial textbook in APL, but they insisted
on FORTRAN and wouldn't even consider the possibility of providing
both.

The correct term in English for a person who speaks several languages
is "polyglot".

The correct term in English for a person who speaks only one language
is "American".

This is equally true for natural languages and computer programming languages.

-- 
Edward Mokurai (默雷/निशब्दगर्ज/نشبدگرج) Cherlin
Silent Thunder is my name, and Children are my nation.
The Cosmos is my dwelling place, the Truth my destination.
http://wiki.sugarlabs.org/go/Replacing_Textbooks
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to