Why Logo?

With so many programming languages to choose from, why would someone choose Logo? When Logo was created in 1967, it was at least as powerful as any of its contemporaries. The world of computing has changed a lot since then and the demands of the industry have given rise to many new languages that offer new powerful features. During that time, Logo did not change much. Today, Logo lacks many features that are necessary in industry and so it is not used by professional programmers for anything but small projects.

So if Logo is not used by professional programmers, why use it at all?

For one, Logo was not designed to create industry-grade software, it was designed as a tool to help children learn an important skill, one that is as important today as it was in 1967: the skill of learning how to learn. The new language features that industry has demanded are irrelevant for helping people learn to learn. While other languages are designed around abstract concepts in computer science, Logo is designed around how people learn. The basic philosophy of Logo is that education should focus on learning, not teaching, and that learning happens best when the learner is mentally engaged in a constructive project. The programmer assumes the role of "teacher" and learns by "teaching" a computer to do things. The Logo language is not, itself, the subject to learn, rather it is a tool to explore idea in areas such as art, music, mathematics, intelligence, and language.

In a sense, Logo's lack of features is one of its best features. Many full-featured programming languages require complex setup. Before you can start to program in them, you must learn about things like compilers, syntax, virtual machines, classes, and entry points. Such things are important for a professional, but they are unnecessary obstacles for a beginner. With Logo, you are ready to start programming as soon as the Logo environment starts. Every instruction that you type is run immediately. This gives you instant feedback on your instructions, whether they do what you expect or not.

Another advantage of Logo is its support for "Turtle Graphics". Turtle graphics is a simple and powerful set of commands used to manipulate a screen object called a turtle. The idea behind turtle graphics is that you program by giving instructions to a "turtle" (represented in FMSLogo as a triangle) and these instructions make the turtle walk around on the screen, drawing a line wherever it goes. With just a few keystrokes, you can program the computer to draw a line on the screen. For example FD 100 means "turtle, walk 100 steps forward". By adding more instructions, you can program the computer to draw complete pictures.

Turtle graphics brings computer programming into a world that is familiar to children, one of colors, shapes, and art. It enables a child to start programming at a stage in their cognitive development before they understand symbolic reasoning.

Logo has a simple syntax that requires less typing than other languages, which is especially important for children who are not yet confident typists. As you've seen, you can draw a line on the screen by writing FD 100. In other languages, an equivalent instruction might be Turtle.Forward(100); and if you forget one of the syntactic elements, like the semi-colon at the end, you'll get a difficult-to-understand error message, like "syntax error: unterminated statement", which is meaningless to a beginner.

Even though Logo is not for professional programming, this doesn't mean that it's only for children. Many adults mistakenly think that programming is like arithmetic and that programming must be as boring as doing taxes or balancing a checkbook. In truth, programming is closer to carpentry and art. It couples the excitement and satisfaction of constructing something with an artistic sense of refinement in making that thing beautiful in its expression. This may sound far-fetched, but the more you program, the more you'll come to understand it as true. Moreover, programming is a rewarding and worthwhile intellectual pastime for an adult, whether or not they are a professional programmmer. In the same way that trying to prove Fermat's Last Theorem is worthwhile for someone who isn't a professional mathematician, or painting is worthwhile for someone who is never going to be a professional artist, or learning to play the piano is worthwhile for someone who is never going to perform for anyone beyond their friends and family, amateur programming can enrich your life. If you're not trying to create software for the industry, then you don't need to use any of the languages that are used by the industry. Logo is a good place to start.

SourceForge.net Logo