Язык программирования Rust приходит на смену С++. Правда это или нет, давайте разбираться. Новые языки программирования похожи на звезды. Некоторые загораются и тухнут, в то время как другие продолжают освещать путь программисту. Все мы знаем, как сложно матерому разработчику со стажем поменять основной язык на созданный относительно недавно. Опытные специалисты довольно разборчивы и не каждый из них готов менять свои предпочтения. Однако появился язык, удовлетворяющий потребности многих программистов и решающий большинство современных задач разработки – Rust. Rust был создан в 2010 году в Mozilla Research и стал позиционироваться как более надежная и безопасная альтернатива C ++. Это статический многопарадигменный язык программирования с эффективным использованием памяти, ориентированный на скорость, безопасность и производительность. Он используется для разработки игровых движков, файловых систем, веб-сайтов и инструментов, операционных систем, компонентов браузера и многого другого. Rust поддерживает как императивное, так и функциональное программирование. Для разработки корпоративных приложений его используют в DropBox, Mozilla и Coursera, а поддерживают такие ИТ-гиганты, как Microsoft, Facebook и Intel. Что же в Rust такого особенного? Давайте разбираться. Почему Rust? Феномен Rust обусловлен некоторыми особенностями языка: Во-первых, у него отличная документация, ласково названная разработчиками «книгой». В этой самой книге все доходчиво расписано и понятно даже далекому от программирования человеку. Rust имеет очень удобный компилятор и первоклассные инструменты для работы: интегрированные менеджеры пакетов и мультиредактор. Он очень быстр, предотвращает сбои и по умолчанию безопасен. Язык решает проблемы, с которыми в течение долгого времени боролись программисты на C и C ++ , а именно с ошибками памяти и сложностью создания параллельных программ. Чем Rust лучше других? Rust – это системный язык программирования с открытым исходным кодом, фокусирующийся на скорости и безопасности памяти. Разработчики используют Rust для создания широкого спектра новых приложений. Rust был разработан с нуля и включает элементы и дизайн проверенных временем языков системного программирования. Он сочетает выразительный и интуитивно понятный синтаксис языков высокого уровня с контролем и производительностью низкоуровневых языков. Такое сочетание предотвращает ошибки сегментации, гарантирует безопасность потоков и дает разработчикам возможность писать быстрый и правильный код. Используя Rust, можно создавать менее подверженные ошибкам и уязвимостям безопасности программы за счет мощных функций управления памятью. Кроме того, Rust – проект с открытым исходным кодом, и активное сообщество разработчиков поддерживает его и продолжает добавлять новую функциональность и удобные инструменты. Например, компилятор языка генерирует очень точные и информативные сообщения об ошибках, выделяет проблемный код и рекомендует способы его исправления. Rust имеет инструменты для разработки кроссплатформенных приложений и отлично подходит для сред с низким уровнем ресурсов, а существующие плагины для популярных IDE (Visual Studio Code от Microsoft и IntelliJ от JetBrains) дают неплохие возможности для экспериментов с кодом. Немного статистики С 2015 года Rust был признавался разработчиками любимым языком программирования в опросе разработчиков Stack Overflow четыре года подряд (в 2016-м, 2017-м, 2018-м и 2019-м): Источник: Stack Overflow Год назад, Rust вошел в ТОП-10 языков программирования по величине зарплат разработчиков, работающих на нем: Источник: Stack Overflow. По данным все того же опроса Stack Overflow, Rust входит в пятерку самых популярных языков программирования: Источник: Stack Overflow Rust впервые вошел в список двадцати самых популярных языков программирования TIOBE в 2020 году. А в прошлогоднем обзоре Reddit он стал вторым по популярности языком программирования после Python. Источник: Reddit Cargo Rust имеет систему сборки и одновременно менеджер пакетов под названием Cargo. Она управляет построением кода, загрузкой библиотек, запуском тестов, генерацией документации и помогает с управлением зависимостями при создании сложных программ. Система сборки Cargo признана одной из самых сильных сторон экосистемы Rust. Без нее разработчикам пришлось бы искать и загружать необходимые куски кода из неизвестных источников на GitHub, создавать пакеты статических библиотек и связывать их с программой. Cargo делает все это сама без постороннего вмешательства. Эта удобная штука вшита в установочный пакет и идет в комплекте с языком. Использование Rust в реальном мире Кроме разработчика языка, корпорации Mozilla, использующей Rust для браузерного движка Servo и большинства проектов связанных с Firefox, довольно много компаний применяют его в своих проектах. Firecracker от Amazon Web Services полностью написан на Rust, а популярные ИТ-компании Discord, npm, Cloudflare, Figma и другие успешно разрабатывают на нем программное обеспечение. Выступая на RustFest Barcelona полтора года назад, инженеры Microsoft Райан Левик и Себастьян Фернандес рассказали о проблемах и преимуществах внедрения нового языка и о попытках переписать на Rust низкоуровневые компоненты Windows. По их словам, индустрия программного обеспечения стоит на небезопасной технологической основе, которая обходится корпорации слишком дорого. По самым скромным оценкам Microsoft, любая проблема с программным обеспечением стоит около 150 000 долларов в день. Расходы могут быть еще выше для организаций, ставших жертвами уязвимостей системы безопасности. Именно так и было с британской национальной системой здравоохранения, которой атака вымогателя обошлась в 4 миллиарда долларов. По словам экспертов, в большинстве случаев такой ущерб связан с использованием C/C ++. C и C ++ отлично подходят для написания низкоуровневых систем и используют мало ресурсов машины. Фактически они являются основой, на которой мы создаем наши системы сегодня. Однако проблема заключается в том, что они очень и очень небезопасны. Когда они разрабатывались, мало кто про думал про безопасность. Себастьян Фернандес Поэтому в Microsoft начали экспериментировать с Rust, видя в нем спасение. Rust позволит нам безопасно писать высокопроизводительные, критически важные компоненты. Райан Левик Впрочем, эксперт оговорился, что такая точка зрения ожидает подтверждения, и он надеется, что утверждение окажется правдой. Основным препятствием на пути к этой цели является невозможность переписать на Rust огромное количество унаследованного кода из-за объема работы и проблем сосуществования нового языка с рядом других технологий. В дополнение к этому Rust должен быть принят разработчиками ПО, использующими C/C ++ в течение многих лет. Они должны убедиться в удобстве перехода. Помимо этого Microsoft уже использует Rust в проекте для тестирования модулей WebAssembly в Kubernetes. Начавший кампанию по переписыванию низкоуровневых системных компонентов Windows инженер-программист Адам Берч охарактеризовал Rust как глоток свежего воздуха: Предоставляемые компилятором гарантии безопасности памяти и данных дают разработчику гораздо большую уверенность в том, что компиляция кода будет правильной. Берч разделяет оптимизм Фернандеса и Левика по поводу того, что разработчики на C/C++ быстро овладеют этим языком, и включил несколько интересных практических предложений по взаимодействию Rust с унаследованным кодом в руководство под названием generation of Rust data structure to represent C data. Amazon, Google, Intel и Red Hat заинтересованы в развитии языка – они запустили совместный проект «rust-vmm». Несколько десятков репозиториев собраны в один на GitHub: компании размещают там боксы с обновлениями старых решений и новыми фичами, чтобы делится ими друг с другом и с остальным сообществом. *** В нынешней ситуации при создании проектов нельзя забывать о безопасности, поэтому Rust сейчас на подъеме, и все больше компаний выбирают этот уникальный язык. В России он пока не так популярен, но уже очевидно – у Rust большое будущее. Если вы собираетесь начать новый проект или задумываетесь о карьере системного программиста, современную альтернативу морально устаревшим C и C++ стоит хотя бы рассмотреть.
Новые языки программирования похожи на звезды. Некоторые загораются и тухнут, в то время как другие продолжают освещать путь программисту. Все мы знаем, как сложно матерому разработчику со стажем поменять основной язык на созданный относительно недавно. Опытные специалисты довольно разборчивы и не каждый из них готов менять свои предпочтения. Однако появился язык, удовлетворяющий потребности многих программистов и решающий большинство современных задач разработки – Rust.
Rust был создан в 2010 году в Mozilla Research и стал позиционироваться как более надежная и безопасная альтернатива C ++. Это статический многопарадигменный язык программирования с эффективным использованием памяти, ориентированный на скорость, безопасность и производительность. Он используется для разработки игровых движков, файловых систем, веб-сайтов и инструментов, операционных систем, компонентов браузера и многого другого.
Rust поддерживает как императивное, так и функциональное программирование. Для разработки корпоративных приложений его используют в DropBox, Mozilla и Coursera, а поддерживают такие ИТ-гиганты, как Microsoft, Facebook и Intel. Что же в Rust такого особенного? Давайте разбираться.
Феномен Rust обусловлен некоторыми особенностями языка:
Rust – это системный язык программирования с открытым исходным кодом, фокусирующийся на скорости и безопасности памяти. Разработчики используют Rust для создания широкого спектра новых приложений.
Rust был разработан с нуля и включает элементы и дизайн проверенных временем языков системного программирования. Он сочетает выразительный и интуитивно понятный синтаксис языков высокого уровня с контролем и производительностью низкоуровневых языков. Такое сочетание предотвращает ошибки сегментации, гарантирует безопасность потоков и дает разработчикам возможность писать быстрый и правильный код.
Используя Rust, можно создавать менее подверженные ошибкам и уязвимостям безопасности программы за счет мощных функций управления памятью. Кроме того, Rust – проект с открытым исходным кодом, и активное сообщество разработчиков поддерживает его и продолжает добавлять новую функциональность и удобные инструменты. Например, компилятор языка генерирует очень точные и информативные сообщения об ошибках, выделяет проблемный код и рекомендует способы его исправления.
Rust имеет инструменты для разработки кроссплатформенных приложений и отлично подходит для сред с низким уровнем ресурсов, а существующие плагины для популярных IDE (Visual Studio Code от Microsoft и IntelliJ от JetBrains) дают неплохие возможности для экспериментов с кодом.
С 2015 года Rust был признавался разработчиками любимым языком программирования в опросе разработчиков Stack Overflow четыре года подряд (в 2016-м, 2017-м, 2018-м и 2019-м):
Источник: Stack Overflow
Год назад, Rust вошел в ТОП-10 языков программирования по величине зарплат разработчиков, работающих на нем:
Источник: Stack Overflow.
По данным все того же опроса Stack Overflow, Rust входит в пятерку самых популярных языков программирования:
Rust впервые вошел в список двадцати самых популярных языков программирования TIOBE в 2020 году. А в прошлогоднем обзоре Reddit он стал вторым по популярности языком программирования после Python.
Источник: Reddit
Rust имеет систему сборки и одновременно менеджер пакетов под названием Cargo. Она управляет построением кода, загрузкой библиотек, запуском тестов, генерацией документации и помогает с управлением зависимостями при создании сложных программ.
Система сборки Cargo признана одной из самых сильных сторон экосистемы Rust. Без нее разработчикам пришлось бы искать и загружать необходимые куски кода из неизвестных источников на GitHub, создавать пакеты статических библиотек и связывать их с программой. Cargo делает все это сама без постороннего вмешательства. Эта удобная штука вшита в установочный пакет и идет в комплекте с языком.
Кроме разработчика языка, корпорации Mozilla, использующей Rust для браузерного движка Servo и большинства проектов связанных с Firefox, довольно много компаний применяют его в своих проектах. Firecracker от Amazon Web Services полностью написан на Rust, а популярные ИТ-компании Discord, npm, Cloudflare, Figma и другие успешно разрабатывают на нем программное обеспечение.
Выступая на RustFest Barcelona полтора года назад, инженеры Microsoft Райан Левик и Себастьян Фернандес рассказали о проблемах и преимуществах внедрения нового языка и о попытках переписать на Rust низкоуровневые компоненты Windows.
По их словам, индустрия программного обеспечения стоит на небезопасной технологической основе, которая обходится корпорации слишком дорого. По самым скромным оценкам Microsoft, любая проблема с программным обеспечением стоит около 150 000 долларов в день. Расходы могут быть еще выше для организаций, ставших жертвами уязвимостей системы безопасности. Именно так и было с британской национальной системой здравоохранения, которой атака вымогателя обошлась в 4 миллиарда долларов. По словам экспертов, в большинстве случаев такой ущерб связан с использованием C/C ++.
C и C ++ отлично подходят для написания низкоуровневых систем и используют мало ресурсов машины. Фактически они являются основой, на которой мы создаем наши системы сегодня. Однако проблема заключается в том, что они очень и очень небезопасны. Когда они разрабатывались, мало кто про думал про безопасность. Себастьян Фернандес
Поэтому в Microsoft начали экспериментировать с Rust, видя в нем спасение.
Rust позволит нам безопасно писать высокопроизводительные, критически важные компоненты. Райан Левик
Впрочем, эксперт оговорился, что такая точка зрения ожидает подтверждения, и он надеется, что утверждение окажется правдой.
Основным препятствием на пути к этой цели является невозможность переписать на Rust огромное количество унаследованного кода из-за объема работы и проблем сосуществования нового языка с рядом других технологий. В дополнение к этому Rust должен быть принят разработчиками ПО, использующими C/C ++ в течение многих лет. Они должны убедиться в удобстве перехода. Помимо этого Microsoft уже использует Rust в проекте для тестирования модулей WebAssembly в Kubernetes.
Начавший кампанию по переписыванию низкоуровневых системных компонентов Windows инженер-программист Адам Берч охарактеризовал Rust как глоток свежего воздуха:
Предоставляемые компилятором гарантии безопасности памяти и данных дают разработчику гораздо большую уверенность в том, что компиляция кода будет правильной.
Берч разделяет оптимизм Фернандеса и Левика по поводу того, что разработчики на C/C++ быстро овладеют этим языком, и включил несколько интересных практических предложений по взаимодействию Rust с унаследованным кодом в руководство под названием generation of Rust data structure to represent C data.
Amazon, Google, Intel и Red Hat заинтересованы в развитии языка – они запустили совместный проект «rust-vmm». Несколько десятков репозиториев собраны в один на GitHub: компании размещают там боксы с обновлениями старых решений и новыми фичами, чтобы делится ими друг с другом и с остальным сообществом. ***
В нынешней ситуации при создании проектов нельзя забывать о безопасности, поэтому Rust сейчас на подъеме, и все больше компаний выбирают этот уникальный язык. В России он пока не так популярен, но уже очевидно – у Rust большое будущее. Если вы собираетесь начать новый проект или задумываетесь о карьере системного программиста, современную альтернативу морально устаревшим C и C++ стоит хотя бы рассмотреть.
Ваш адрес email не будет опубликован. Обязательные поля помечены *
Сохранить моё имя, email и адрес сайта в этом браузере для последующих моих комментариев.
Δ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.