Forty Years of LOGO 162
SoyChemist writes "Forty years ago, LOGO, a derivative of LISP, was born. Several years later, it became the cornerstone of educational software that simultaneously taught geometry and how to think like a coder. With a plethora of high-end educational software packages to choose from, each with flashy multimedia and trademarked characters, parents and teachers may find the humble turtle a bit outdated. Thankfully, several LOGO programs are available for free through a variety of websites, but perhaps 3D programming environments like Alice will be the wave of the future."
Re:LOGO vs. BASIC (Score:5, Insightful)
My introduction to programming was BASIC, back in 1980. By the time I encountered LOGO in a high school computer science class, it was a fun toy for about an hour, but then got old.
It might not have a lot of power under the hood, but it really is a great way to lear about programming. You have your turtle, you tell it what you want it to do, it does it. It's a very straightforward way to understand what programming is all about. Basic has a lot of "go to" stuff that you need to learn first that is very abstract.
But bossing a turtle around is a very intuitive thing for a kid to understand.
LOGO beyond middle school (Score:4, Insightful)
It's interesting that most comments here are along the lines of "I saw LOGO when I was 7" through "I played with LOGO for an hour in middle school." I tinkered with a couple of LOGO variants as a kid, but my real LOGO experience ended up being... in college.
In my school's Computer Science department, the class that weeded out (or at least delayed) the majority of students was our Discrete Structures course. The theoretical part of the course focused on typical discrete logic, discrete math, sets, predicate calculus, etc topics. But the unusual part was that the professor was determined to break us out of the C++ mold that the introductory programming courses began. Therefore, he picked LOGO as the language for the course. Sure, interpreted LOGO wasn't the most blindingly-fast choice, but the list-based nature of the class made it very much a "LISP Light" that we could quickly work with for solving problems. Surprisingly, it was extremely flexible for the kinds of logic problems we were working with. By the end of the year, I really had to rethink my initial concept of "oh no, turtle graphics." Plus, we got exposed to a bunch of quite interesting offshoots, such as StarLogo [mit.edu], a massively-parallel-turtle variation of LOGO.
If you've never had to write a parser for an arbitrary boolean arithmetic expression in LOGO, then you've never really lived... (Er...)
Re:LOGO vs. BASIC (Score:5, Insightful)
Actually, LOGO has a lot of power under its hood, definitely more than BASIC. It seems that most people here don't realize that LOGO is a full featured dialect of LISP. Some things that are easily done in LOGO would be pretty hard in BASIC. I agree with the rest of your post, though.
Re:LOGO vs. BASIC (Score:5, Insightful)
IMHO the turtle is really more of the friendly face, to make Logo fun for beginners (e.g. look at the pretty designs you can draw, and look how easy it is to build more complex images out of very simple, reusable building blocks).
At the time, BASIC made it very easy to write spaghetti code, especially with its use of line numbers rather than labels. The more GOTO and GOSUB statements you had, the harder it became to manage--changing line numbers could unleash a horde of broken GOTO statements.
IMHO, I think Logo doesn't get enough credit for what it truly was.
The Turtle killed Logo (Score:4, Insightful)
For those who want to rediscover Logo and learn what it was *really* all about you can go to the website of Brian Harvey, a logo guru:
http://www.cs.berkeley.edu/~bh/ [berkeley.edu]
On this website you can download a nice series of textbooks about Logo and also download the Berkeley Logo implementation of the language. I was surprised to find that Logo is a functional programming language. I am also studying Lisp, Scheme, Haskell, and Erlang and find the whole concept of functional programming to be very interesting. It is getting hot again and will become a critical part of programming if we are to take advantage of multi-core cpu's.
I am constantly amazed by just how vast this industry really is. I wish it hadn't taken me so long to realize this and I am saddened that so many people coming out of school these days have no clue that there is anything other than Java and Dot Not out there.
Lisp derivatives... (Score:2, Insightful)
Scheme was probably one of the worst things they could have had us using for such a class. The majority of engineers and the others didn't need to get too far into advanced programming concepts; most of us will never use anything more complicated than matlab.
Obviously, the course changed the semester after I took it; engineers/science people took a matlab-based class, liberal arts people used java and python, and CS moved on to something else.
I think most young children could probably use Basic once they can read and understand basic algebra.
Re:LOGO - not a viable adult language (Score:4, Insightful)
Re:lopgo vs python (Score:3, Insightful)
I don't know -- I can't think of anything better for the kind of multi-agent simulations that StarLogo [mit.edu] and NetLogo [northwestern.edu] seem to focus on than those are similar Logo derivatives (at least, for an educational environment that doesn't take lots of outside programming experience as a prerequisite). OTOH, one disadvantage Logo has is that there is a lot less support in the form of texts readily available compared to languages that are popular for broader use like Python or Ruby and far fewer teachers (either formal teachers or mentors) that know Logo well-enough to get a student up to speed with it.
Re:LOGO - not a viable adult language (Score:2, Insightful)
Your 2 cents ain't worth a dime... ;)
It's kinda bizarre that you'd question the efficiency and capability to write "real" programs in it, then go on to invoke BASIC later in the post. In terms of being a fully capable language, BASIC was a toy language compared to LOGO. Pascal was better, at least it had proper procedures and functions, but still not quite as capable (it shared LOGO's heritage of being designed for education, but it lacked much of LOGO's sophistication). Only thing C has over it is a wealth of great, efficient implementations.
(As a historical note, BASIC, at the time 6502 processors were common, lacked proper procedures, functions, structure, scoping, or any of the other stuff you'd associate with non-toy languages. I understand today's BASIC isn't the same, and mean to cast no stones at modern BASIC by this)