Хабрахабр

Язык программирования Rockstar: когда код выглядит как текст рок-хита

В России оно встречается не так часто, а вот в англоговорящих странах многим уже надоело. Словосочетание «rockstar developer» заставляет некоторых морщиться: «вот же глупый рекрутерский баззворд, среди самих разработчиков никто так себя не называет». NET-разработчик Дилан Битти: он фанат рок-музыки, поэтому хорошо видит, насколько это «rockstar» далеко от настоящих rockstars. И особенно остро ощущает его засилье британский .

Во-первых, если получится сделать такой проект заметным, то можно отнять у рекрутеров слова «rockstar developer», дав им новое значение. В итоге Дилан затеял язык программирования Rockstar, код на котором должен быть похож на рок/метал-тексты. Ну и делать наклейки на ноутбук «certified rockstar developer» тоже весело. А во-вторых, интересно же попробовать скомпилировать тексты любимых песен!

Подробности — под катом.
Началось всё с того, что разработчики стали иронично обыгрывать понятие «rockstar developer», вспоминая о настоящих рок-звёздах. Конечно, всё это звучит как шутка, и изначально ей и было, но теперь становится всё реальнее. Вы можете помнить эту картинку:

И подобные шуточки со временем дошли до такого твита:

Тут нужен человек, который одновременно очень любит и программирование, и рок-музыку, и юмор, причём готов ради одной удачной шутки проделывать большую работу. Вряд ли автор этого твита предполагал, что кто-либо когда-либо действительно возьмётся делать подобное.

Он давно делает программистские пародии на рок-хиты — то есть как раз соединяет программирование, рок-музыку и юмор, затрачивая на это порядочно времени. Но Дилан Битти именно такой и есть. Можете послушать, например, его версию «Another Brick in the Wall» Pink Floyd, которая на вечеринках IT-конференций заходит на ура:

Среди них есть такие, которые привносили в код лексику и стилистику из какой-то другой области: например, язык Shakespeare, стилизующий программы под шекспировские пьесы, и Lingua::Romana::Perligata, позиционирующийся как «Perl на латыни». Дилан вспомнил о уже существующих эзотерических языках, где не ставили цель «стать популярнее C++», а ставили цель «давайте реализуем интересную идею, просто потому что можем». Да, в продакшн на них никто не пишет, но сам факт их существования делает наш мир немного красочнее.

С такими мыслями он решил создать язык, где FizzBuzz может выглядеть так:

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

Круги разошлись вплоть до того, что у него взял интервью журнал Classic Rock. В августе Дилан завёл репозиторий на GitHub и написал о своей идее в Twitter, не ожидая никакой особенной реакции — и внезапно всё взорвалось ретвитами и гитхаб-звёздами.

В этом интервью Дилан заметил, что затевать подобный проект — это «как пытаться объехать Канаду на моноцикле: такое делают не для решения реальной задачи, а чтобы посмотреть, чего получится достичь, загнав самого себя в необычные рамки».

А ещё заметил, что при всей шумихе будущее проекта под вопросом: интернет очень быстро переключается на новые шутки, так что назавтра Rockstar может оказаться забыт, не успев оказаться реализованным.

И уже сейчас он выглядит куда проработаннее, чем простая шутка на один день. Однако, хотя первая волна интереса действительно схлынула, проект не выглядит заброшенным. Во-первых, по ней видно, что там действительно задумывались «как должен выглядеть такой язык», а не просто набросали что-то за пять минут и забыли. Когда читаешь спецификацию, она впечатляет в двух отношениях. А во-вторых, она местами очень забавная:

Это рок-н-ролл, аудитория должна сама находить в тексте смысл!» «Использование комментариев не поощряется.

«Система типов похожа на ECMAScript, только undefined звучит недостаточно рок-н-ролльно, так что мы решили использовать слово mysterious».

В программировании их используют для строковых значений — 'вроде этого'. «Поскольку Rockstar объединяет программирование, английский язык и рок-н-ролл, с апострофами всё сложно. А в рок-н-ролле, похоже, используют вообще рандомно: sweet child o' mine, ain't talkin' 'bout love, guns n' roses». В английском для сокращённых форм — you're, he's.

Мы решили уточнить некоторые подробности у самого Дилана:

Но сейчас коммитов в проекте уже 132 — правильно понимаем, что он жив? — Эта затея на первый взгляд выглядит «шуткой на один коммит», за которым не последует второго.

Начался он как шутка — первый черновик спецификации языка я написал, сидя в баре за ноутбуком. — Да! А затем люди занялись реализациями. Выложил на GitHub, опубликовал ссылки в Twitter… и получил больше тысячи звёзд на GitHub. Люди создавали пулл-реквесты, открывали issue, делали собственные имплементации — это было потрясающе. Кто-то создал транспайлер Rockstar-JavaScript, кто-то другой — подсветку синтаксиса для Sublime Text и VS Code.

Это всё ещё шуточный язык — но это шуточный язык с набором интеграционных тестов и рекурсивным нисходящим парсером, а в ноябре мы планируем релиз 1. Теперь есть целая маленькая команда, занимающаяся референсной реализацией Rockstar; есть группа в Discord, где мы обсуждаем дизайн языка. 0.

Любителям поп-музыки или хип-хопа тут ловить нечего? — А этот язык предназначен строго для рок-фанатов?

Изначальная идея была в том, чтобы рекрутеры не могли больше говорить о «rockstar developers»… есть ли такая вещь, как хип-хоп-разработчик? — Даже не знаю! Я уверен, что можно написать такой хип-хоп-текст, который будет валидной программой. Но язык спроектирован так, чтобы соответствовать текстам песен в целом, там нет каких-то вещей, строго требующих использовать именно рок-лексику.

— А хотите ли как-то совмещать Rockstar с пародиями, которыми вы известны?

Звучит интересно… возможно, попробую после того, как мы финализируем спецификацию 1. — Написать такую пародию на рок-песню, которая одновременно с этим будет ещё и валидной Rockstar-программой? 0 🙂

Мы знаем Дилана благодаря тому, что он регулярно выступает на нашей . Напоследок небольшое объявление. И на ближайшем DotNext 2018 Moscow (22-23 ноября) он закроет конференцию докладом «Ctrl-Alt-Del: learning to love legacy code». NET-конференции DotNext: его доклады каждый раз получают отличные отзывы, показывая, что он хорош не только в пародиях. В общем, если хотите обсудить с ним Rockstar, увидеть его в качестве докладчика или услышать его творчество вживую — вы знаете, где это можно сделать.
А ещё он наверняка, как обычно, прихватит с собой гитару, чтобы на конференционной вечеринке исполнить свои пародии перед всеми желающими.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть