Monday, June 1, 2015

Mr. Turtle, how old are you?

.pendown()

If you’re as old as me then you may remember the term “Turtle Graphics.” You may not. The term is actually even older than me. Turtle graphics was a concept of imagining a turtle walking around on a piece of paper with a pen taped to its back. As it walks around, it drags the pen. Periodically it might walk on tiptoe so the pen doesn’t draw (penup). Eventually the concepts of “MoveTo” and “LineTo” evolved from the idea.

I can recall that Turtle Graphics was a library available to Pascal programmers as long ago as 1980. The developers of Windows API and Mac API adopted the concept and conveniently dropped the turtle reference, pretending (perhaps) that they came up with the idea all on their own. Fast-forward to this day and you’ll find the exact same concept embedded in the “Canvas” tag in HTML5. The turtle lives on!

HTML5 offers two somewhat competing methods for drawing graphics. The “Canvas,” with turtles walking all over it, and scalable vector graphics (SVG). Each has its place and purpose. Interestingly, even SVG has a long history. You’ll see it in nearly identical form within other architectures including Windows Presentation Foundation, but it too is much older than both.

Why should you care?

For the same reasons that you should be sure to read the great novels and the newspaper: Reference. By knowing the history of the tools you use, you will begin to see the relationships between them. Ultimately new concepts will look very familiar, and become much easier to learn. Understanding how everything fits together will also help you innovate and create your own new ideas that may one day outlive the Turtle itself.

For more about how the turtle lives on in Python, see https://docs.python.org/2/library/turtle.html

.penup()