From Mit · · 2m
Logo: a programming language built for learning
Logo was designed backwards from how kids learn, and every feature in it follows from that one decision.
In brief
Logo was designed backwards from how kids learn, and every feature in it follows from that one decision. When a language is designed for learners first, interactivity, small procedures, and loose data types stop being conveniences and become the whole point. Originally reported by Mit.
A language designed to teach
Logo is a dialect of Lisp built as a tool for learning. Interactivity, modularity, extensibility, and flexible data types all fall out of that single goal.
“The Logo Programming Language, a dialect of Lisp, was designed as a tool for learning.”
Answers come back instantly
Logo is usually interpreted, so every instruction gets immediate feedback. You find out what went wrong while you still remember what you were trying to do.
Errors that speak English
Type fowad and Logo replies "I don't know how to fowad". Spell it right but skip the number and it says "Not enough inputs to forward". Type forward 100 and the turtle just moves.
“I don't know how to fowad”
Programs are small procedures
You define a procedure with to, write the body, and finish with end. A square is repeat 4 [forward 50 right 90], nothing more.
Stack them into bigger things
Square becomes a subprocedure of flower, which repeats it 36 times at 10 degree turns. Flower becomes a building block of garden. Complexity arrives in small steps.
“Logo allows you to build up complex projects in small steps.”
Your words become the language
Once defined, a procedure behaves exactly like a built-in primitive. Reading someone's Logo code, you often can't tell which words shipped with it and which they wrote.
“Programming in Logo is done by adding to its vocabulary, teaching it new words in terms of words it already knows.”
Words, lists, and no ceremony
Logo works with words and lists, and numbers are just special words. Ask for 3 / 4 and it returns .75 without anyone declaring an integer.
“When asked to do arithmetic Logo just does it.”
Types that bend on purpose
word "3 "4 gives you 34, and 12 + word "3 "4 gives 46. Recursion works the same easy way: factorial and list reversal each fit in three lines.
“This makes things easier for the computer, but harder for the programmer.”
Dialects that go further
Object Logo brought objects to the Mac. MicroWorlds and LEGO's Control Lab added multi-tasking, so launch starts the turtle and prints HELLO at once. StarLogo went massively parallel.
The key point
When a language is designed for learners first, interactivity, small procedures, and loose data types stop being conveniences and become the whole point.

