ARCANE PROGRAMMING LANGUAGES

Arcane Programming: Piet

Justin Ohms
3 min readJul 1, 2023

Usually, only programmers can appreciate the beauty of source code, but with Piet, you don’t even need to know that it is source code to appreciate the artistic beauty when you see it.

A Piet program that outputs “Piet”

The History of Piet

Piet emerged from the creative mind of David Morgan-Mar in 2002. This esoteric programming language takes its name from the Dutch abstract painter Piet Mondrian, known for his minimalistic yet vibrant grid-based paintings featuring primary colors.

Piet is an artistic endeavor rather than a practical one, aiming to challenge conventional programming paradigms by introducing elements of visual arts into the realm of coding. While its practical use cases may be limited, it holds a unique place as one of the most beautiful languages.

Piet, much like Befunge, strives to deviate from typical linear language construction. However, where Befunge achieves this by allowing multi-directional code execution, Piet goes further by adding color and removing text entirely, reimagining code as a visual and artistic entity itself.

Syntax and Architecture

Piet eschews textual commands and instead uses 20 distinct colors to signify different operations and control flow mechanisms. This makes coding in Piet feel more akin to painting a piece of abstract art in MS Paint than typing code.

Piet code takes the form of a bitmap image. The code execution starts from the upper-left corner of the image and flows rightward by default. Directional pointers can alter this flow. The value pushed onto the stack or the repetition of operations depends on the size of color blocks, or ‘codels.’ Individual operations are defined not by the colors but by the transitions between 20 distinct colors.

Piet’s structure is very cool and produces beautiful code. However, it does come with challenges. First, like many languages in this series, there are no traditional variables or functions. Its entire execution model hinges on a last-in first-out stack data structure. Debugging in Piet is particularly difficult due to the visual nature of the language and the lack of standard error-checking procedures.

One significant issue with Piet is its accessibility for color-blind individuals. I myself am not color blind but I even had problems seeing subtle variations in color that could affect program flow. This aspect, unfortunately, creates a barrier to entry for some, which could be considered a design oversight in an increasingly inclusive tech industry.

The Future of Piet

Piet’s appeal is mostly confined to enthusiasts of esoteric languages, given its impracticality for mainstream coding tasks. Piet’s visual nature makes it a fascinating platform for exploring the intersection between art and technology. And in many respects, the everyday QR Code is very much like a simplified Piet.

While Piet’s practical applications may be limited today, some of the ideas it contains could find their way into future languages or programming concepts. The exploration of multi-dimensional thinking, the incorporation of visual cues, and non-linear code execution could provide inspiration for upcoming developments in the field.

The world of quantum computing, where non-linear and multi-dimensional thinking is vital, could see contributions from languages such as Piet. The visualization techniques and unique problem-solving approach inherent in Piet could potentially prove beneficial for quantum algorithm design.

--

--