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