LISP

From OLPC
Revision as of 14:29, 13 January 2008 by Grettke (talk | contribs)
Jump to: navigation, search
This article is a stub. You can help the OLPC project by expanding it.

Please add comments about the LISP programming language as being appropriate for OLPC development.

Steel Bank Common Lisp is available via "yum install sbcl" (found here).

DrScheme Scheme (Lisp) is available here.

Whether or not LISP is appropriate for children is up to both the teachers and the children.

The following is incorrect in almost every point, except for the one about python being slow. I'll update this page with an actual analysis in the future, but I can't let the trolling below stand without comment.
OK, no problem: it is very inappropriate. The language is quite complex. It is a "functional" (meaning non-functional) programming language, for maximum inconvenience. Sure, you can iterate with recursion... and you can also do dentistry with a dremel tool or cut grass with a toenail clipper. The syntax itself utterly fails to take advantage of the human eye-brain system being a pattern-matching engine. While other languages make various bits of syntax immediately recognizable, LISP makes everything look the same. LISP leads to programs that crash at runtime with various type errors, rather than being stopped at compile time. Speaking of which, while LISP compilers do exist (expensive and proprietary as a rule), it is normal to use a slow-ass interpreter. The XO is already choking to death under a pile of Python code; we don't need to add to the suffering. The scoping rules are a perversion designed to kill the last feeble hope of getting decent performance or code maintainability. The laptop has limited space for interpreters and libraries. The LISP runtime stuff does not deserve a place in front of the many more useful languages like C, BASIC, FORTRAN, Ada, perl... and even COBOL. Supplying LISP to children is especially evil because it will turn most of them away from programming.

Theoretically, it should be possible to install a standard Lisp implementation.

See also: Scheme