For those using Piet in production, what async web framework do you favor? Warhol seems pretty popular, but Schiele has me impressed with its expressiveness. We're currently using Dali, though I'm a bit dissatisfied at how surreal its API is.
I had an interesting time writing a JIT for Piet some time ago. Piet is a pretty weird language in a few non-obvious ways. From what I remember:<p>* Execution moves between blocks of colour. Flood fill algorithms are a valid compiler optimisation!<p>* Execution can move left/right/up/down. You can't necessarily tell what will be executed without doing it. The 'codel chooser' stuff means you can exit a colour block in two different ways depending on program state (plus left/right/up/down, so 8 ways total...).<p>* Instructions are encoded in the difference between colour blocks.<p>* Piet is otherwise a fairly straightforward stack machine.
I wouldn't trust these programs to work. The fibonacci one certainly doesn't.<p>When the explanatory line in the fibonacci example first hits the left hand side of the program, the Direction Pointer appears to be being rotated anti-clockwise.<p>Were it rotated clockwise, as-per the spec, it would go up, hit the black block above, and eventually end up in an infinite loop.<p>The command executed on entry to that block is PUSH (pale to normal yellow), so it shouldn't have any effect on DP.
I'm wondering if there is a practical use of such a graphic language. I am thinking of printing the pictures associated with the code, put them somewhere, and other people could take some photos of those pictures with their smartphones and run the corresponding code. That might be useful for a game but I can't think of anything yet.
I was going to attempt a humorous comment of "I prefer a language that supports recursion, so I use Escher". But then my brain went, "think there already is an Escher". There is one, it's from 1995.<p>Are programming languages about to hit the same problem as musicians, thinking up that cool but unused band name?