Как сломанный лифт привел к одному из самых любимых языков программирования

Программисты нередко создают и используют одноразовые решения для удовлетворения конкретных потребностей или преодоления возникших проблем. Однако то, что это решение остается актуальным, развивается и процветает спустя 17 лет, довольно необычно. Язык программирования Rust сделал именно это, превратившись из стороннего проекта одного человека в один из наиболее активно поддерживаемых проектов с открытым исходным кодом на сегодняшний день.

Семнадцать лет назад разработчик Mozilla Грейдон Хоар вернулся с работы и обнаружил, что лифт в его здании не работает. Вынужденный подняться на 21 лестничный пролет, он все больше раздражался из-за сбоя в программном обеспечении, вызвавшего его незапланированную кардио-сессию.

Хоар продолжал вкладывать эти разочарования в быстрый и гибкий языковой проект, направленный на минимизацию ошибок в памяти и предотвращение таких проблем, как поломка его лифта. С тех пор язык программирования Rust стал широко поддерживаемым проектом с открытым исходным кодом для программистов, начиная от небольших индивидуальных проектов и заканчивая массовыми приложениями, разработанными технологическими гигантами, такими как Microsoft и Amazon.

Языки программирования, такие как C и C ++, имеют компромисс. Они обеспечивают гибкость, необходимую для программирования функций, необходимых для успешного выполнения приложения, но, в свою очередь, требуют от разработчиков тщательного управления транзакциями с памятью. Неспособность учесть эти транзакции с памятью может привести к сбоям и нестабильности в приложении.

Как сломанный лифт привел к одному из самых любимых языков программирования

Хоар попытался создать эффективный и действенный язык программирования, чтобы преодолеть разрыв между этими устаревшими подходами к управлению памятью. Хотя он требует от разработчиков придерживаться несколько жестких правил кодирования, язык управляет памятью от имени разработчика, гарантируя, что любой разработанный код безопасен для памяти.

К 2013 году сторонники языка усовершенствовали систему управления памятью Rust до такой степени, что она больше не требовала функции сборщика мусора. Язык продолжал развиваться и завоевывать поддержку разработчиков по всему миру, что привело к появлению первого официального стабильного релиза Rust в мае 2015 года.

В 2022 году размер сообщества Rust фактически утроился и составил более трех миллионов пользователей, и он был включен в рекомендованный Агентством национальной безопасности (АНБ) список языков, безопасных для памяти. Этот рейтинг поставил Rust в компанию с другими известными именами, такими как Java, C # и Ruby.

Использование Rust в автомобильной и аэрокосмической промышленности, а также ИТ-компаниями, включая Microsoft, Amazon и Dropbox, продолжает расти с каждым днем, снижая общую зависимость от устаревших C и C ++.

3434
59 комментариев

Про какой лифт речь? Я ничего не понял
А Rust хорошая игра, да

21

Семнадцать лет назад разработчик Mozilla Грейдон Хоар вернулся с работы и обнаружил, что лифт в его здании не работает. Вынужденный подняться на 21 лестничный пролет, он все больше раздражался из-за сбоя в программном обеспечении, вызвавшего его незапланированную кардио-сессию.

1

Использование Rust в автомобильной и аэрокосмической промышленности, а также ИТ-компаниями, включая Microsoft, Amazon и Dropbox, продолжает расти с каждым днем, снижая общую зависимость от устаревших C и C ++устаревших C и C ++

12

А если без шуток, кто в продакшн исползует Rust и для чего?

Мы уже долго душим змею и понимаем, что скорости не хватает в некоторых задачах, поглядываем в строну Rust, но пока еще даже не приблизились к началу переписывания какого-то функционала.

Я в рамках его изучения (вместо hello world) написал обработчик специфических логов, который их (много) переваривает и кладёт в MongoDB. Быстро работает, что важно для задачи — быстро запускается, потому что нативный бинарник. Компилируется не так быстро как хотелось бы, если с оптимизацией, но это в общем-то пофигу.

Но постоянно на нём писать... в общем это язык для сильных духом. Нужно очень хорошо прочувствовать предпочитаемый способ обеспечения полиморфизма, потому что узнав что можно "как в плюсах" пихать везде Box<dyn ...> далеко не уедешь. А чтобы его прочувствовать, потребуется изучить очень немаленькую стандартную библиотеку и идиоматические способы работы с ней.

Часто упирают на то что мол концепция владения сложная и всё такое. Ну она нетривиальная, да, но понять можно. А вот как ей пользоваться так, чтобы не было трудно — это вопрос опять-таки идиоматического использования, и тут снова — иди учи стандартную библиотеку. Всякие IntoIterator, когда лучше использовать AsRef<> и прочее.

С другой стороны, я уже несколько лет как говорю, что плюсы уже преодолели планку, когда они могут поместиться в голову человека, так что в принципе, Rust может оказаться не так уж и сложен, если хорошо в него вложить своё время.

13

CloudFlare использует например для сверхбыстрых прокси.

1