Код
#статьи

Facebook заржавел: зачем корпорации поддерживать язык Rust

Facebook объявил о присоединении к Rust Foundation. Что это значит для развития языка программирования Rust?

Полина Суворова для Skillbox Media

Facebook* стал платиновым участником Rust Foundation, которая поддерживает основных разработчиков языка и помогает финансировать проект. Как платиновый участник, соцсеть получила право поставить своего человека в совет директоров фонда — выбор пал на Джоэла Марси. Компанию в совете ему составили представители AWS, Huawei, Google, Microsoft и Mozilla.

По мнению инженеров Facebook*, Rust не уступает в производительности классическим системным языкам C и C++, но при этом опережает их в плане безопасности кода. Сейчас в Facebook* уже сотни разработчиков и миллионы строк кода на Rust.

«Facebook* использует Rust с 2016 года во всех сферах разработки — от системы управления версиями исходного кода до компиляторов. Мы присоединяемся к Rust Foundation, чтобы внести вклад в улучшение и развитие языка, ведь он стал так важен для нас и разработчиков во всём мире. Вместе с другими членами Фонда и сообществом мы планируем сделать Rust главным языком для системного программирования и популяризировать его в других сферах».

Джоэль Марси, руководитель экосистемы Open Source в Facebook* и член правления Rust Foundation. Из официального блога Facebook* для разработчиков

На Rust написаны такие проекты Facebook*, как сервер управления версиями Mononoke, криптовалюта Libra, собственный блокчейн-проект Diem и сборочный тулкит reindeer. История внедрения нового языка в промышленную разработку Facebook* интересна: например, тот же Mononoke сначала планировали делать на C++, потому что большая часть бэкенда в Facebook* написана именно на этом языке. Казалось, выбор очевиден. Но когда стали обсуждать надёжность кода, команда отдала предпочтение Rust.

Инженер Facebook* Джереми Фицхардинге рассказывал на конференции RootConf 2019, что это было рискованное решение: команде пришлось учить новый язык и переделать блоки, написанные на других языках. Но все эти проблемы перевесила убойная фича Rust: он может обнаруживать крупные баги ещё на стадии компиляции, а не в продакшне.

После успешного перехода на Rust команды Mononoke языком заинтересовались и другие разработчики Facebook*. На него начали переводить свои проекты даже с мегапопулярных Python и JavaScript. Привлекали всё те же высокая скорость и возможность отыскивать баги в процессе компиляции.

Дошло до того, что внутри Facebook* появилась целая команда Rust, которая перепиливала инструментарий C++, чтобы «плюсовые» библиотеки можно было использовать в Rust — и наоборот. А после присоединения к фонду компания запустила и ещё одну Rust-команду — она отвечает за развитие внутренней культуры Rust-разработки, вклад в open-source-проекты на Rust и взаимодействие с Rust-сообществом.

Rust шагает по планете

Относительно молодой Rust уже широко внедряют ведущие IT-компании мира. Вот лишь несколько примеров:

  • Dropbox использует Rust в своём движке синхронизации файлов, а инженеры компании утверждают, что переход на Rust стал одним из их лучших решений.
  • Coursera перевела на Rust крупные блоки своей системы онлайн-уроков — опять же из-за более высокой по сравнению с С безопасности кода.
  • Figma переписала свой движок с TypeScript на Rust, когда количество пользователей начало сильно расти и старый движок перестал справляться с нагрузкой: «ржавый» язык очень скоростной, безопасный и очень экономно расходует память. При этом в экосистеме Rust уже есть система сборки, менеджер пакетов, тестер и генератор документации. Хотя разработчики Figma нашли и минусы: например, в Rust-коде сложно искать ошибки, многие библиотеки сыроваты и у языка есть небольшие проблемы с асинхронностью.
  • Из-за роста пользователей на Rust также перешёл npm — пакетный менеджер для JavaScript: C и C++ не обеспечивали необходимую надёжность в управлении памятью на веб-сервисах, а переход на Java потребовал бы развернуть JVM на своих серверах.
  • Для Microsoft главным аргументом в пользу перехода на Rust стала безопасность доступа к памяти — около 70% уязвимостей, обнаруженных в продуктах компании за последние 12 лет, были связаны с памятью.
  • Discord перешла с Go на Rust по схожим соображениям. Кроме того, команда заценила отдельные фичи языка: классную экосистему, отличный инструментарий и то, как безопасность типов и borrow checker облегчают рефакторинг кода. Ответный реверанс: команда Rust использует для общения именно Discord.

Будущее Rust

Тот факт, что техногиганты предпочитают Rust проверенной годами классике — С и С++, — уже говорит о многом. Можно прибавить к этому прекрасную поддержку WASM и многозадачности, а также отличное комьюнити.

Важно также, что в энтерпрайз перешло много талантливых инженеров, которые теперь будут посвящать всё своё время развитию Rust. Например, Патрик Уолтон, один из основных разработчиков языка, оставил Mozilla и устроился в Facebook*, а Нико Мацакис и Эстебан Кьюбер — в Amazon.

А вот вне энтерпрайза у Rust пока есть сложности: небольшие или средние компании с уже сложившейся кодовой базой не всегда могут перейти на новый язык — просто не хватит денег и прочих ресурсов.

Но даже несмотря на это, в опросе Stack Overflow Developer Survey ежегодно начиная с 2016 года Rust становится самым любимым языком программирования по версии разработчиков.

Справка

Язык Rust разработал сотрудник Mozilla Грэйдон Хор в 2006 году. Название — отсылка к грибам семейства ржавчинные (англ. rust fungi). Впервые язык был официально представлен на Mozilla Summit 2010, а его альфа-версия (Rust 0.1) вышла в 2012 году.

Довольно быстро Rust обрёл популярность как язык для системного программирования: он быстрый, гарантирует защиту памяти от ошибок вроде переполнения буфера и висячих указателей (чего нет в C и C++) и позволяет комфортно разрабатывать драйверы и компиляторы.

Rust Foundation появился в феврале 2021 года — его запустили AWS, Google, Huawei, Microsoft и Mozilla.

Чтобы оценить всю прелесть Rust, рекомендуем пройти курс «Профессия Разработчик на C++». К тому же «плюсы» ещё долго останутся актуальными в геймдеве и системном программировании, а вы сможете приобщиться к интеллектуальной элите программистского сообщества.


* Решением суда запрещена «деятельность компании Meta Platforms Inc. по реализации продуктов — социальных сетей Facebook* и Instagram* на территории Российской Федерации по основаниям осуществления экстремистской деятельности».

Учись бесплатно:
вебинары по программированию, маркетингу и дизайну.

Участвовать
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована