Расширяем Go: зачем и как строить свое надмножество языка

Идеальный язык

GO
Теория

Доклад принят в программу конференции

Мнение Программного комитета о докладе

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

Целевая аудитория

Разработчики, которые любят ковыряться в кишках и изучать CS. Тема доклада точно не зайдет людям, которые ищут в докладе прикладную направленность.

Тезисы

Языки претерпевают изменения, но не всегда это возможно сделать внутри самого языка, есть боли, которые тяжело затащить даже в мажорный релиз, поэтому мы встречаем такие ситуации, когда появляются TypeScript, Kotlin, Elixir. А что с языком Golang? Может ли он дойти до состояния, когда родится его преемник, который будет транспилироваться в чистый го, который будет просто обладать всеми прелестями рантайма го и горутинами, но синтаксически будет другим?

Цель моего доклада — обсудить данную тему в контексте 2024 года и немножко посмотреть в будущее, рассмотреть варианты, которые уже есть на рынке https://github.com/goplus/gop и другие.

Спроектировать и показать свое решение, которое не будет таким радикальным, как gop, а внедрить систему вставок нового синтаксиса, формата макросов, которая при компиляции превращает все сахара в чистый го и только потом запускает. Управлять системой сахаров в формате yaml-файла, который позволяет настраивать транспиляцию, формат babel в JS, как вариант: данное решение можно заопенсорсить и предлагать реализовывать свои решения. Данный механизм можно использовать в формате разработки, но также как примеры пропоузелов для новых синтаксисов и предложений на гитхабе.

В контексте данного доклада планируется разработать преальфу с менеджером сахара и серией макросов, а также обсудить дальнейшее развитие такого подхода, если он зайдет, то расширять его уже в формате комьюнити.

Доклад подготовлен в соавторстве с Эдгаром Сипки (Ozon Банк).

Илья Горкун

Независимый эксперт

Go-разработчик в Тинькофф, пишет кандидатскую по сложности алгоритмов в полугруппах, а также делает конференции по Go.

Независимый эксперт

.

Видео