2022-08-18
Today I pair programmed with Ben on the Toki Pona translator and then later pair programmed with Sophia on my calendar app.
I've been exploring Toki Pona more, and thinking about why I like it so much. Because there are so few words, beyond very basic sentences, you have to really think about what it is you're trying to say to be able to say it. For example, there's no word for 'obstacle' in Toki Pona. If I wanted to describe an obstacle, I could say 'this thing challenges me'. If I wanted to convey a different connotation of obstacle, I could say 'I don't know how to overcome this thing, I want to overcome this thing'.
So you have to decompose ideas quite precisely. And I think there is a parallel with programming: to be able to write code you have to understand what you're trying to do and what steps you can break it down to. With higher level languages and frameworks, some parts of what we are doing get obscured, but at some point we have to understand what is being obscured.
In particular, Toki Pona reminds me of writing Forth programs: the brevity, the process of having to break each step down into it's constituent steps. And also for the limitations, which initially seem to just make it harder to do anything, but end up being quite powerful.
On the other hand, Toki Pona is ambiguous: the word utala means fight, compete, challenge. So understanding Toki Pona seems a lot less precise, at least with my limited Toki Pona knowledge and experience. Perhaps there is a parallel there though, in that any code we write and run depends on the context it is running in (both software and hardware).