Python логичен, структурирован и понятен. Но иногда... скучен. Душа просит чего-то иного, чего-то, что ломает шаблоны и заставляет взглянуть на процесс написания кода под совершенно диким углом.
Если вам знакомо это чувство, отложите на время свой PEP 8. Я собрал для вас пять "альтернатив" Python, которые существуют на стыке программирования, чистого абсурда и культурного эксперимента. Это не те языки, на которых вы напишете свой следующий high-load проект. Но после знакомства с ними вы точно начнете больше ценить привычный import this
.
Представьте себе язык, созданный для того, чтобы «"чётким пацанам" быстро влиться в ряды программистов». Это и есть YoptaScript — язык, транслируемый в JavaScript, чей синтаксис основан на жаргоне гопников.
Это не просто замена английских ключевых слов на русские. Это полное погружение в определённую эстетику. Каждая строчка кода на YoptaScript пропитана духом спальных районов и пацанских пабликов.
гыы
. Ага. Гыы.йопта law() жЫ ... есть
(аналог function law() { ... }
)вилкойвглаз ... иливжопураз
заменяет банальный if ... else
.document.getElementById
здесь используется куда более понятное ксива.вычислитьЛохаПоНомеру
.Вот как выглядит логика простого конвертера на этом языке. Обратите внимание на названия функций и элегантность синтаксиса.
// converter.yopta
ксива.вычислитьЛохаПоНомеру('jstoyopta').добавитьВертухай('keyup', йопта(){converter(четко) нах}, пиздишь) нах
ксива.вычислитьЛохаПоНомеру('yopta').добавитьВертухай('keyup', йопта(){converter(пиздишь) нах}, пиздишь) нах
йопта converter(lang) {
вилкойвглаз(lang) {
//переводим в йопту
гыы jstoyopta сука ксива.вычислитьЛохаПоНомеру('jstoyopta').валио нах
ксива.вычислитьЛохаПоНомеру('yopta').валио сука yopta(jstoyopta, "js") нах
} иливжопураз {
//переводим из йопты
гыы ystojs сука ксива.вычислитьЛохаПоНомеру('yopta').валио нах
ксива.вычислитьЛохаПоНомеру('jstoyopta').валио сука yopta(ystojs, "ys") нах
}
}
Вердикт: YoptaScript — это идеальный выбор для тех, кто считает, что современному вебу не хватает брутальности и понятий. Если вы всегда хотели написать потрещим(semki чоблясука чётко)
вместо while(semki != true)
, ваша мечта сбылась.
Если эстетика окраин вам не близка, возможно, вам придётся по душе величие Древней Руси. Язык В†† — это не самостоятельный язык, а, по сути, набор макросов для C++, который превращает код в подобие берестяной грамоты.
Вся концепция строится на гиперпатриотичной, псевдоисторической мифологии, популярной в рунете. Здесь программист — это не инженер, а славный витязь, который сражается с «ящерами» (багами) и пишет «летописи» (программы) во славу Руси.
царь_батюшка_главный()
— очевидная замена int main()
.using namespace std;
. Правильно говорить: внедрить хутор Русь;
.молвить << "Славься Русь!" << прыг_скок;
вместо cout << ... << endl;
.воздать 0;
вместо return 0;
.для
, покуда
, коли
.break
здесь называется бить_ящеров
.Даже простейшая программа "Hello, World!" на В†† выглядит как начало эпической саги.
// Слава_Руси.cpp
#include "Ве_крест_крест.h"
внедрить хутор Русь;
царь_батюшка_главный()
{
вперёд_славяне;
много_букав строченька = "Славься Русь!";
молвить << строченька << прыг_скок;
воздать ноль;
}
Вердикт: В†† создан для программистов с сильным духом и богатым воображением. Если при виде очередного бага ваша первая мысль — "пора бить ящеров", то этот язык — ваш верный соратник в борьбе с басурманским кодом.
А что если подойти к русификации языка программирования более систематично? Создатели Birp (Большой Русский Питон) задались именно этим вопросом. Результат — полная трансляция синтаксиса Python на русский язык.
Это уже не просто набор макросов, а полноценный транспайлер, который переводит .birp
файлы в валидный .py
код. Более того, есть и обратный транслятор для тех, кто хочет превратить свой скучный английский Python в патриотичный русский. Название, кстати, отсылает к мему "Big Russian Cat".
Это прямой перевод ключевых слов Python, поэтому синтаксис интуитивно понятен любому питонисту:
объявить фибоначчи(номер):
из functools подключить cache как кэш
если номер == 0: ... иначеесли номер в [1, 2]: ...
для номер в диапазон(100):
вернуть 0
вывод()
(print), строка()
(str), целое()
(int).Классический FizzBuzz на Birp выглядит так, будто его писали для урока информатики в российской школе будущего.
// fizzbuzz.birp
объявить шипение_жужжание(номер):
если не номер % 15:
вернуть "ШипениеЖужжание"
если не номер % 3:
вернуть "Шипение"
если не номер % 5:
вернуть "Жужжание"
вернуть строка(номер)
для номер в диапазон(100):
вывод(шипение_жужжание(номер))
Вердикт: Birp — это язык для тех, кто любит Python, но считает, что английский язык — его единственный недостаток. Идеальный инструмент, чтобы доказать, что объявить
звучит ничуть не хуже, чем def
.
Переместимся от лингвистических экспериментов на русскую тематику к мировым эзотерическим шедеврам. Shakespeare Programming Language (SPL) — это язык, разработанный в 2001 году, где исходный код маскируется под пьесу Шекспира.
Здесь нет переменных в привычном смысле. Вместо них — персонажи пьесы (Hamlet
, Juliet
), которые могут хранить числовые значения. Все действия — это диалоги. Например, чтобы присвоить значение, один персонаж обращается к другому с комплиментом или оскорблением.
Act
) и Сцен (Scene
). Это аналоги модулей и функций, которые используются для навигации с помощью goto
.You are as stupid as the difference between a handsome rich brave hero and thyself!
— это сложная арифметическая операция. "Позитивные" слова (rich, brave) равны +1
, "негативные" (stupid, fat) — -1
.Speak your mind!
выводит значение персонажа как символ, а Open your heart!
— как число.Remember me!
помещает текущее значение в стек, а Recall your imminent demise!
извлекает значение из стека.Вот фрагмент канонической программы "Hello World!" на SPL. Гамлет поочередно оскорбляет и хвалит других персонажей, чтобы присвоить им нужные числовые значения (коды символов).
// hello_world.spl
Act I: Hamlet's insults and flattery.
Scene I: The insulting of Romeo.
[Enter Hamlet and Romeo]
Hamlet:
You lying stupid fatherless big smelly half-witted coward!
You are as stupid as the difference between a handsome rich brave
hero and thyself! Speak your mind!
You are as brave as the sum of your fat little stuffed misused dusty
old rotten codpiece and a beautiful fair warm peaceful sunny summer's
day. You are as healthy as the difference between the sum of the
sweetest reddest rose and my father and yourself! Speak your mind!
Вердикт: SPL — для тех, кто считает программирование театром, а себя — драматургом. Если вы всегда мечтали отлаживать код, анализируя диалоги Гертруды и Офелии, этот язык — ваш бенефис.
Завершает обзор язык, который является сатирой на современную интернет-культуру. Tabloid — это Тьюринг-полный язык, синтаксис которого построен на фразах из кликбейтных заголовков.
Вся философия языка — это скорость, сенсации и удержание внимания. Здесь нет циклов, потому что «новостной цикл движется слишком быстро», но есть рекурсия. Каждая программа должна заканчиваться призывом к действию, а объявление переменных подается как инсайд от экспертов.
DISCOVER HOW TO factorial WITH n
(Обнаружено, как сделать факториал с помощью n).EXPERTS CLAIM result TO BE ...
(Эксперты заявляют, что результат — это...).YOU WON'T WANT TO MISS 'Hello, World!'
(Вы не захотите пропустить "Hello, World!"). Весь вывод автоматически приводится к верхнему регистру и получает восклицательный знак в конце.WHAT IF n IS ACTUALLY 0 ... LIES! ...
(Что если n на самом деле 0 ... Ложь! ...).SHOCKING DEVELOPMENT 1
(Шокирующее развитие событий: 1).PLEASE LIKE AND SUBSCRIBE
.Расчет факториала на Tabloid выглядит как самая громкая новость дня.
YOU WON'T WANT TO MISS 'Hello, World!'
DISCOVER HOW TO factorial WITH n
RUMOR HAS IT
WHAT IF n IS ACTUALLY 0
SHOCKING DEVELOPMENT 1
LIES!
SHOCKING DEVELOPMENT
n TIMES factorial OF n MINUS 1
END OF STORY
EXPERTS CLAIM result TO BE factorial OF 10
YOU WON'T WANT TO MISS 'Result is'
YOU WON'T WANT TO MISS result
PLEASE LIKE AND SUBSCRIBE
Вердикт: Tabloid — язык для тех, кто понимает, что в 21 веке главное не алгоритм, а его подача. Если вы готовы заменить скучные return
и print
на "шокирующие подробности" и "то, что вы не захотите пропустить", то смело добавляйте Tabloid в свое резюме.
Ваша поддержка — это энергия для новых статей и проектов. Спасибо, что читаете!
Эти языки — больше, чем просто шутки. Они — творческое отражение нашей культуры, профессии и даже национальных особенностей. Они напоминают, что код — это не только строгая логика, но и форма самовыражения.
А теперь можно со спокойной душой возвращаться к своему уютному Python. Уверен, после вилкойвглаз
и бить_ящеров
обычный if/else
покажется вам верхом элегантности и здравого смысла.