Как скрестить ужа с сусликом. Встраиваем интерпретатор Python в программу на Go

Доклад

Программный комитет ещё не принял решения по этому докладу

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

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

Тезисы

Когда в программе возникает потребность во встроенном скриптинге, возникает вопрос о выборе скриптового языка и реализации интерпретатора для него. Скриптинг в программе - это инструмент не столько для разработчиков, сколько для продвинутых пользователей, поэтому надо учитывать особенности этой аудитории. Использование нестандартного или нишевого скриптового языка способно отпугнуть потенциальных пользователей. Python знают все, поэтому выбор именно этого языка представляется идеальным.

Существуют и другие реализации встраивания интепретатора Python в программы на Go. Однако наша реализация обладает рядом существенных преимуществ, которые не встречаются в других реализациях. Среди них: использование системной инсталляции Python, устойчивость бинарных сборок к обновлению системного Python, что сильно упрощает распространение программы, простой API, раскрывающий возможность одновременного использования независимых и изолированных друг от друга экземпляров интерпретаторов Python, автоматическое управление временем жизни объектов Python, видимых на стороне Go с помощью сборщика мусора, гладкая интеграция многопоточности между этими двумя языками.

О том, как нам это удалось и с какими мы столкнулись трудностями и особенностями, будет рассказано в этом докладе.

Певзнер Александр Ефимович

АО Электронная Москва

35 лет в ИТ. Системный программист, архитектор, эксперт. Начинал с цифровой электроники, потом ушел в чистое программирование. Аппаратный бакграунд очень помогает понимать, как на самом деле работают вещи. Чувствую себя уютно, работая на стыке аппаратуры и софта. Основные рабочие языки: Си и Go. Автор пакетов ipp-usb и sane-airscan, которые входят во все дистрибутивы Linux и *BSD. Член OpenPrinting. В последние годы полностью посвятил себя разработке свободного програмного обеспечения.

Видео

Другие доклады секции

Доклад