Rockstar is a dynamically typed Turing-complete programming language designed for creating computer programs that are also song lyrics. Rockstar is heavily influenced by the lyrical conventions of 1980s hard rock and power ballads. It was created by Dylan Beattie in 2018, inspired by a tweet suggesting that "to really confuse recruiters, someone should make a programming language called Rockstar."
Although Rockstar is a fully-specified language with multiple implementations, it was created primarily to satirise the use of the phrase 'rockstar developer' in IT job listings and recruitment - the joke being that if Rockstar is a real programming language that's easy to learn, then anybody who wants to invest a few minutes in it can legitimately call themselves a 'rockstar developer'.
Rockstar is superficially similar to the verbose English-based syntax of languages like COBOL and Visual Basic, and includes some unique language features intended to "give the programmer an unprecedented degree of poetic license when it comes to the composition and structure of their programs."
'Hello, World' in Rockstar
Say "Hello World"
(If you can write this, you are a qualified rockstar developer. Congratulations.)
Truth-machine in Rockstar
Listen to the box If the box is gone Say the box. Else While the box is not gone. Say the box.
FizzBuzz in Rockstar
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
Project Euler in Rockstar
Code for Problem 2: Please note that there are two blank lines before the last line
Henry is gone. Jack is harkworking. Jill is gone. While Jack is lower than 4000000 Let Jill be with Jack. Let Jack be with Jill. Let Jill be Jack without Jill. Let Jack be without Jill. Let Papa be Jack over 2. Turn it down. Let Papa be of 2. If Papa is Jack Let Henry be with Jack. Say Henry.
Code for Problem 6:
Jesus is a scratching rockplayer. Henry is gone. While Jesus isn't nothing Let Es be Jesus without 1. Let El be Jesus of Jesus of Es. Let Henry be with El. Knock Jesus down. Say Henry.
- codewithrockstar.com is the official site, including an online Rockstar interpreter
- Rockstar programming language on GitHub
- Rocky is a a fully-compliant Rockstar interpreter in Java, including a REPL mode, a CLI debugger, and the option to use DEC64 numbers (as per the original Rockstar draft spec) instead of IEEE754.
- rockstar-lexer - Rockstar lexer written in Haskell with Alex
- rockstar-java - Rockstar interpreter in Java
- rockstar-ml - Rockstar interpreter in OCaml
- rockstar-py - Rockstar-to-Python transpiler
- kaiser-ruby - Rockstar to Ruby transpiler
- sublime-rockstar-syntax - Syntax highlighter for Sublime Text 3
- language-rockstar - Syntax highlighter for Atom
- maiden - Rockstar interpreter in Rust (online version using WebAssembly)
- Online Rockstar Parser and Transpiler: rockstar-webpiler source code online version
- vim-rockstar - Syntax highlighting for vim
- vscode-rockstar-language - Syntax highlighting for VSCode
- sellout - Rockstar to C# (dotnet core) transpiler
- Meet the boffin behind a computer programming language based on power ballads in Classic Rock magazine.
- Rockstar article on BoingBoing
- Rockstar on HackerNews
- Rockstar on /r/ProgrammerHumor
- Rockstar on dice.com
- The Rockstar Programming Language | Mitigated Frenzy - see also their solution to the Rainfall problem