Bespoke: язык программирования для тех, кто говорит «пожалуйста»
Программирование, замечает автор, обзавелось дурными манерами. Мы «убиваем» процессы, «прерываем» транзакции, «выбрасываем» исключения и приказываем машине «вернуть» значение, точно она лабрадор. В качестве лекарства предлагается Bespoke — статически типизированный и безупречно учтивый язык для разработчиков, убеждённых, что исполнение кода не должно достигаться ценой хороших манер. Неофициально его именуют «Кодом Её Величества» (разумеется, Виктории — комитет по этикету пока не одобрил двадцатый век), файлы носят расширение .charming, а компилятор оставляет за собой право быть вами разочарованным.
Компилятор вам не прислуга
Голую команду Bespoke не примет. Каждое обращение открывается уважительным приветствием, излагает суть и завершается одобренной формой благодарности. Объявление целочисленной переменной превращается в письмо, начинающееся с «Dear Compiler» и заканчивающееся «Thank you ever so much». Это многословнее, чем int carriageCount = 0, зато, по замечанию автора, куда реже создаёт враждебную рабочую атмосферу. Точка с запятой отвергнута как разговорный эквивалент хлопанья дверью.
Типы пишутся полностью и по-джентльменски: «An Integer Number», «A Textual Passage», «A Truth Value» с двумя литералами — Quite True и Patently False. Британская орфография навязывается на этапе лексического анализа: color — свидетельство отсутствия должного воспитания.
Мутация требует извинений
Изменение переменной допускается, но лишь с признанием причинённого неудобства; сухое присваивание порождает диагностику B-101 «Blunt Imperative», и компиляция приостанавливается, пока разработчик не поразмыслит над своим поведением. Условный оператор — не приказ, а гипотетический вопрос, вынесенный на рассмотрение суда. Функция ничего не «возвращает», а предлагает небольшое дипломатическое сотрудничество; исключение не «выбрасывается», а деликатно выносится на милостивое рассмотрение.
Многопоточность без толкотни
Особенно достаётся конкурентному программированию с его гонками и захватом блокировок. Потоки Bespoke ведут себя пристойно: мьютекс — это «просьба об аудиенции наедине». А классический дедлок, когда два потока бесконечно уступают друг другу дорогу, среда исполнения фиксирует не как ошибку, а как «Образцовый пат взаимной учтивости», восхищается воспитанием потоков и терпит паузу вплоть до тепловой смерти Вселенной. Потоки не убивают — им направляют вежливое приглашение удалиться на покой.
Диагностика компилятора выражает сдержанное разочарование, предупреждения по возможности печатаются на кремовой бумаге, а флаг --quiet подавляет комплименты, но никогда — критику. Автор честно признаёт: язык не ускорит работу программ (плотность информации в исходниках сравнима с договором XIX века) и не избавит от ошибок конкурентности. Но он задаёт важный вопрос: если уж мы целыми днями требуем от машин невозможного, не могли бы мы хотя бы делать это любезно? При аварии исполняющая система не «падает», а подаёт в отставку с формальными извинениями — правда, код выхода всё же остаётся ненулевым: мы цивилизованны, но не питаем иллюзий.
Источник: Lobsters
Комментарии
Войдите, чтобы комментировать.