archives

Critical Programming Language Design

Recently, I've been immersing myself more in design and spending more time working with designers. This week I've been digesting an area called critical design and have attended a few talks from the design community (e.g., a nice lecture by Anthony Dunn of the Royal College of Art). Basically, we (PL designers) typically do affirmative design, which is characterized by the following goals:

  • Answer questions
  • Solve problems according to existing constraints
  • Designs for production and adoption
  • Tends to promote the status quo
  • Taken very seriously

In contrast to affirmative design, critical design works with the following goals:

  • Ask questions
  • Solves problems with unreal constraints
  • Can be a practice in alternate history (e.g., Steampunk)
  • Designs for society
  • Tends to disrupt the status quo
  • Can be seen as dark, sarcastic, funny, controversial, a parody

The only examples of critical design that I can find in PL are esoteric languages like BrainF*ck. Such languages seem like jokes, and maybe they are meant as jokes, but they have some merit.

Opinions on the role of critical design in PL research? Any good examples? I'm particularly interested in using critical design in PL design to break through the rut I think we are in today.