Forty Years of LOGO
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."
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. I started off on LOGO in elementary, then we had a bit of BASIC, I liked logo better : )
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.
You can't take the sky from me...
I learned to program using LOGO on a Commodore Vic-20 in 1980 or 81. It was an astounding program because it enabled a very high level of functionality without needed knowledge of a lot of technical details of the machine. My school district (Portland, OR) had a Talented and Gifted program that included a computer course, and LOGO was it. We were able to draw polygons and devise simple games (somewhat more rudimentary than an Atari 2600). Based on this experience, my brother and I got a Commodore 64 a year or so later, and I was disappointed in BASIC. Sure, it was structured more like a "real" computer language, but it wasn't possible to do anything even remotely sophisticated in Commodore Basic graphics-wise without resorting to quasi-assembly PEEKs and POKEs. To get around this, my brother tried to learn 6502 assembly, and burned out on computers (he's now a lawyer.. poor man). I was lucky and discovered Pascal...
I don't think I would have a career in the technology industry if it were not for LOGO (I'm an analog IC designer). A previous comment said Python is better for his child. I would agree. In fact, I would have done pretty much anything for Python and Pygame when I was a small child. However, for the late 70s and early 80s, LOGO was the educational language to beat, and the only way for a child to really feel the machine the way a programmer does, and not as a passive game player.
There was actually quite a bit more to Logo than just the familiar turtle graphics. While I haven't played with Logo in a long time, I remember it was quite easy to write structured programs. You could define primitives (essentially subroutines), read/write files, handle I/O, etc. I think everything was in place to write some fairly sophisticated software without ever involving the turtle.
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.
Personally, I never learned LOGO in school, I used it at my first programming job!
I was 17 years old and already know how to program in Z80 assembler and MBasic (Ah, the heady CP/M days!).
Imagine my surprise when I got an apprenticeship at a place where they did accounting - in LOGO!
Not just any LOGO either it was M.I.T. Experimental LOGO #43 if I remember correctly, running on a microcomputer with 12 terminals connected to it! And there was NO TURTLE in this LOGO, only the list operators, logic and math primitives!
This company was doing the monthly accounting of about 40 or so client firms and the whole system was written in LOGO.
I remember thinking "Why the heck are they using a kid language to do all this" at first, but under the teaching of my mentor, I learned recursion and abstraction to a level I had never considered before.
I mean instead of tripping all over the mundane aspects of implementation that you would bump up against in assembler or BASIC, here was a language that was so high-level that you really could concentrate totally on the abstraction and algorithm of solving the problem without getting tangled in a lot of what seemed to be more real-world problems (memory allocation, variable types, string/array manipulation, etc...), this language forced you to think in really high-level ways about the problems you were trying to solve.
It was a year of epiphany-after-epiphany for me and it did more to form me than any of the other languages I've ever touched. It caused me to rethink my approach to all other languages and tools and I feel tremendously fortunate that I was in the right place, at the right time to experience it all.
Sadly, that company's history ended badly; one of the partners was billing the clients directly and ran off with the money, so the company went under and I never did find another company using LOGO again.
Too bad reality and theory almost never line up...
Thinking back to that, I could conclude that LOGO is sort of lame, but for little kids who don't have the typing and language skills of middle school or high school students, I guess it's a better entry into programming than BASIC.
My first contact with programming about around 1986 was with Logo. My parents subscribed me to a private computer course and for us the small kids (I was 5 years old!) the teacher used Logo, for older guys he used Basic and even COBOL and FORTRAN. But It was Logo what made me really *understand* computers in the sense of how the famous Hacker's Manifesto explains, it is a very interesting machine which *you* can manipulate to do EVERYTHING!
However, when you are referring at LOGO in your comment you are surely referring to the turtle-guided drawing interpreter of the language, which yeah can not compare with what BASIC was at that time. However, there are *plenty* of interpreters and other programs that use Logo as its underlying language. Lots of them are actively used in research for agent-based modeling such as NetLogo, StarLogo, or about StarLogo TNG which tries to go a step further to teach the basic concepts of programming by using building blocks.
I think Logo is one of the *best* programs to begin computer programming for kids because it is very easy to make the computer *do* things, and with these new implementations it does not need to be as "boring" as just drawing lines.
Ubuntu is an African word meaning 'I can't configure Debian'