Зачем Chromium понадобился ещё один язык
Проблема. Все библиотеки для движка Chromium написаны на C++. Это мощный язык, но достаточно старый и не очень безопасный. Например, в C++ программисту нужно вручную работать с памятью — расставлять указатели, чистить программу от мусора, следить за утечками. Из-за этого увеличивается влияние человеческого фактора, и в итоге программы теряют в надёжности.
По статистике, 70% критических ошибок в браузерах на основе Chromium как раз возникают из-за ручного управления памятью. Одна из популярных проблем — висячие указатели, которые появляются, когда переменная ссылается на несуществующий объект.
Решение. Google добавил в экосистему Chromium язык программирования Rust. Он такой же мощный, как C++, но более безопасный — вся работа с памятью происходит «под капотом» у языка по особым правилам. Если какое-то из этих правил нарушить, компилятор откажется собирать программу — то есть разработчик сразу об этом узнает и сможет быстро всё пофиксить.
Плюс Rust разработали для Mozilla Firefox, и он изначально заточен на работу с браузерами. И Google в своём анонсе подчеркивает это, называя решение уместным и отдавая должное Mozilla за вклад в системную разработку.
Как это будет работать
Интеграция Rust в движок Chromium будет выглядеть так:
- Существующий код переписывать не планируют — основная кодовая база остаётся на C++.
- Можно использовать лишь отдельные библиотеки, написанные на Rust, — и то если они лучше аналогов на C++ с точки зрения скорости, безопасности или пользы для бизнеса.
- Библиотеки можно будет вызывать из кода С++ c помощью функций API. Нельзя смешивать два языка в одном проекте.