Песочница

Принципы работы над проектом

Зачем создан Лиспекс, что в нём открыто, как устроено обещание безопасности, как мы работаем с отзывами и совместимостью.

Лиспекс является языком для бизнес-правил, например издательских правил оформления. У него нет доступа к файлам и сети, поэтому его безопасно запускать внутри любой программы.

Мы создали Лиспекс, потому что нам был нужен язык, которому можно доверить свои правила. Полная версия CLI Топаза включает вычислитель Лиспекса, поэтому приложения на Топазе могут загружать правила, написанные на Лиспексе, и безопасно их выполнять.

1. Начинаем с реальных правил

Лиспекс вырос из правил, которые действительно применяются на практике. Он рассчитан на правила, которые при одних и тех же входных данных должны давать один ответ, например правила оформления или расчёт стоимости доставки.

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

2. Что открыто и кто отвечает

СТУДИЯ ХЕЙЗ проектирует, разрабатывает и выпускает Лиспекс. Дорожной картой и техническими решениями занимается одна команда, поэтому архитектура остаётся цельной, а проект удобно поддерживать долгие годы.

Официальные выпуски и открытые материалы публикуются в открытом репозитории на GitHub. Документация и загрузки находятся на этом сайте. Исходный код вычислителя не публикуется, а внутренняя разработка ведётся в отдельном репозитории.

Пакет npm и нативные исполняемые файлы распространяются по лицензии Apache License 2.0. К каждому выпуску прилагается файл с лицензиями библиотек, встроенных в исполняемые файлы.

3. Обещание безопасности и как его проверить

Программа на Лиспексе не может читать и записывать файлы и не может обращаться к сети. Правило только возвращает ответ. Что делать с этим ответом, решает вызвавшее его приложение. Оно же задаёт ограничения, в которых правило выполняется.

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

4. Технические отзывы

Мы ценим отзывы тех, кто внимательно изучает Лиспекс и указывает на его недостатки. Особенно помогают сообщения об ошибках с правилом и входными данными для воспроизведения, неверные диагностические сообщения и случаи, когда документация расходится с реальным поведением.

Присылайте их через GitHub Issues. Мы оцениваем сообщения по влиянию и воспроизводимости, а предложения новых возможностей рассматриваем с точки зрения принципов Лиспекса и их пользы для реальных правил.

5. Развитие и совместимость

Версия X.Y.0 открывает новую минорную ветку. Следующие патч-выпуски этой ветки исправляют ошибки и сохраняют совместимость. Уже опубликованные версии и файлы остаются доступными без изменений.

Если изменение влияет на совместимость, в истории объясняется причина и способ перехода. Текущие планы собраны в дорожной карте.


Лиспекс стал языком, которому мы доверяем свои правила. Надеемся, что и другие разработчики смогут доверить ему свои.