Rockstar: a programming language whose code takes the form of power ballads

Dylan Beattie created the (functional, but a) joke programming language "Rockstar" so that recruiters would be forced to end the odious practice of referring to people as "rockstar programmers."

Rockstar programs are also power ballads. To declare a variable, you preface it with a common word like "a, an, the, my or your" and any unique name (e.g. "My girl"), then a type like "mysterious" (no value assigned), "nothing, nowhere or nobody" (null), or "true or false" (boolean). To increment a variable, you use "build $VARIABLENAME up" and to decrement it, you use "knock $VARIABLENAME down." Operators are things like "with" (addition), "without" (subtraction), "of" (multiplication") and "by" (division). You can assign numeric values to variables with special declaration syntax in which the length of each word in the declaraion is translated to its numeric value ("Tommy was a lovestruck ladykiller" initialises "Tommy" with the value "100"). Comparison operators include a range of poetic terms like "stronger," "weaker," "big" and "strong." For I/O, use words like "listen to" and "shout," "whisper" and "scream."

It goes on in this vein with surprising detail and thoughtfulness. Loops use "while" and can be stopped with "break it down" and continued with "take it to the top."

Here is a valid Rockstar program:

Midnight takes your heart and your soul
While your heart is as high as your soul
Put your heart without your soul into your heart

Give back your heart


Desire is a lovestruck ladykiller
My world is nothing 
Fire is ice
Hate is water
Until my world is Desire,
Build my world up
If Midnight taking my world, Fire is nothing and Midnight taking my world, Hate is nothing
Shout "FizzBuzz!"
Take it to the top

If Midnight taking my world, Fire is nothing
Shout "Fizz!"
Take it to the top

If Midnight taking my world, Hate is nothing
Say "Buzz!"
Take it to the top

Whisper my world

Rockstar [Dylan Beattie/Github]

(via Four Short Links)

Loading...