Автор с 20-летним опытом во встраиваемом Linux признаёт: классические системы сборки вроде Yocto и Buildroot когда-то были спасением, но теперь тормозят разработку. Раньше всё работало: медленные ARM-платы собирали с x86-рабочей станции, а софт был в основном на C/C++. Сейчас же продукты не замораживаются на годы, а живут как облачные системы — с постоянными обновлениями.
Главная проблема — кросс-компиляция становится всё сложнее. Современные языки (Python, JavaScript, Rust, Go) приносят свои экосистемы пакетов и кеши, заточенные под десктопы и серверы, а не под кроссплатформу. Yocto усугубляет ситуацию: он блокирует сеть во время сборки, требуя сложных интеграций do_fetch. Пересборка всего из исходников выливается в часы ожидания и тонны RAM. Вендорские BSP часто застревают на 4-летних версиях Yocto — интегрировать новый софт практически невозможно.
Особенно тяжело малым командам и стартапам. У них нет выделенных инженеров для поддержки адской инфраструктуры сборки и отладки. Им нужно быстро собирать и поставлять продукты, а не гоняться за детерминизмом бинарников. Проблемы те же: вендорский лок, сломанные сборки критических компонентов и мучительный бэкпортинг.
Автор предлагает перестать тащить технологии нового мира (языки) в старые процессы, а позаимствовать сами процессы — то, как эти экосистемы собирают, пакетируют и кешируют. Появились и новые возможности: быстрые ARM-серверы (AWS Graviton), AI-инструменты и зрелые пакетные менеджеры.
Он экспериментирует с новой системой сборки yoe build. Это ранний, сырой проект. Идея в том, чтобы избавиться от кросс-компиляции, использовать нативные пакетные менеджеры, кешировать всё и дать единый инструмент, понятный и человеку, и AI. Софт, на который раньше уходил день мучений, теперь собирается за минуты.
Автор не хоронит старые инструменты. Для сертифицированных, замороженных продуктов Yocto остаётся идеалом. Но для динамичных, часто обновляемых устройств на современных языках нужен другой подход. yoe build — попытка ответить на этот запрос.