One of the things I love most about life at The Research Software Company is the incredible variety of projects we see. We handle projects from all fields of research, including living and physical sciences, digital humanities, and even the intimidating sounding computational chemistry and bioinformatics. To meet our clients’ diverse needs, we use a wide range of technologies and we have a pretty deep toolbox of options. Every once in a while though, a new project comes in that surprises us and requires us to think in new ways. Sometimes though, we have to think in very old ways.
Recently, a prehistoric archaeologist approached us. Well, an archaeologist who specializes in prehistoric eras. She’s not prehistoric. The researcher asked us for help in building an Agent Based Model simulation. She wanted to simulate certain aspects of behavior in prehistoric times. This was the first time we had to implement an agent-based simulation, so naturally we looked around for existing solutions. There are a few such solutions.
The archaeologist told us that NetLogo is often used for such archaeological simulations. We had noticed this program before but didn’t pay too much attention to it. Our original thought was to use Mesa, as it is Python based. Encouraged by the researcher, we took a closer look at NetLogo and realized why it was called that –
IT IS LOGO BASED!
Logo is an old programming language that was used mostly to teach children the concepts of programming. It was popular in the 80s, helping kids all over the world understand programming. It was a lot nicer than the most popular first language of the day – BASIC.
Unlike all other languages, LOGO had a Turtle. When you wrote a LOGO program, you actually told the Turtle what to do. You could tell it to move in different directions, and draw or not draw while moving. So to draw a square, for example, you moved the turtle to one of its corners and told it to move forward and turn 90 degrees to the right 4 times.
Uri Wilesnky, the author of NetLogo , simply extended this concept a bit – instead of just one turtle he allowed for multiple turtles, and gave each turtle a new job – as an Agent. It works very well and reminds us of our childhoods in the prehistoric era.
NetLogo is widely used, mostly by people who did not learn LOGO when they were kids in the 80s (mostly because they were probably born in the late 90s), but still – us ancients really appreciate it.