Разработчик создал язык программирования Rockstar. Программы на нём выглядят как тексты песен 80-х Материал редакции

Программист хочет, чтобы рекрутёры перестали искать «рок-звёзд разработки».

В закладки
AC/DC, фото Associated Press

Британский разработчик Дилан Битти (Dylan Beattie) создал язык программирования Rockstar, основанный на рок-песнях 80-х. Код на нём выглядит как тексты хитов конца прошлого века. Описание языка и спецификации Битти опубликовал на GitHub.

По словам разработчика, Rockstar «создан для разработки программ, которые в то же время являются текстами песен». Битти рассказал, что придумал язык, чтобы менеджеры по подбору персонала перестали называть разработчиков «рок-звёздами» и указывать это в вакансиях.

Потому что если мы сделаем Rockstar реальным (и полностью бессмысленным) языком программирования, то рекрутёры больше не смогут говорить о «рок-звёздах разработки». Кроме того, это забавно.

Дилан Битти

Разработчик отметил, что если его язык начнут использовать, то можно сделать стикеры. Потому что «кто не хочет наклейку на ноутбук с надписью: „сертифицированный разработчик-рок-звезда“».

Битти подробно описал синтаксис языка. По его словам, Rockstar даёт программистам «беспрецедентный уровень поэтической вольности», когда речь идёт «о композиции и структуре их программ».

В отличие от других языков, использовать комментарии в Rockstar «категорически не рекомендуется». Но если всё же хочется, то разработчик советует использовать круглые скобки: в этом случае их не получится использовать для сложных арифметических выражений. Кроме того, не стоит пытаться быть кратким.

Это рок-н-ролл: аудитория сама найдёт свой собственный смысл.

из спецификаций языка программирования Rockstar

Язык также поддерживает переменные. Есть два способа объявлять и использовать их в Rockstar. «Классические» переменные начинаются с одного из ключевых слов: a, an, the или my. После этого можно указать уникальное имя переменной, которое должно быть набрано исключительно прописными буквами от a до z.

«Нарицательные» переменные должны называться как имена собственные и начинаться с большой буквы. Они могут содержать столько пробелов, сколько больших букв в них используется.

Такие переменные разработчики смогут использовать для создания идентификаторов клиентов, налоговых ставок или дистанций в километрах. В этом случае рекомендуется использовать названия известных песен 80-х, например, Tommy, Gina, Doctor Feelgood, Mister Crowley, Kayleigh, Tom Sawyer, Billie Jean and Janie.

Переменные не нужно объявлять заранее — они динамически типизируются. А с помощью местоимений он, она, оно и других можно сослаться на последнюю используемую переменную.

Также в языке есть типы переменных, которые базируются на системе ECMAScript, однако значение undefined «звучало не слишком рок-н-ролльно», поэтому его заменили на mysterious («загадочный»).

Типы переменных в языке Rockstar

  • Mysterious («загадочный») — значение любой переменной, у которой нет значения обозначается словом mysterious.
  • Null («пустой») — пустой тип. Равен нулю или false («ложь»). Ключевые слова nothing («ничто»), nowhere («нигде») и nobody («никто») распознаются как псевдонимы null.
  • Boolean («булево») — логический тип имеющий два значения: true («правда») или false («ложь»). Right («верный»), Yes («да») и Ok являются псевдонимами True. Wrong («неверный»), No («нет») и Lies («враньё») являются псевдонимами False.
  • Number («число») — числа в Rockstar хранятся с использованием цифрового типа DEC64.
  • String («строка») — строки в Rockstar представляют собой последовательности 16-битных целых значений без знака в кодировке UTF-16.
  • Object («объект») — совокупность названных свойств данных, как в ECMAScript.

Одиночная кавычка в Rockstar считается как буква алфавита. По словам разработчика, это звучит необычно «до тех пор, пока программисты не вспомнят, что „I ain't talkin' 'bout love“ («Я не говорю о любви») — идеальное рок-н-ролльное предложение».

Арифметические операции в Rockstar выполняются с помощью операторов plus («плюс»), minus («минус») , times («раз» — умножение), over («через» — деление) и ключевых слов with («с»), without («без»), of и by, которые дублируют функции.

