Fair point. There’s a fine line between programming and creating data that a program operates on. I tend to think writing text to produce nontext output is more programming than not.
There are programming languages that are entirely visual. In fact, I could parse the pixels in a bitmap created by ms paint and make it into programming.
It’s not even that hard. Assign a set of color values to a character in Brainfuck. Iterate through each pixel and do the translation. Throw away color values that don’t match. Run the result through the Brainfuck compiler.
If I’m really crazy, I could implement the instructions directly rather than translating, but translation is easier.
Aaaaand you’ve now reinvented punch cards for Brainfuck in mspaint. How do you feel about yourself?