Дамир Камалетдинов
34 022

Разработчик создал язык программирования 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": "self", "tags": ["\u043e\u0444\u0442\u043e\u043f","\u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438"], "comments": 25, "likes": 97, "favorites": 32, "is_advertisement": false, "section_name": "default", "id": "74084", "is_wide": "" }
Популярные материалы
Показать еще
{ "is_needs_advanced_access": true }

Популярные комментарии

Дискуссии по теме
доступны только владельцам клубного аккаунта

Купить за 75₽
Авторизоваться

Преимущества
клубного аккаунта

  • отсутствие рекламы
  • возможность писать комментарии и статьи
  • общение с членами клуба
Подробнее

Преимущества
клубного аккаунта

  • отсутствие рекламы
  • возможность читать и писать комментарии
  • общение с членами клуба
  • возможность создавать записи

Сколько это стоит?

Членство в клубе стоит всего 75₽ в месяц. Или даже дешевле при оплате за год.

Что такое клуб?

Клуб ТЖ это сообщество единомышленников. Мы любим читать новости, любим писать статьи, любим общаться друг с другом.

Вступить в клуб

Комментарии Комм.

Популярные

По порядку

0

Прямой эфир

Вы не против подписаться на важные новости от TJ?

Нет, не против
[ { "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": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "i", "ps": "cndo", "p2": "flbq" } } }, { "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": 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" } } } ]