И почему ты должен этому научиться

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

В опросе много разных категорий, но когда дело доходит до «Самый любимый язык программирования», явный победитель - Rust.

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

Привет ржавчина

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

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

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

Функциональный стиль в Python в некотором смысле возможен до определенной степени, но также представляет собой проблему из-за объектно-ориентированной природы Python.

Кроме того, Python ни в коем случае не является быстрым языком. Это очень хорошо для многих вещей, но производительность - не одна из самых высоких метрик Python.

А вот в Go производительность очень хорошая!

Вам нужно будет использовать низкоуровневый код библиотек Python, например, Numpy, чтобы получить высокую производительность.

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

Итак, я был совершенно новичком в Rust, но свободно говорил на Python. Когда я начал изучать Rust, было так много вопросов, потому что Rust сильно отличается от многих других популярных языков.

Происхождение и природа ржавчины

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

Rust начинался как побочный проект Грейдона Хора, сотрудника Mozilla.

Mozilla увидела потенциал нового языка и начала спонсировать его перед выпуском.

С самого начала Rust был сосредоточен на безопасности и производительности. Часть безопасности проистекает из того, как Rust обрабатывает память.

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

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

Второй ключевой показатель, которым выделяется Rust, - это производительность.

Rust быстр. Rust действительно быстр. Фактически, он настолько быстр, что даже превосходит C и C ++ в некоторых задачах (немного медленнее в других задачах). Но Rust в среднем работает на C ++ / C быстро.

Однако, когда дело касается безопасности, между C и Rust есть большая разница. C очень небезопасен, потому что вам нужно самостоятельно обрабатывать память.

В Rust вам также нужно обрабатывать память, но из-за правил владения и заимствования вы не можете компилировать небезопасный код.

Почему ржавчина?

Rust не объектно-ориентированный, а Rust не функциональный. Как и C и Go, Rust поддерживает структуры для организации связанных данных.

При этом Rust поддерживает некоторые объектно-ориентированные и функциональные функции, такие как, например, методы и замыкания.

Так зачем вам изучать Rust?

Ржавчина здесь, чтобы остаться! Как и Go, это современный язык, в который встроены параллелизм и параллелизм. Это один из самых быстрых языков, чрезвычайно безопасный для памяти и легкий.

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

И, конечно же, Rust иногда оказывается лучшим инструментом для этой работы. Иногда это Python, а иногда - Go. Черт! иногда это Javascript!

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