{"id":14275,"url":"\/distributions\/14275\/click?bit=1&hash=bccbaeb320d3784aa2d1badbee38ca8d11406e8938daaca7e74be177682eb28b","title":"\u041d\u0430 \u0447\u0451\u043c \u0437\u0430\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0434\u0430\u0432\u0446\u044b \u0430\u0432\u0442\u043e?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"f72066c6-8459-501b-aea6-770cd3ac60a6"}

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

То, что начиналось как маленький побочный проект на ноутбуке одного разработчика — сегодня стало одним из самых успешных языков программирования с открытым исходным кодом, которым пользуются Microsoft, Amazon, Google, Tesla, Discord и многие другие.

Если кто не знает эту историю — велком.

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

Семнадцать лет назад программист из Mozilla Грейдон Хоар вернулся с работы и обнаружил, что лифт в его доме вышел из строя. Он был вынужден подниматься на двадцать первый этаж, проклиная всё на свете. А потом узнал, что лифт не работал из-за сбоя программного обеспечения. Тогда он решил попробовать сделать язык программирования, который сводил бы такие ошибки к нулю. Чтобы даже начинающий разработчик мог бы написать код, который не зависал.

Хоар выплеснул все свои разочарования в код и за несколько месяцев создал основу для простого и гибкого языка, рассчитанного на минимизацию ошибок памяти и предотвращение таких проблем, как поломка его лифта. Он назвал его Rust («ржавчина») — в честь ржавчинных грибов, славящихся своей выносливостью и способностью выживать в любых условиях.

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

Чтобы облегчить бремя постоянного управления памятью, такие языки как Java представили концепцию «сборщиков мусора». Эти сборщики предназначены для периодической очистки системной памяти, сводя к минимуму риск ошибок памяти. Однако это происходит за счет более высокого общего использования памяти и большего потребления ресурсов системы — для постоянного поддержания работоспособности сборщиков.

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

Ошибки типа переполнения буфера и выхода за пределы массива в языке стали невозможны в принципе. А ведь как раз подобные (человеческие) ошибки в языках с ручным управлением памятью типа С и С++ и приводили к самым опасным уязвимостям вроде удаленного выполнения кода.

Mozilla взяла Rust на вооружение и начала спонсировать проект в 2009 году — в рамках разработки экспериментального быстрого браузерного движка под названием Servo. Этот проект был официально анонсирован компанией в 2010-м. С тех пор язык Rust стал широко поддерживаемым проектом с открытым исходным кодом, используемым для всего, от ПО для лифтов — до масштабных приложений, решающих задачи масштаба Microsoft и Amazon.

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

Народная любовь

В январе 2014 года главный редактор компьютерного журнала Dr. Dobb's Journal Эндрю Бинсток прокомментировал шансы Rust стать полновесным конкурентом C++. По словам Бинстока, хотя Rust «многие считают удивительно элегантным языком», его внедрение замедлилось, потому что он чересчур сильно менялся между версиями.

Но популярность Rust после его официального релиза в 2015 году росла фантастическими темпами. Несмотря на свою молодость, Rust быстро вошел в число самых популярных языков программирования. Например, в индексе сообщества программистов TIOBE в июле 2019 года он занимал 33-е место, а уже к июлю 2020 года поднялся на 18-е. Точно так же, согласно опросу разработчиков Stack Overflow, Rust является «самым любимым» языком опрошенных с 2016 года. Его любят 86% разработчиков, на втором месте — TypeScript с одобрением 67%, на третьем — Python с 66,7%.

В опросе Stack Overflow показывается процент тех, кто разрабатывает с помощью языка или технологии и выражает заинтересованность в продолжении разработки с их помощью

В результате многие программисты теперь видят в Rust серьезную альтернативу C и C++ даже в сферах, где эти языки доминировали. Дэйв Херман, соучредитель Mozilla Research, расписал некоторые из преимуществ языка в своем посте:

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

Что сейчас

В бизнес-мире на одной любви не прожить. А поскольку у Mozilla сейчас не самые лучшие времена, в том числе из-за давления со стороны Chrome и Edge, то и развитие нового языка оказалось под угрозой.

В августе 2020 года Mozilla уволила 250 из 1000 своих сотрудников в рамках корпоративной реструктуризации, вызванной пандемией. Команда разработчиков Servo, браузерного движка, написанного на Rust, была тогда полностью расформирована. Это вызвало обеспокоенность по поводу будущего Rust, поскольку члены команды вносили активный вклад в разработку и поддержку языка.

На следующей неделе основная команда Rust признала серьезные последствия увольнений и объявила о планах по созданию фонда поддержки Rust. Первой целью фонда было стать владельцем всех товарных знаков и доменных имен, относящихся к языку, и взять на себя финансовую ответственность за их стоимость.

8 февраля 2021 года пять компаний-основателей (AWS, Huawei, Google, Microsoft и Mozilla) объявили о создании Rust Foundation. В сообщении в блоге, опубликованном в апреле того же года, Google заявила о поддержке Rust в рамках Android Open Source Project в качестве альтернативы C и C++. Низкоуровневый код для Android теперь в самой Google пишется на Rust.

К 2022 году размер сообщества Rust увеличился втрое и превысил три миллиона пользователей. Его включили в рекомендованный Агентством национальной безопасности США список безопасных для памяти языков. Rust поставили в один ряд с другими хорошо зарекомендовавшими себя языками, такими как Java, C# и Ruby.

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

От программирования лифтов — к запуску космических ракет и электрокаров. Неплохо для «ржавчины».

P.S. Хотите работать над крутыми проектами? Лучшие вакансии — в телеграм-боте getmatch. Тысячи предложений от топовых компаний. Указываете нужную вилку зарплаты, и бот выдает вам лучшие предложения, и помогает пройти интервью. Всё бесплатно.

0
3 комментария
Полина Кузьмина

признаюсь честно, ожидала статью про теорию большого взрыва

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Андрей Ионов

с помощью кирпича на полу, без него лифт не работал

Ответить
Развернуть ветку
Roman Rodin

Ну примерно так же, как и сам СССР

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
0 комментариев
Раскрывать всегда