
Кликбейтные заголовки, давайте признаемся, надоели всем. Сейчас они встречаются даже на Хабре. Программист Линус Ли, судя по всему, испытывал те же чувства и решил действовать по принципу «не можешь победить — доведи до крайности». В результате он создал Tabloid — полноценный язык программирования, где весь код пишется в стиле сенсационных заголовков.
Представьте язык, где вместо привычного function hello() вы пишете DISCOVER HOW TO HELLO WITH (англ. «узнайте, как сделать... с помощью»), а вместо return используете SHOCKING DEVELOPMENT! (англ. «шокирующее развитие событий»). А еще каждый листинг должен заканчиваться фразой PLEASE LIKE AND SUBSCRIBE.
Звучит как странная шутка? Да, но этот язык реально работает, имеет собственный интерпретатор и позволяет писать полноценные программы.
В описании языка автор особо отмечает тот факт, что Tabloid — полноценный по Тьюрингу язык программирования. Это значит, что теоретически на нём можно решить любую вычислительную задачу, которую вообще возможно решить программированием.
Понятие названо в честь британского математика Алана Тьюринга, описавшего в 1930-х годах т.н. абстрактную "машину Тьюринга" - теоретическую модель компьютера. Любой язык программирования, способный выполнять условные переходы, организовывать циклы или рекурсию, работать с памятью и выполнять базовые операции, считается полным по Тьюрингу.
Как и серьезные языки, Tabloid имеет рабочий интерпретатор (написан на JavaScript, также существует совместимая реализация на Racket). Однако в нём, как уже упоминалось выше, все команды заимствованы из желтой прессы.
Особенности программирования на Tabloid:
1. Текст дополняется автоматическими “!”
Результат выводится с помощью ключевых слов YOU WON'T WANT TO MISS, за которыми следует выражение. Весь текст, выводимый Tabloid, автоматически переводится в ВЕРХНИЙ РЕГИСТР и дополняется восклицательным знаком!
HELLO WORLD!
RESULT IS!
3628800!
2. Функции в духе сенсационных заголовков
Функции объявляются с помощью DISCOVER HOW TO... WITH. Аналогично присваиваются значения переменным с помощью EXPERTS CLAIM... TO BE. Автор пишет: «в интернете каждый может быть экспертом, и Tabloid даёт вам возможность этим воспользоваться!»
3. Никаких циклов - только рекурсия!
Поскольку язык создавался за 8 часов, команд для циклов не существует. Опять же процитируем автора: «Новостной цикл движется слишком быстро! Ни у кого нет времени на вчерашние циклы или операторы break прошлой недели. Если нужно что‑то зациклить, используйте рекурсию.»
4. Возвраты из функций сильно удивляют
Чтобы выйти из функции, нужно написать SHOCKING DEVELOPMENT! И надо признать, это звучит шокирующе.
5. Лайк и подписка обязательны
Каждый исходный код должен заканчиваться фразой PLEASE LIKE AND SUBSCRIBE. Без этого программа просто не запустится.
Список команд Tabloid
В описании языка Линус Ли приводит полный список команд. Мы решили не ограничиваться прямым переводом, а развить концепцию — адаптировать команды под русскоязычные заголовки, потеряв (как это принято в желтой прессе) немного смысла в процессе.
Команда |
Вольный перевод на русский |
Описание |
DISCOVER HOW TO...WITH |
ВРАЧИ СКРЫВАЛИ! КАК...ПРИ ПОМОЩИ |
Объявление функции |
RUMOR HAS IT |
ОЧЕВИДЦЫ СООБЩАЮТ |
Начало блока кода |
A OF B, C |
A ИЗ B ПО C |
Вызов функции A с аргументами B, C |
WHAT IF...LIES! |
ЧТО ЕСЛИ ВСЁ...ОБМАН! |
Условное выражение if‑else |
END OF STORY |
ВОТ И ВСЯ ЛЮБОВЬ |
Завершение блока кода |
EXPERTS CLAIM...TO BE |
УЧЁНЫЕ ДОКАЗАЛИ...ЯВЛЯЕТСЯ |
Объявление или присвоение переменной |
YOU WON'T WANT TO MISS |
ЭТО ВИДЕО ВЗОРВАЛО ИНТЕРНЕТ |
Вывод на экран |
LATEST NEWS ON |
СРОЧНО! НОВОСТИ ПРО |
Ввод пользователя |
TOTALLY RIGHT |
СТО ПУДОВ или ОТВЕЧАЮ |
Логическое значение true |
COMPLETELY WRONG |
ПОЛНЫЙ ФЕЙК |
Логическое значение false |
AND, OR |
ПЛЮС К ТОМУ ЖЕ, ЛИБО |
Логические операторы и/или |
PLUS, MINUS, TIMES, DIVIDED BY, MODULO |
ПРИБАВИТЬ, ОТНЯТЬ, НА, ПОДЕЛИТЬ, ОСТАТКИ |
Основные арифметические операции |
IS ACTUALLY |
ПО ФАКТУ |
Оператор равенства |
BEATS, SMALLER THAN |
РВЁТ, СЛАБЖЕ |
Операторы сравнения больше/меньше |
SHOCKING DEVELOPMENT |
ТАКОГО ПОВОРОТА НИКТО НЕ ЖДАЛ |
Возврат из функции |
PLEASE LIKE AND SUBSCRIBE |
ПОДПИСЫВАЙТЕСЬ НА МОЙ ТЕЛЕГРАМ‑КАНАЛ |
Конец программы |
Пример
Ниже представлен пример кода для получения первых 10 чисел Фибоначчи:
DISCOVER HOW TO fibonacci WITH a, b, n
RUMOR HAS IT
WHAT IF n SMALLER THAN 1
SHOCKING DEVELOPMENT b
LIES! RUMOR HAS IT
YOU WON'T WANT TO MISS b
SHOCKING DEVELOPMENT
fibonacci OF b, a PLUS b, n MINUS 1
END OF STORY
END OF STORY
EXPERTS CLAIM limit TO BE 10
YOU WON'T WANT TO MISS 'First 10 Fibonacci numbers'
EXPERTS CLAIM nothing TO BE fibonacci OF 0, 1, limit
PLEASE LIKE AND SUBSCRIBE
Недостатки языка
Как пишет Линус в описании проекта на GitHub, он разработал этот язык вместо того, чтобы делать домашнее задание по программированию. Поэтому Tabloid имеет ряд ограничений:
Парсер не знает о приоритете операторов. Для компенсации недостатка используются скобки
Как уже говорилось выше, в языке отсутствуют циклы, но это компенсируется рекурсией
Язык не имеет комментариев. Впрочем, тогда это выглядело бы еще безумнее.
И последнее: где и как использовать язык
«Пожалуйста, никак!» — пишет сам автор. Мы согласны. Вместо этого ЛУЧШЕ ПОДПИСЫВАЙТЕСЬ НА НАШ ТЕЛЕГРАМ БЛОГ НА ХАБРЕ!
Комментарии (22)
PerroSalchicha
10.07.2025 17:32ИМХО, можно было не заморачиваться с созданием нового языка, можно было просто файлик с макросами для крестов соорудить.
Kerman
10.07.2025 17:32А никто не пробовал твиты Трампа прогнать через него? Вдруг Дональд - программист?
Vytian
10.07.2025 17:32Вы хотели сказать -- погромист?
OldNileCrocodile
10.07.2025 17:32А разве демократы этим не занимаются?
Kerman
10.07.2025 17:32Демократы хотят демократии, а не громить почему-то. Ну могут и погромить, если им обещали, но наврали, как в LA
vvbob
10.07.2025 17:32Exception - ЭКСПЕРТЫ РЖАЛИ КАК СУМАСШЕДШИЕ, КОГДА УВИДЕЛИ ЭТО...
BobovorTheCommentBeast
10.07.2025 17:32Скорее чуть более сдержано - УЧЕНЫЕ ОТКАЗЫВАЮТСЯ ОТ СВОИХ СТЕПЕНЕЙ ВИДЯ ...
MechanicZelenyy
В СССР ЭТИМ ЯЗЫКОМ ТВОРИЛИ ТАКОЕ ШОК...