Modern Logo

Leon recently posted a link to a great blog entry on rediscovering Logo. You know, Logo – the one with the turtle.

I remember being exposed to Logo way back in high school. All I recall about Logo is the turtle graphics, and the primitive digital Etch-a-Sketch drawings you could create with it. What I didn’t realize is that Logo is “an easier to read adaptation of the Lisp language... [with] significant facilities for handling lists, files, I/O, and recursion,” at least if the Wikipedia entry on Logo is to be believed.

Although I was eternally fascinated with programming, Logo held no interest for me. It seemed like a toy language, only useful for silly little graphical tricks and stunts with the turtle. But apparently there was a real language lurking underneath all that turtle graphics stuff. Brian Harvey is a Berkeley professor who not only co-wrote Berkeley Lisp, but authored three books that, amazingly, teach the whole of computer science using nothing but Logo.

If you have no time to skim the material, and you’re still convinced Logo is a graphics language for little kids, check out a sample Logo program that Brian put together to impress us. I’m impressed, anyway.

Logo is much more than the thin wrapper over turtle graphics I thought it was in 1986. But turtle graphics still – how shall I put this? – suck. I took two new books with me over the holiday vacation, and both deal with something akin to the spiritual successor to Logo – the Processing environment.

Both Processing: A Programming Handbook for Visual Designers and Artists and Visualizing Data paint a picture of the Processing environment that strongly reminds me of Logo. But Processing doesn’t offer up a new Lisp syntax – it sticks with good old-fashioned Java.

If we didn’t care about speed, it might make sense to use Python, Ruby, or many other scripting languages. That is especially true on the education side. If we didn’t care about making a transition to more advanced languages, we’d probably avoid a C++ or Java-style syntax. But Java is a nice starting point for a sketching language because it’s far more forgiving than C/C++ and also allows users to export sketches for distribution via the Web.

The focus of the Processing environment is squarely on learning while doing, which is definitely one of the tenets of Logo.

If you’re already familiar with programming, it’s important to understand how Processing differs from other development environments and languages. The Processing project encourages a style of work that builds code quickly, understanding that either the code will be used as a quick sketch or that ideas are being tested before developing a final project. This could be misconstrued as software engineering heresy. Perhaps we’re not far from “hacking,” but this is more appropriate for the roles in which Processing is used. Why force students or casual programmers to learn about graphics contexts, threading, and event handling methods before they can show something on the screen that interacts with the mouse? The same goes for advanced developers: why should they always need to start with the same two pages of code whenever they begin a project?

In another scenario, if you’re doing scientific visualization, the ability to try things out quickly is a far higher priority than sophisticated code structure. Usually you don’t know what the outcome will be, so you might build something one week to try an initial hypothesis and build something new the next week based on what was learned in the first week.

It’s an admirable philosophy, and it’s especially appropriate for a domain-specific language. If you’re interested in graphics and visualization – if you’re truly looking for a modern Logo – leave the turtles behind and check out Processing instead.

Jeff Atwood

Written by Jeff Atwood

Indoor enthusiast. Co-founder of Stack Overflow and Discourse. Disclaimer: I have no idea what I'm talking about. Let's be kind to each other. Find me https://infosec.exchange/@codinghorror

⏲️ Busy signing you up.

❗ Something's gone wrong. Please try again.

✅ Success! Check your inbox (and your spam folder, just in case).

Related posts

Updating The Single Most Influential Book of the BASIC Era

Updating The Single Most Influential Book of the BASIC Era

In a way, these two books are responsible for my entire professional career. With early computers, you didn’t boot up to a fancy schmancy desktop, or a screen full of apps you could easily poke and prod with your finger. No, those computers booted up to the command line.

By Jeff Atwood ·
Comments
To Serve Man, with Software

To Serve Man, with Software

I didn’t choose to be a programmer. Somehow, it seemed, the computers chose me. For a long time, that was fine, that was enough; that was all I needed. But along the way I never felt that being a programmer was this unambiguously great-for-everyone career field with zero downsides.

By Jeff Atwood ·
Comments
Here’s The Programming Game You Never Asked For

Here’s The Programming Game You Never Asked For

You know what’s universally regarded as un-fun by most programmers? Writing assembly language code. As Steve McConnell said back in 1994: Programmers working with high-level languages achieve better productivity and quality than those working with lower-level languages. Languages such as C++, Java, Smalltalk, and Visual Basic have been credited

By Jeff Atwood ·
Comments
Catastrophic error: User attempted to use program in the manner program was meant to be used. Options 1) Erase computer 2) Weep

Doing Terrible Things To Your Code

In 1992, I thought I was the best programmer in the world. In my defense, I had just graduated from college, this was pre-Internet, and I lived in Boulder, Colorado working in small business jobs where I was lucky to even hear about other programmers much less meet them. I

By Jeff Atwood ·
Comments

Recent Posts

map of the United States via rgmii.org showing all 3,143 counties by rural (gold) / metro (grey) and population

Launching The Rural Guaranteed Minimum Income Initiative

It's been a year since I invited Americans to join us in a pledge to Share the American Dream: 1. Support organizations you feel are effectively helping those most in need across America right now. 2. Within the next five years, also contribute public dedications of time or

By Jeff Atwood ·
Comments
Let's Talk About The American Dream

Let's Talk About The American Dream

A few months ago I wrote about what it means to stay gold — to hold on to the best parts of ourselves, our communities, and the American Dream itself. But staying gold isn’t passive. It takes work. It takes action. It takes hard conversations that ask us to confront

By Jeff Atwood ·
Comments
Stay Gold, America

Stay Gold, America

We are at an unprecedented point in American history, and I'm concerned we may lose sight of the American Dream.

By Jeff Atwood ·
Comments
I’m feeling unlucky... 🎲   See All Posts