Rockstar programming language: when the code looks like the text of a rock hit
The phrase "rockstar developer" makes some pucker: "This is a stupid recruiting buzzword, no one among the developers themselves calls it that way." In Russia, it occurs less frequently, but in English-speaking countries, many are already tired. And the British .NET developer Dylan Beatty is particularly keen on him: he is a fan of rock music, so he sees well how far this “rockstar” is from real rockstars.
As a result, Dylan started the programming language Rockstar, the code on which should be similar to rock / metal texts. Firstly, if you can make such a project noticeable, you can take away the words “rockstar developer” from recruiters, giving them a new meaning. And secondly, it is interesting to try to compile the lyrics of your favorite songs! Well, doing stickers on a certified rockstar developer laptop is also fun. ')
Of course, all this sounds like a joke, and initially it was, but now it is becoming more and more real. Details - under the cut. It all started with the fact that developers began ironically to beat the notion of "rockstar developer", recalling the real rock stars. You may remember this picture:
And such jokes eventually reached such a tweet:
It is unlikely that the author of this tweet suggested that anyone would ever really undertake to do this. Here you need a person who loves programming, rock music, and humor at the same time, and is ready to do a lot of work for the sake of one successful joke.
But Dylan Beatty is just that. He has long been making programmer parodies of rock hits - that is, he just connects programming, rock music and humor, spending a fair amount of time on it. You can listen, for example, to his version of Pink Floyd's Another Brick in the Wall, which comes to a bang at IT conference parties:
Dylan recalled the already existing esoteric languages, where they did not set the goal “to become more popular than C ++”, but set the goal “let's implement an interesting idea, simply because we can”. Among them are those who introduced vocabulary and stylistics from some other area into the code: for example, the Shakespeare language, styling programs for Shakespeare's plays, and Lingua :: Romana :: Perligata, positioned as “Perl in Latin”. Yes, nobody writes in production on them, but the very fact of their existence makes our world a little bit more colorful.
With these thoughts, he decided to create a language where FizzBuzz might look like this:
Midnight takes your heart and your soul While your heart isas high as your soul Put your heart without your soul into your heart Give back your heart Desire is a lovestruck ladykiller My world isnothing Fire is ice Hate is water Until my world is Desire, Build my world up If Midnight taking my world, Fire isnothingand Midnight taking my world, Hate isnothing Shout "FizzBuzz!" Take it to the top If Midnight taking my world, Fire isnothing Shout "Fizz!" Take it to the top If Midnight taking my world, Hate isnothing Say "Buzz!" Take it to the top Whisper my world
In August, Dylan started a repository on GitHub and wrote about his idea on Twitter , without expecting any particular reaction - and suddenly everything exploded with retweets and githab stars. Circles have diverged to the point that he was interviewed by Classic Rock magazine.
In this interview, Dylan remarked that starting a similar project is “how to try to go around Canada on a monocycle: this is not done to solve a real problem, but to see what you can achieve by driving yourself into an unusual frame.”
I also noticed that with all the hype, the future of the project is in question: the Internet very quickly switches to new jokes, so the next day Rockstar may be forgotten, not having time to be realized.
However, although the first wave of interest really subsided, the project does not look abandoned. And now he looks much more elaborate than a simple joke for one day. When you read the specification , it is impressive in two ways. Firstly, it shows that they really thought “how such a language should look like”, and not just sketched something in five minutes and forgot. And secondly, it is very funny in some places:
“The use of comments is not encouraged. This is rock and roll, the audience should make sense in the text! ”
"The type system is similar to ECMAScript, only undefined doesn't sound rock-n-roll enough, so we decided to use the word mysterious ."
“Since Rockstar combines programming, English and rock and roll, everything is difficult with apostrophes. In programming, they are used for string values ​​- 'like this'. In English for abbreviated forms - you're, he. And in rock and roll, it seems, they use randomly at all: sweet child o 'mine, ain't talkin' bout love, guns n 'roses'.
We decided to clarify some details with Dylan himself:
- At first glance, this idea looks like a “joke on one commit”, which will not be followed by a second one.But now there are 132 commits in the project - do we understand correctly that he is alive?
- Yes! It began as a joke - the first draft of the language specification I wrote, sitting in a bar at a laptop. I posted it on GitHub, posted links on Twitter ... and got over a thousand stars on GitHub. And then people do the implementations. Someone created a transpaser Rockstar-JavaScript, someone else - syntax highlighting for Sublime Text and VS Code. People created pull requests, opened an issue, did their own implementations - it was awesome.
Now there is a whole small team engaged in the reference implementation of Rockstar; There is a group in Discord, where we discuss language design. It is still a comic language - but it is a comic language with a set of integration tests and a recursive descending parser, and in November we plan to release 1.0.
- Is this language strictly for rock fans?Fans of hip-hop or pop music have nothing to catch here?
- I do not even know! The original idea was that recruiters could no longer talk about “rockstar developers” ... is there such a thing as a hip-hop developer? But the language is designed to match the lyrics of the songs as a whole, there are no things strictly requiring the use of precisely rock vocabulary. I am sure that you can write such a hip-hop text, which will be a valid program.
- Do you want to somehow combine Rockstar with the parodies that you are famous for?
- To write such a parody of a rock song that will also be a valid Rockstar program at the same time? Sounds interesting ... maybe I'll try after we finalize specification 1.0 :)
Finally, a small announcement. We know Dylan due to the fact that he regularly speaks at our .NET-conference DotNext: his reports each time receive excellent reviews, showing that he is good not only in parodies. And at the nearest DotNext 2018 Moscow (November 22-23), he will close the conference with the “Ctrl-Alt-Del: learning to love legacy code” report. And he will surely, as usual, grab a guitar with him in order to perform his parodies in front of everyone at a conference party. In general, if you want to discuss Rockstar with him, see him as a speaker or hear his work alive - you know where it can be done .