Примеры арифметики в Rockstar

  • Put the whole of your heart into my hand («Положи всё сердце в мою руку») — умножить «твоё сердце» на «всё» и назначить результат в «мои руки»
  • My world is nothing without your love («Мой мир — ничто без твоей любви») — Создать «мой мир» с результатом вычитания «твоей любви» из нуля

Кроме того, одна из особенностей Rockstar — «поэтические литералы», позволяющие выразить «чудовищную тоску и обозначить переменную». Например, с помощью них присваивание переменной значения 100 выглядит как строка из рок-хита 80-х — «Tommy was a lovestruck ladykiller» («Томми был по уши влюблённым сердцеедом»).

Пример примитивной задачки FuzzBuzz на языке Rockstar

Битти также описал несколько идей, например, раздавать стикеры «сертифицированный разработчик Rockstar» всем, кто сможет написать хоть одну строку на языке, а также генерировать счёт использования текстов песен в коде.

В декабре 2016 года студенты петербуржского колледжа создали язык программирования YoptaScript. Он был предназначен «для гопников и чотких пацанов».

{ "author_name": "Дамир Камалетдинов", "author_type": "editor", "tags": ["\u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438","\u043e\u0444\u0442\u043e\u043f"], "comments": 25, "likes": 97, "favorites": 31, "is_advertisement": false, "subsite_label": "flood", "id": 74084, "is_wide": false, "is_ugc": false, "date": "Tue, 24 Jul 2018 00:05:00 +0300", "is_special": false }
Создать объявление на TJ
Музыка
Послушать новое: Юп Бевинг — пианист, который создаёт музыку и для фона, и для вдумчивого прослушивания
Нидерландский минималист начинал с подборки треков для рекламы, но впоследствии стал самостоятельным музыкантом.
Комментарии

Природный Паша

3

новый язык программирования

ожидание
https://github.com/dylanbeattie/rockstar
реальность
https://github.com/Ky6uk/PETOOH

Оранжевый шар

2

Комментарий удален по просьбе пользователя

Формальный химик

2

Когда рекрутер скажет мне «мы ищем рок звезду», а я скажу «да пошел ты на хуй тогда», я пройду собеседование?

Офтоп
дискуссии в сообществе доступны только владельцам клубного аккаунта
С клубным аккаунтом вы сможете
создавать записи и вести дискуссии в закрытых сообществах
наслаждаться нашим сайтом без рекламы
помочь проекту и почувствовать себя лучше
Купить за 75₽
Обсуждаемое
Гость TJ
«Преподаватель по вокалу сказал: „Надо на год перестать петь“»: главное из общения Гречки с сообществом TJ
О занятиях вокалом, псевдониме и критике со стороны Земфиры.
Новости
«Про женщин сказал, а мужиков как-то позабыл»: в РПЦ назвали неудачным троллингом слова Смирнова о гражданских женах
Накануне протоиерей Смирнов раскритиковал женщин, которые живут в незарегистрированном гражданском браке, и назвал их «бесплатными проститутками».
Дизайн и архитектура
Нарисовал ремейк известной антитабачной рекламы
Выкладываю все исходники в свободный доступ для некоммерческого использования и изменения. В том числе и файл для печати в типографии.
Популярное за три дня
Интернет и мемы
В последнем эфире HQ Trivia ведущие делали что хотели: пили шампанское, матерились и искали новую работу
«Мы зададим 34 вопроса, а затем вы выиграете два цента и будете чертовски счастливы».
Новости
В РПЦ сравнили женщин в гражданском браке с «бесплатными проститутками»
В церкви отметили, российские женщины «сами не понимают, что такое брак».
Истории
История борьбы с проституцией в России: прядильные дворы, легальные бордели и трудовые профилактории
Противостояние (а иногда нейтралитет) власти и проституции: запрет, легализация и победа коммунизма.

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "i", "ps": "cndo", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovy", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "ezfk" } } }, { "id": 6, "disable": true, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byswn", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "cndo", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223677-0", "render_to": "inpage_VI-223677-0-130073047", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=cndo&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudv", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "ccydt", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "cndo", "p2": "fzvc" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "chfbk", "p2": "gnwc" } } } ]