Langage de programmation Rockstar: quand le code ressemble à du texte rock hit



L'expression "développeur rockstar" fait grimacer certaines personnes: "voici un bazvord de recrutement idiot, personne ne se dit un tel développeur". En Russie, ce n'est pas si courant, mais dans les pays anglophones, beaucoup sont déjà fatigués. Et le développeur britannique .NET Dylan Beatty est particulièrement sensible à sa domination: il est un fan de musique rock, donc il voit bien à quelle distance cette «rockstar» est de véritables rockstars.

En conséquence, Dylan a commencé le langage de programmation Rockstar, dont le code devrait ressembler à des textes rock / métal. Premièrement, si vous parvenez à rendre un tel projet visible, vous pouvez retirer les mots «développeur rockstar» aux recruteurs, en leur donnant un nouveau sens. Et deuxièmement, il est intéressant d'essayer de compiler les paroles de vos chansons préférées! Eh bien, faire des autocollants pour un ordinateur portable de développeur Rockstar certifié est aussi amusant.

Bien sûr, tout cela ressemble à une blague, et c'était le cas au départ, mais maintenant cela devient plus réel. Détails - sous la coupe.

Tout a commencé avec le fait que les développeurs ont commencé à battre ironiquement le concept de "développeur rockstar", rappelant les vraies stars du rock. Vous vous souvenez de cette image:



Et de telles blagues sont finalement venues à un tel tweet:



Il est peu probable que l'auteur de ce tweet ait suggéré que quiconque entreprenne un jour de le faire. Ici, vous avez besoin d'un homme qui en même temps aime beaucoup la programmation, la musique rock et l'humour, et il est prêt à faire du bon travail pour une bonne blague.

Mais Dylan Beatty n'est que cela. Il fait des parodies programmatiques de tubes rock depuis longtemps - c'est-à-dire qu'il combine simplement la programmation, la musique rock et l'humour, y consacrant beaucoup de temps. Vous pouvez écouter, par exemple, sa version de "Another Brick in the Wall" de Pink Floyd, qui part en fanfare lors des conférences informatiques:



Dylan s'est souvenu des langages ésotériques déjà existants, où ils n'avaient pas fixé l'objectif de "devenir plus populaire avec C ++", mais avaient fixé l'objectif de "implémentons une idée intéressante, simplement parce que nous le pouvons". Parmi eux, il y a ceux qui ont introduit le vocabulaire et le style d'un autre domaine: par exemple, la langue Shakespeare , qui stylise les programmes pour les pièces shakespeariennes, et Lingua :: Romana :: Perligata, positionnée comme «Perl en latin». Oui, personne ne leur écrit en production, mais le fait même de leur existence rend notre monde un peu plus coloré.

Avec de telles pensées, il a décidé de créer un langage où FizzBuzz pourrait ressembler à ceci:

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 


En août, Dylan a commencé un référentiel sur GitHub et a écrit sur son idée sur Twitter , ne s'attendant à aucune réaction particulière - et soudain, tout a explosé avec des retweets et des stars de github. Les cercles se sont rompus au point que le magazine Classic Rock l'a interviewé .

Dans cette interview, Dylan a noté que démarrer un projet similaire est «comment essayer de faire le tour du Canada sur un monocycle: cela ne se fait pas pour résoudre un vrai problème, mais pour voir ce qui se passe, après s'être conduit dans un cadre inhabituel».

Et il a également noté que, avec tout le battage médiatique, l'avenir du projet est en question: Internet passe très rapidement à de nouvelles blagues, de sorte que le lendemain Rockstar peut être oublié avant qu'il ne puisse être réalisé.

Cependant, bien que la première vague d'intérêt se soit vraiment apaisée, le projet ne semble pas abandonné. Et maintenant, il a l'air beaucoup plus élaboré qu'une simple plaisanterie d'un jour. Lorsque vous lisez une spécification , elle est impressionnante de deux manières. Premièrement, cela montre qu'ils ont vraiment pensé «à quoi devrait ressembler une telle langue», et n'ont pas simplement esquissé quelque chose en cinq minutes et oublié. Et deuxièmement, c'est très drôle par endroits:

«L'utilisation des commentaires est déconseillée. C'est du rock and roll, le public lui-même doit trouver le sens dans le texte! »

"Le système de type est similaire à ECMAScript, seul undefined ne sonne pas assez rock and roll, nous avons donc décidé d'utiliser le mot mystérieux ."

«Puisque Rockstar combine la programmation, l'anglais et le rock and roll, les apostrophes sont compliquées. En programmation, ils sont utilisés pour les valeurs de chaîne - «comme ça». En anglais pour les formes abrégées - vous êtes, il est. Et dans le rock and roll, semble-t-il, ils l'utilisent généralement au hasard: doux enfant du mien, ne parle pas d'amour, guns n 'roses ».



Nous avons décidé de clarifier certains détails avec Dylan lui-même:

- Cette idée à première vue ressemble à une «blague sur un commit», qui ne sera pas suivie d'une seconde. Mais maintenant, il y a déjà 132 commits dans le projet - comprenons-nous correctement qu'il est vivant?

- Oui! Cela a commencé comme une blague - le premier brouillon de la spécification linguistique que j'ai écrit assis dans un bar devant un ordinateur portable. Je l'ai posté sur GitHub, publié des liens sur Twitter ... et obtenu plus d'un millier d'étoiles sur GitHub. Et puis les gens ont commencé à mettre en œuvre. Quelqu'un a créé le transporteur Rockstar-JavaScript, quelqu'un d'autre a créé la coloration syntaxique pour Sublime Text et VS Code. Les gens ont créé des demandes de tirage, ouvert le problème, fait leurs propres implémentations - c'était incroyable.

Maintenant, il y a toute une petite équipe impliquée dans l'implémentation de référence de Rockstar; il y a un groupe à Discord où nous discutons de la conception du langage. C'est toujours un langage comique - mais c'est un langage comique avec un ensemble de tests d'intégration et un analyseur récursif descendant, et en novembre, nous prévoyons de publier 1.0.

- Et cette langue est destinée strictement aux fans de rock? Les fans de musique pop ou de hip hop n'ont rien à attraper ici?

- Je ne sais même pas! L'idée originale était que les recruteurs ne pouvaient plus parler de «développeurs rockstar» ... existe-t-il une chose comme un développeur hip-hop? Mais la langue est conçue pour s'adapter aux paroles dans leur ensemble, il n'y a pas de choses qui nécessitent strictement l'utilisation du vocabulaire rock. Je suis sûr que vous pouvez écrire un tel texte hip-hop qui sera un programme valide.

- Voulez-vous combiner Rockstar avec les parodies pour lesquelles vous êtes célèbre?

- Écrire une parodie d'une chanson rock qui sera en même temps un programme Rockstar valide? Cela semble intéressant ... j'essaierai peut-être après avoir finalisé la spécification 1.0 :)

Enfin, une petite annonce. Nous connaissons Dylan du fait qu'il parle régulièrement à notre conférence .NET DotNext: ses rapports reçoivent d'excellentes critiques à chaque fois, montrant qu'il est bon non seulement dans les parodies. Et lors du prochain DotNext 2018 à Moscou (22-23 novembre), il clôturera la conférence avec le rapport «Ctrl-Alt-Del: apprendre à aimer le code hérité». Et il emportera sûrement, comme d'habitude, une guitare avec lui pour jouer ses parodies lors de la conférence devant tout le monde. En général, si vous voulez discuter de Rockstar avec lui, voyez-le comme un orateur ou écoutez son travail en direct - vous savez où le faire .

Source: https://habr.com/ru/post/fr427877/


All Articles