Programming for kids
BASIC
BASIC was probably the first computer language intended for teaching. BASIC was provided with early PC computers and with nearly all of the 8-bit computers which were popular in the 1970s and 1980s. A whole generation of today's software developers first learned to program in BASIC.
C
While not the easiest language to learn, C is a relatively simple language. Most of the XO's software is written in C, including the Python interpreter. The normal C compiler is gcc, which requires less than 10 MB of space. A faster and smaller (100 KB) compiler called tcc is an interesting alternative, particularly because tcc allows C programs to be treated as scripts. Unlike most other languages, C allows relatively full exploration of the system's capability and operation. Only assembly language gets the student closer to the fundamentals.
Assembly
Assembly language has an undeserved reputation for being mysterious and fearsome. It is an excellent teaching language; Donald Knuth used it in his well-regarded series of computer science books. Students gain a much clearer understanding of computers when they learn assembly language. High-level languages present the learner with a black box, often making the oddities of computer programming difficult to observe and explain.
ActionScript
ActionScript is the programming language of flash. It is related to JavaScript. The resulting programs can be played in gnash, directly or via the web browser.
JavaScript
JavaScript is the programming language which web browsers have built-in support for. It is related to ActionScript. Programs can be played in the web browser.
shell scripting
Every laptop comes with bash, awk, and sed. These relatively high-level programming languages are frequently used together as one. They are particularly effective for automation of tasks on the laptop.
Logo
When implemented as originally intended, LOGO is a full-featured computer language derived from LISP. LOGO is one of many languages intended for learning.
- See also Turtle Art, which combines LOGO's turtle graphics with snap-together visual elements (also found in Scratch).
Squeak
Squeak is an open source implementation of the Smalltalk programming language/environment. There is a community already building educational applications that could be used on the OLPC.
Scratch is a scripting environment for children being developed at MIT which is built on top of Squeak; http://weblogs.media.mit.edu/llk/scratch/
Python
Python is an object-oriented language that combines LISP-like features with a more modern syntax. Since much of Sugar is written in Python, the language will be available.
There has been serious work done on teaching Python to young people, including the Livewires program in the UK
- Also see Pippy
Processing
I have searched many websites during the last hours. I believe children love quick results and graphical results. I find this one is worth having a look at it. It seems to be free and available for Linux: http://processing.org/
Although it looks complicated. Haven't tried it, just providing the link.
- I believe children love quick results and graphical results.
This sound to me like #Logo. Anyway I don't think this should turn into a language-war. I guess the laptops could come bundled with language1 and language2 and language3 if they all fit in. But to be useful, the laptops need come be accompanied with something else. The language interpreter/compiler is, of course, not enough. What do we need to put in there to make the use of the language educational?