Первый пакетный менеджер — SMIT — появился в операционной системе IBM AIX в 1989 году. Мы бы назвали его примитивным, но в своё время он оказался прорывом. Вместо загрузки и ручной сборки исходного кода программы, пользователь вводил команду установки — и всё.
Чуть позже пакетные менеджеры стали поддерживать зависимости между пакетами, и репозитории, где пакеты хранились.
Сейчас нам известны десятки менеджеров, которые работают как на уровне операционной системы (yum, pacman, dpkg, apt), так и на уровне отдельных языков/платформ (npm, pip, composer, nuget). Казалось бы: их и так много, зачем нужен ещё один?
Оказывается, [Nix]((package_manager)) решает одну из важнейший проблем, появившихся у пакетных менеджеров вместе с поддержкой зависимостей, которая называется А[д Зависимостей (Dependency Hell)](). Дело в том, что пакеты со временем меняются: программисты исправляют ошибки, добавляют новые возможности, а из-за этого растут и версии пакетов. Не всегда удаётся сохранить обратную совместимость, так что мы не можем просто хранить самую последнюю версию пакета. Нам приходиться хранить все, но разные версии пакета называются одинаково и зачастую размещаются в одном и том же каталоге.
Разработчики Nix предложили интересное решение этой проблемы, которое не просто позволяет забыть про Ад Зависимостей, но даже защищает систему от случайных коллизий. Описание пакетов в Nix делается на чистом функциональном языке программирования. Зачем?
Об этом и многом другом нам расскажет программист Винсент Амбо. Он проведёт воркшоп по Nix и покажет примеры использования языка. Пакетный менеджер Nix работает на любых дистрибутивах Linux и на MacOS, но также на его основе построен дистрибутив [NixOS](). Мы поговорим и о нём, правда, совсем немного.
Винсент основал [комьюнити]() и [компанию]() TVL и разрабатывает альтернативную реализацию Nix — она называется [Tvix](). Tvix написан на языке Rust — интересном и перспективным. Мы поговорим, зачем нужен Tvix, если есть Nix и узнаем, почему Винсент выбрал Rust в качестве языка разработки.
Трансляция пройдёт в YouTube и в VK в четверг 9 марта с 19:00 до 20:30. Готовьте вопросы.
В организации нам помогает наш партнёр[ ](). Трансляции в любых конфигурациях под ключ.
Чтобы быть в курсе IT-событий, подпишитесь на телеграм-канал[ ITMeeting](). Это наши друзья, которые анонсируют бесплатные мероприятия в Москве и Онлайне. Здесь вы найдёте и конференции, и митапы, и семинары — форматы на любой вкус. Канал анонсирует и наши встречи. Подписывайтесь.
| [TG (чат)]() \
| [TG (канал)]() \
| [VK]() \
| [YT](@progmsk)