Разработчики легендарного Qt выпустили бесплатный инструмент для создания GUI, которые «летают» на 300 КБ оперативки

Открытое ПО
, Текст: Дмитрий Степанов
Спустя почти три года с начала разработки опубликован кроссплатформенный инструментарий для создания графических интерфейсов Slint 1.0, за которым стоят выходцы из Trolltech – создателя широко известного фреймворка Qt. Новый тулкит, написанный на Rust и ориентированный на использование в настольных и встраеваемых системах, отличается высокой производительностью при низком «аппетите» к «железу», что позволяет применять его даже в приложениях для таких слабых устройств как Raspberry Pi Pico.

Встречайте Slint

Компания SkyFPS представила первый значимый выпуск (1.0) кроссплатформенного инструментария для создания графических интерфейсов Slint. Код проекта, в первую очередь ориентированного на настольные и встраиваемые (embedded) системы целиком написан на модном типобезопасном языке программирования Rust.

В числе главных достоинств тулкита, который ранее назывался SixtyFPS, – легковесность. Приложения с графическим интерфейсом на его основе, по заверению разработчиков, можно запускать в системах с менее чем 300 КБ оперативной памяти. В частности, для этих целей подойдет микроконтроллер Raspberry Pi Pico, который несет на борту ОЗУ емкостью 264 КБ и процессор ARM Cortex-M0+. Самый маленький одноплатник семейства Raspberry Pi был анонсирован в начале 2021 г., рекомендуемая розничная цена устройства на старте продаж составила $4 за штуку.

Разработчиками заявлена поддержка Slint аппаратных платформ Arm Cortex-M и Cortex-A, Intel x86, RISC-V, Cadence Tensilica и других; таких программных платформ как Linux (десктопных и встраиваемых), macOS, Windows, BlackberryQNX, WebAssembly (работа непосредственно в браузере).

Проект Slint достиг версии 1.0 за три года разработки

Для отрисовки интерфейса предусмотрены бэкенды OpenGL ES 2.0, Skia, а также программный рендеринг (используется только CPU, без подключения сторонних зависимостей) и Qt.

В настоящее время Slint располагает API для языков программирования C++, JavaScript и собственно Rust. В будущем разработчики обещают пополнение этого перечня за счет Python и Go.

Встроенный язык, похожий на CSS

Slint предлагает программистам и дизайнерам собственный декларативный язык .slint для описания пользовательского интерфейса приложения, концептуально схожий с QML (Qt Modeling Language) или XAML, разработанный Microsoft.

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

Для удобства проектирования интерфейса проектом Slint подготовлен подключаемый модуль для среды разработки Microsoft Visual Studio Code, который позволяет в реальном времени наблюдать, как отражаются правки в коде на макете проектируемого GUI.

О разработчиках, разработке и сознательном отказе от C++

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

Возглавляют команду разработчиков Slint Оливье Гоффар (Olivier Goffart) и Саймон Хаусманн (Simon Hausmann).

Сооснователи стартапа SixtyFPS GmbH, который стоит за Slint, познакомились во время работы в норвежской Trolltech, которая прежде всего известна как разработчик Qt – написанного на C++ фреймворка для проектирования GUI, на основе которого, в частности, построено популярное окружение KDE Plasma (ранее – KDE) для Unix-подобных операционных систем.

В 2008 г. Trolltech перешла под контроль Nokia, а в 2011 г. была продана другой финской компании – Digia. В 2014 г. Digia создала подразделение The Qt Company, которое по сей день ведет проект Qt.

В 2020 г. Гоффар переехал в Берлин (Германия), где и основал новую компанию для работы над Slint, при этом оба программиста-предпринимателя продолжили параллельно трудиться в экосистеме Qt.

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

По его словам, отказ от C++ в проекте – сознательное решение, несмотря на то, что разработчики, в своей работе использующие именно этот язык, являются целевой аудиторией Slint.

«Через 15-20 лет найти программистов на C++ будет сложно, – говорит Хаусманн. – Мы хотели понять, возможно ли построить что-то подготовленное к будущему и не завязанное на C++».

Бизнес-модель SixtyFPS

Slint – это проект с открытым исходным кодом с публично доступным репозиторием на хостинге ИТ-проектов GitHub.

Бизнес-модель Slint построена на основе схемы двойного лицензирования. Это значит, что инструментарий доступен на условиях сразу двух лицензий: свободной GPLv3 и особой проприетарной. Последняя предусматривает взимание платы с тех разработчиков GUI на Slint, которые, к примеру, не хотят открывать исходный код своих проектов по требованию клиентов, к чему их обязывает GPL.

Кроме того, в случаях коммерческого применения продукта на самом деле можно и не открывать исходный код проекта, и при этом ничего не платить (так называемая Ambassador License). В обмен на это команда Slint оставляет за собой право ссылаться на такие проекты в собственных маркетинговых и коммуникационных каналах.

По словам Оливье Гоффара, в компании прекрасно осознают, что существует сразу несколько целевых платформ, на которых Slint как коммерческий продукт заведомо неконкурентоспособен. Это веб- и мобильные приложения – сегменты, насыщенные мощными и в то же время полностью бесплатными инструментами вроде Electron и Flutter. Ambassador License нужна для того, чтобы попытаться занять эту нишу.

Совершенно иная ситуация на рынке встраиваемых устройств, и именно в него в первую очередь метит Slint. Здесь, по мнению Гоффара, у продукта его компании есть важное конкурентное преимущество – он позиционируется в качестве легковесной альтернативы давно существующим решениям. Предприниматель считает, что выбравшие Slint за эту особенность скорее предпочтут купить проприетарную лицензию, нежели позволят использовать собственные продукты в маркетинговых материалах SixtyFPS из соображений сохранения конфиденциальности.