A Programming Language To Express Programming Frustration

Programming can be a frustrating endeavor. Certainly we’ve all had moments, such as forgetting punctuation in C or messing up whitespace in Python. Even worse, an altogether familiar experience is making a single change to a program that should have resulted in a small improvement but instead breaks the program. Now, though, there’s a programming language that can put these frustrations directly into the code itself into a cathartic, frustration-relieving syntax. The language is called AHHH and it’s quite a scream.

While it may not look like it on the surface, the language is Turing complete and can be used just like any other programming language. The only difference is that there are only 16 commands in this language which are all variants of strings of four capital- or lower-case-H characters. The character “A” in the command “AHHH” starts the program, and from there virtually anything can be coded as a long, seemingly unending scream. The programming language is loosely related to COW which uses various “moos” to create programs instead of screams, and of course is also distantly related to brainfuck which was an esoteric programming language created in order to have the smallest possible compiler.

We can’t really recommend that beginner programmers start to learn this language instead of something more practical like Python, esoteric languages like these can teach us a lot about the way that computers work. This language, for example, lets you code in pixels instead of characters. Others are more for fun such as this language which turns your code into an ’80s rock ballad.

Thanks to [Kyle F] for the tip!

26 thoughts on “A Programming Language To Express Programming Frustration

    1. I’m always missing functions in these esoteric languages. What about making function calls contain aaargh?
      And then maybe something like “GRAAH” as return keyword.

      Unfortunately my colleagues find it already intimidating if I send them bits of Perl, so I might not be able to use it for production.


    1. Perl has a module called “Bleach” which lets you write the entire script in whitespace. So you write a script to do anything you wanted, and when pulled up in an editor all you see is “!#/whatever/perl; use Bleach” as the entirety of the program.

  1. IMO to be more realistic, each of the opcodes needs to be made of a collection of symbols – *#$! for increment-cell, etc. Programmers are generally more …. “inventive” than just a long drawn-out scream, so I think this would be a more accurate representation….

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.