Hacker News new | past | comments | ask | show | jobs | submit login
Rockstar: A programming language where programs are also song lyrics (github.com/dylanbeattie)
297 points by ingve on July 22, 2018 | hide | past | favorite | 44 comments



"Mainly because if we make Rockstar a real (and completely pointless) programming language, then recruiters and hiring managers won't be able to talk about 'rockstar developers' any more"

Hahahahaha I love you for this.

Easiest path to becoming a certified Rockstar developer.

This is so we'll thought out and hilarious. You've earned my number one spot for best esoteric programming language. It used to be Chef where the programs make recipes and someone made a program that output hello world but actually was real instructions for baking a cake. They then baked the cake. But this? Oh the sky is the limit with this !


The phrase "that's so crazy it just might work", is very rarely true, but if we actually got behind this and spread the news, we might actually be able to annoy HR and management enough to purge "rock star" from dev job postings.


The version number scheme should start from "10X" as well....


There is also at least one advantage to being a Rockstar programmer:

"...poetic literals allow the programmer to simultaneously initialize a variable and express their innermost angst."


2.0 will be called "Star Ninja".


"and completely pointless"

or one could also say pointfree


I have such a strong desire to learn this now...


> But why?

> Mainly because if we make Rockstar a real (and completely pointless) programming language, then recruiters and hiring managers won't be able to talk about 'rockstar developers' any more.

> Also 'cos it's kinda fun and any language based on the idea of compiling Meatloaf lyrics has to be worth a look, right?

> Also we can make stickers. Who doesn't want a sticker on their laptop saying 'CERTIFIED ROCKSTAR DEVELOPER'?

They had me at the recruiters point. And honestly I've heard a lot worse reasons for more serious languages.


Maybe we should create more languages called Agile, Senior, Expert, Lead, Ninja, 1 Mio Dollar, Ivy League, Full Stack, etc


Full Stack, a language where the only data type is a stack.


We just need someone to make a derivative of Forth.


And '10 x'


I created the missing interpreter!

https://github.com/dylanbeattie/rockstar/pull/27

It's hackish and hard to read and full of bugs, but it can run FizzBuzz, so Rockstar is a real language now. If the pull request gets accepted I'll add "certified Rockstar developer" to my CV.


consider creating separate repo? This looks real awesome. checkout JS implementation here. https://github.com/wolfgang42/rockstar-js


This is a very simple language and I don't intend to work on it long-time. I prefer to think of it as a donation to the language designer.


this reminds me of when I was learning to write fortran code for the navy around 1990. My rookie debugging method was to insert print statements throughout the code, but instead of printing something informational I would put 80s song lyrics. When I ran the program (which calculated fluid flow around submarines), it would print the lyrics to a song. Wherever the song stopped was where my code was failing.


Years ago I worked on an ecommerce website that followed the "idiomatic variable names" recommendation. All (I mean literally all) the variables were called things like 'gunsandroses', 'meatloaf' etc. I don't know if they did it that way in the first place for shits and giggles or if they did an obfuscation pass at the end, but I didn't find that it assisted maintainability.


At highschool went through a phase of naming them after fish. It started as a joke but quickly because an obsession. But after a few months even I found it impossible to maintain and this was just personal highschool projects. I can't imagine trying to maintain larger and more complex code bases which have been developed by a team of people.


Awesome! FizzBuzz example in idiomatic Rockstar from the repo:

  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


My bittersweet tragic morning:

0) Check hacker news

1) Read about Rockstar. Get more and more excited

2) Go to download/build the interpreter/compiler/whatever

3) It's not implemented yet? I can't write Rockstar code RIGHT NOW?!

NOOOOOOOOOOOOOOOO


They're still looking for a rockstar developer to implement it ;)


It's now available, just waiting for merge: https://github.com/dylanbeattie/rockstar/pull/27

On a completely unrelated note, I have to reevaluate my life choices.


This is epic. Time to write a hello world and update LinkedIn. "Genuine Rockstar Developer, 2018-". Please make and sell the laptop stickers. I'll buy a dozen.


Sadly this isn’t implemented yet; it’s going to take a real rockstar developer to build a formal grammar, parser and runtime (I imagine the easiest thing to do will be to map the language onto e.g. JavaScript, much like what TypeScript does).

The language has some conceptual similarities with Shakespeare, for instance; Shakespeare also has a poetic way to specify numbers based on adjectives with positive and negative sentiment. Shakespeare is fully implemented and used occasionally for comedic effect in programming contests; see http://shakespearelang.sourceforge.net/report/shakespeare/sh... for a rundown of the actual language.


I feel the need to arrange that fizzbuzz into an actual song.


I think unit tests should be written as corresponding MIDI files: lyrics = code, music = tests.


idea: a Meta language where all the keywords are read from a file (text, json etc)

So you could sub out the words and make your own style of language.

The obvious one is Ninja but you could knock out other ones as people come up with them. You could have a Halloween language etc.

Btw, instead of “continue”, rockstar should use “and on and on”


I'm going to need a variation of Rockstar with more brooding darkness and satanic references for system programming.

I.e. closer to metal.


To start, a good one to use as a template might be LOLCODE [0], which is hilarious on its own.

[0]: https://lolcode.org


Here is my attempt to create (compose?) Fibonacci(25):

  Tommy was a kindle
  Jane was gasoline
  Put Tommy over Jane into the fire
  
  Put the fire into the daydream
  Knock the daydream down
  
  away takes time
  If time is nothing
  Give back time
  
  The nightmare was over
  Build the nightmare up
  If time is the nightmare
  Give back time
  
  Put time without the nightmare into my world
  Put time without the fire into yours
  Put away taking my world into the daylight
  Put away taking yours into the night
  Give back the daylight with the night
  
  Put the daydream into my love
  ever is so rock
  
  Until my love is stronger than ever
  Put away taking my love into the night
  Whisper the night
  Build my love up


The sample code is kinda fun to read.


It seems possible that 1980s power ballads were programs all along. I'm going to run "Mr. Crowley" as soon as these guys release a compiler.

Pretty sure a hot AI hologram will pop out of my IBM Compatible's antenna.


Why wait? You should be able to simulate one by hand in fairly short order.


But not without being a certified Rockstar dev, and they haven't printed the stickers yet.


That's what she said.


I'd be keen to see what 'Crazy Train' does.


Now each team of rockstar developers will have to find a really good name!


Ok guys, I'll write the readme, you just go and write the language.


Love it. LOVE IT.

However, it's missing one tiny little bitty thing:

  goes to 11
How come "goes to 11" is not a reserved sequence of keywords?


Impressive error handling. I accidentally typed !love as a property and it returned back “you give !love a bad name”


HAHAHAHAHA! This is funny! :D It's pure genius. And I would love to be a certified rockstar developer.


Looking for Rockstar developer. Entry level position, must have 5 years experience developing in Rockstar.


This is just fantastic.


This is pure genious!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: