Background


These are only some of the questions that I have spent the last few months thinking about, in an attempt to critically, and meaningfully inform my creative research practice.


Programming paradigms seem to have an obsession with anthropocizing the language around computing. We declare variables, and assign values, and deploy applications - giving ourselves an agency of Creator. But within this process of humanizing the machine, we are also trapped into losing the agency we were after. Computers were women who did the computing, and all it means now is a box of components. How do we take the agency back from the machines?


Most natural languages are a product of culture. Culture changes, and the languages change with it. They grow and evolve. And a culture is nothing but collective. Most programming languages on the other hand are centered around productivity, and often are built to solve a specific institutional problem. They are trickled-down through a heirarchy. They do not evolve. They are updated. How do we translate our collective cultures as programming languages?


Learning to write code is intimidating, and challenging. I was in my mid 20s when I first wrote “Hello, World!” in JavaScript. All those years of my lived experiences did not contribute any value to the code I wrote. Programming paradigms felt like a new world that I need to learn adjust to, cold and distant from the world I’m living in. How do we express who we are and build shared worlds with the code we write?


My definition of computation was also heavily influenced by colonial and modernist ideas. That I need to be able to think through if-conditions and for-loops to fit in. Most traditional cultures embody computational thinking long before the Turing Machine was conceptualized. Knitting, weaving patterns, rangoli, cooking, music, poetry are all computational. I come from a small state in the South of India and I spent most of my early childhood drawing muggulu outside my house during winters. Every muggu centers the chukkalu (dots). Dots form grids, and can be odd or even in number. Each dot must be included in the muggu, and no dot can be left out or erased, and no line joining those dots can be left open-ended. They must always close into another line. This is the computational thinking I grew up on. How do we rethink what it means to compute?


Poetry is also computational in a lot of cultures. Japanese Haikus, Urdu Ghazals, Thai Klon, Telugu Chandassu - poetry in all these forms is built on syllables, syllable counts, rhyming patterns, sequences. Things we are familiar with. Things we grew up on. Things from home. How do we look at programming languages as home?



Prāsa is an attempt to explore these questions through creative practice.



Further links: