Beware of type erasure in Java Functional programming to save the world
2007 10 20

The other day, while visiting the new Editions de l’Océan Indien bookstore (appropriately called The Bookstore) in Rose-Hill, I discovered its basement containing lots of old books at very cheap prices.

I bought 5-6 books at Rs. 10 each among which Logo for Beginners by J.W. Penfold.

As you can guess by the name of the book, it talks of the Logo programming language, developed by Seymour Papert to teach programming to students.

To be frank, I did not have a very positive opinion of Logo prior to reading that book. It’s only when I came across page 3 that I realized that Logo was something special:

“LOGO derives from a family of languages known as ‘list processing’ languages, and these are the languages of so-called artificial intelligence”

What??? LOGO is a derivative of LISP!?! I couldn’t believe it. As you have gathered by now, I am very very fond of LISP and its children: Scheme, Haskell, Erlang and Ruby.

Programming in Logo

Logo, when used to teach programming, is very straightforward. For instance, this is the body of a procedure, called square, which draws a square:

repeat 4 [forward 100 right 90]

The following code then draws the figure that you can see above:

repeat 72 [square right 5]

It’s not complicated and, arguably, can really teach the basic concepts of computation very easily. No wonder lots of schools (especially in the UK) still use Logo.

Of course, Logo being a LISP derivative, can be used to solve very complex problems. It has higher-order functions for instance and this opens the world of map and reduce (and even Google).

Where to get Logo?

There are many free implementations of Logo. The “standard” seems to be UCBLogo also known as Berkeley Logo which works on lots of different platforms (Linux and Windows for example). I did not use that one.

Instead I found ACSLogo which is a fantastic Logo implementation for Mac OS X. It’s so good that it even won a Mac OS X Innovators Contest award in 2003!

Final thoughts

Try Logo. I think you’ll be impressed. And, in case you come across that Rs. 10 book, buy it. Rs. 10 is so little to pay to access such a wonderful world…

Popularity: 2% [?]

written by avinash

6 Responses to “The Logo programming language”

  1. Anascrash04 says:

    Nice find even though am still reading the LISP wiki link lol

    and btw seems a nice mac ;)

    i didnt knw we could get books at 10rs o.O

  2. avinash says:

    Aha! So you are becoming a LISP convert. That’s good :-)

    If you like books, I’m sure you’ll find something in the basement of Le Bookstore. I even found The Hitchhiker’s Guide to the Galaxy there! I got it for less than Rs. 50.

  3. Jordi says:

    An old teacher of mine used Logo to teach programming in high school. He claimed that it was really great how it produced graphical programs, since it seemed to motivate students that much more.

    However, I think he switched to Python last year…

  4. avinash says:

    Logo is interesting because (i) it is graphical and (ii) it is a declarative programming language.

    Python and Ruby have nice syntaxes but unfortunately do not come with an IDE as easy to use as Logo.

    As a matter of fact, a Logo-like IDE and Ruby as the programming language would be a perfect environment to learn programming.

    Anyone knows if such a beauty already exists?

  5. Hensley Bass says:

    You might also be interested with the following implementations of logo:
    aUCBLogo
    Elica (great 3d graphics)
    FMSLogo (Formerly MSWLogo)
    MicroWorlds

    Logo is disregarded in Mauritius as it’s the case with the Basic language. IMHO these are the languages to be taught to kids to get them interested with programming at an early age.

  6. avinash says:

    Exactly.

    Like I said above, it would be great if we could have an IDE as powerful as Logo but with Ruby as the PL…

Leave a Reply