Most modern programming languages do not consider white space characters (spaces, tabs and newlines) syntax, ignoring them, as if they weren’t there. We consider this to be a gross injustice to these perfectly friendly members of the character set. Should they be ignored, just because they are invisible? Whitespace is a language that seeks to redress the balance. Any non whitespace characters are ignored; only spaces, tabs and newlines are considered syntax.

Whitespace must be learned.

The Role Of Compiler and Interpreter Writers

Compiler and interpreter writers fill a delightful yet barely occupied role of those who are tasked with bridging the literal gap between machine and implementation and philosophical gap between desire for feature and fulfillment.

My lack of experience in the topic and with such professionals leaves me surprised that not more roles and holders of the expertise exist compared to the more common areas of implementation.

When Code Really is Art

For all of the programmers who lament the fact that code is not recognized as art, there is Piet.

Joking aside, once you get up to speed on stack based programming, this looks like a fun interpreter project. I am supposing that there are some very interesting opportunities on how to literally make your code “more beautiful”!

Addendum: 09/08/08

Here is a hello world program with a thorough walk-through and explanation of how it works.

Addendum: 12/28/08

Possible projects:

  • An interpreter
  • A picture editor
  • A graphical representation of the interpreter
  • A Scheme to Piet compiler; trained to generate “pretty pictures”