Today in class we were encouraged to test each other’s projects and I got the opportunity to see how other people interact with the Poki Nanpa web interface. I gave them the following list of instructions (there was actually more detail but I’m omitting the specifics):
- Try moving the cursor programmatically; introducing the user to the concept of the cursor and the idea of using a program to change the output canvas.
- Try drawing a circle; introducing a drawing function.
- Try drawing a rectangle; introducing functions that take multiple parameters, since those are formatted differently to single-parameter functions.
- Try drawing on the canvas directly using the colour palette; introducing the idea that the canvas can be used as an input.
- Try making a function; introducing the idea that the user can create custom functions and combine them.
The feedback was mostly positive except for some issues I already plan to fix; namely, not being able to drag the mouse to draw, the lack of indicators for which colour is selected, and the lack of line numbers. The “stop” button also doesn’t do anything yet because there are no functions to make a program not execute instantaneously, but that will change soon.
In terms of the design of the language, the most common point of confusion was the difference in parameter order for single-parameter functions as opposed to multi-parameter functions. The language was designed this way to reflect the grammar of Toki Pona, but for non-speakers it comes across as confusing. If further iterating on the language design in the future, this could be something to consider dropping, but I think I am going to keep it for now.
What I was most pleased about was the fact that two of the participants kept playing around with the language after they’d completed the tasks I gave them. Here’s a face that one of them drew using the shape tools:

One participant refused to write code, saying they weren’t a programmer, which is a strange thing for someone on our course to say… they liked the interface though.