Язык программирования rust уроки

Язык программирования Rust: видеозаписи лекций курса от CS центра

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

Rust — это молодой компилируемый язык, предназначенный прежде всего для системного программирования. Скорость работы программ на Rust сравнима со скоростью работы на C++. Ключевое отличие — упор на безопасность, в том числе, при работе с памятью. Код, вызывающий неопределённое поведение (undefined behavior) в C++, в Rust приводит к ошибке во время компиляции. Rust спонсируется Mozilla Research, самое заметное применение — отдельные компоненты Firefox и Servo. Зачем учить Rust и как сделать семестровый курс максимально полезным, мы обсудили с Алексеем Кладовым, участником DevTools-команды, автором плагина IntelliJ Rust и разработчиком rust-analyzer в Ferrous Systems. Весной Алексей прочитал в CS центре курс по программированию на Rust, который теперь можно посмотреть на YouTube.

Зачем учить?

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

Пока язык находится в таком состоянии, что выучить его и пойти сразу работать программистом на Rust вряд ли получится: вакансий не очень много. Хочется верить, что со временем он станет более популярным.

Где используется?

Rust спонсируется Mozilla Research, самое заметное применение — отдельные компоненты Firefox и Servo. Это браузеры, значит, язык, на котором они пишутся должен быть быстрым и безопасным. Традиционно браузеры пишут на C++, и их часто взламывают.

Другие области применения, где нужно быть быстрым и безопасным: блокчейн-технологии, внутренние проекты больших компаний — утилиты системного уровня. Например, у Facebook на Rust написана система контроля версий, у Google — экспериментальная операционная система Fuchsia, Microsoft интересуется Rust из-за его безопасности.

Программа и содержание

У Rust отличная документация: можно скачать с официального сайта книгу, прочитать и узнать язык, поэтому на занятиях хотелось поговорить о чём-то уникальном, о чём не прочитаешь в интернете. Курс построен на сравнении Rust c другими языками программирования: почему одинаково выглядящий код на Java, C++ и Rust ведёт себя по-разному в процессе выполнения.

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

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

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

Источник

The Rust Programming Language

Примечание: это издание книги так же, как и The Rust Programming Language доступно в печатном и электронном виде от No Starch Press.

Добро пожаловать в The Rust Programming Language, вводную книгу о Rust. Язык программирования Rust помогает создавать быстрые, более надёжные приложения. Хорошая эргономика и низкоуровневый контроль часто являются противоречивыми требованиями для дизайна языков программирования; Rust бросает вызов этому конфликту. Благодаря сбалансированности мощных технических возможностей c большим удобством разработки, Rust предоставляет возможности управления низкоуровневыми элементами (например, использование памяти) без трудностей, традиционно связанными с таким контролем.

Кому подходит Rust

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

Команды разработчиков

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

Rust также предлагает современные инструменты разработки для системного программирования:

Эти и другие инструменты экосистемы Rust, обеспечивают разработчикам продуктивность при написании кода системного уровня.

Студенты

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

Компании

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

Разработчики Open Source

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

Люди, которые ценят скорость и стабильность

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

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

Для кого эта книга

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

Как использовать эту книгу

В целом, эта книга предполагает, что вы читаете её последовательно от начала до конца. Более поздние главы основываются на концепциях предыдущих. Иногда более ранние главы могут не углубляться в детали темы; мы обычно возвращаемся к теме в последующих главах.

В этой книге вы найдёте два вида глав: концептуальные главы и главы проекта. В концептуальных главах вы узнаете об аспектах Rust. В главах проекта мы будем вместе строить небольшие программы, применяя то, что вы узнали. Главы 2, 12 и 20 являются главами проекта; остальные являются концептуальными главами.

В главе 1 объясняется, как установить Rust, написать программу “Hello, world!” и использовать сборщик Cargo и менеджер пакетов в одном лице. Глава 2 является практическим введением в язык Rust. В ней объясняются концепции верхнего уровня и в более поздних главах предоставляются дополнительные детали о них. Если хотите сразу погрузиться в практику, то для этого предназначена глава 2. Вначале можно даже пропустить главу 3, которая рассказывает про возможности языка аналогичные тем, что есть в других языках и перейти к главе 4, для изучения системы владения в Rust. Однако, если вы дотошный ученик, предпочитающий изучить каждую особенность до перехода к следующей, то можно пропустить главу 2 и перейти сразу к главе 3, возвращаясь к главе 2, если захочется поработать над проектом и применить полученные знания.

Глава 13 исследует замыкания и итераторы: особенности Rust, которые пришли из функциональных языков программирования. В главе 14 мы подробнее рассмотрим Cargo и расскажем о лучших способах предоставления пользования вашими библиотеками другим разработчикам. Глава 15 обсуждает умные указатели, которые предоставляет стандартная библиотека и свойства, которые обеспечивают их функциональность.

В главе 16 мы рассмотрим различные модели параллельного программирования и поговорим о том, как Rust помогает вам безбоязненно программировать в нескольких потоках. Глава 17 рассказывает о том, как идиомы Rust сравниваются с принципами объектно-ориентированного программирования, с которыми вы, возможно, знакомы.

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

В главе 20 мы завершим проект, в котором мы реализуем низкоуровневый многопоточный веб-сервер!

Наконец, некоторые приложения содержат полезную информацию о языке в формате, более похожем на справочник. В приложении A описаны ключевые слова Rust, в приложении B описаны операторы и символы Rust, в приложении C описаны производные свойства, предоставляемые стандартной библиотекой, в приложении D описаны некоторые полезные инструменты разработки, а в приложении E описаны редакции Rust.

Нет способа читать эту книгу неправильно: если вы хотите пропустить что-то и пройти вперёд, делайте это! Возможно, вам придётся вернуться к предыдущим главам, если у вас появятся какие-либо затруднения. Делайте так, как считаете удобным для себя.

Важной частью процесса обучения Rust является изучение того, как читать сообщения об ошибках, которые отображает компилятор: они приведут вас к работающему коду. Мы изучим много примеров, которые не компилируются и отображают ошибки в сообщениях компилятора в разных ситуациях. Знайте, что если вы введёте и запустите случайный пример, он может не скомпилироваться! Убедитесь, что вы прочитали окружающий текст, чтобы понять, не предназначен ли пример, который вы пытаетесь запустить, для демонстрации ошибки. Ferris также поможет вам различить код, который не предназначен для работы:

FerrisПояснения
Язык программирования rust уроки. Смотреть фото Язык программирования rust уроки. Смотреть картинку Язык программирования rust уроки. Картинка про Язык программирования rust уроки. Фото Язык программирования rust урокиЭтот код не компилируется!
Язык программирования rust уроки. Смотреть фото Язык программирования rust уроки. Смотреть картинку Язык программирования rust уроки. Картинка про Язык программирования rust уроки. Фото Язык программирования rust урокиЭтот код вызывает состояние «panic»!
Язык программирования rust уроки. Смотреть фото Язык программирования rust уроки. Смотреть картинку Язык программирования rust уроки. Картинка про Язык программирования rust уроки. Фото Язык программирования rust урокиЭтот блок содержит небезопасный код.
Язык программирования rust уроки. Смотреть фото Язык программирования rust уроки. Смотреть картинку Язык программирования rust уроки. Картинка про Язык программирования rust уроки. Фото Язык программирования rust урокиЭтот код ведёт себя не так, как предполагается.

В большинстве случаев мы приведём вас к правильной версии любого кода, который не компилируется.

Исходные коды

Файлы с исходным кодом, используемым в этой книге, можно найти на GitHub.

Источник

7 Лучших курсов и книг по программированию на Rust для начинающих в 2021 году

Язык программирования rust уроки. Смотреть фото Язык программирования rust уроки. Смотреть картинку Язык программирования rust уроки. Картинка про Язык программирования rust уроки. Фото Язык программирования rust уроки

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

Rust — это один из относительно новых (он появился в 2015 году) и мощных языков программирования, который сочетает в себе мощь C++ с безопасностью Java и других интерпретируемых языков.

При создании языка программирования акцент делается либо на мощь, как в C/C++, либо на безопасность, как в Java, Python и других. Было много попыток объединить мощь C/C++ и безопасность Java. И только в Rust, похоже, получилось это сделать.

С момента своего дебюта Rust завладел вниманием всего мира и сообщества разработчиков. Об этом свидетельствует то, что по итогам опроса StackOverflow Rust признан самым желанным языком программирования за последние четыре года. Его популярность тоже растёт с каждым днём. По данным GitHub Octoverse, Rust был вторым по темпам роста языком в прошлом году (сразу после Dart). Растёт он и в Google trends.

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

Кроме того, на C++ трудно писать параллельный код. И хотя Java решает некоторые проблемы C++ в части безопасности и параллелизма, делает он это за счёт уменьшения производительности.

Безопасность обеспечивается, но для этого Java необходима громоздкая среда выполнения, называемая виртуальной машиной (Java Virtual Machine или сокращённо JVM). Из-за значительного времени выполнения языки типа Java не подходят для системного программирования и никогда по-настоящему не проникали в эту сферу.

А вот в Rust, похоже, достигнута золотая середина: невероятно высокая скорость, которая была возможна только с кодом на C/C++, сочетается здесь с безопасностью интерпретируемых языков Java, Haskel, Python.

Язык программирования rust уроки. Смотреть фото Язык программирования rust уроки. Смотреть картинку Язык программирования rust уроки. Картинка про Язык программирования rust уроки. Фото Язык программирования rust уроки

Это главная причина роста Rust в сфере системного программирования и больших данных. Здесь это надёжная альтернатива таким языкам, как C/C++, D и Golang.

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

Мои любимые онлайн-курсы по изучению языка программирования Rust в 2021 году

При изучении нового языка программирования я обычно следую формуле из трёх пунктов, которая начинается онлайн-курсом и заканчивается личным проектом.

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

Итак, вот мой список лучших курсов для изучения Rust в 2021 году.

1. Курс изучения Rust через создание реальных приложений

Мне нравится подход к изучению через практику. Поэтому я просто не мог пройти мимо этого практического онлайн-курса на Udemy, одного из лучших для начинающих изучать основы Rust в 2021 году.

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

Вот что вы изучите в этом курсе:

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

Язык программирования rust уроки. Смотреть фото Язык программирования rust уроки. Смотреть картинку Язык программирования rust уроки. Картинка про Язык программирования rust уроки. Фото Язык программирования rust уроки

2. Язык программирования Rust

Тоже один из лучших курсов для изучения Rust онлайн. Он создан Дмитрием Нестеруком, Quant-разработчиком и преподавателем на курсах Java Design pattern (паттерны проектирования на Java) и C++ design pattern (паттерны проектирования на C++) на Udemy.

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

Курс хорошо структурирован и научит вас основам Rust, начиная с загрузки и установки и заканчивая совместимыми программами и работой с IDE (IntelliJIDEA).

Вы узнаете об основных типах данных в Rust и о том, как их использовать в программе. Получите представление о таких структурах данных в Rust, как массивы, векторы, строки, а также срезы.

Язык программирования rust уроки. Смотреть фото Язык программирования rust уроки. Смотреть картинку Язык программирования rust уроки. Картинка про Язык программирования rust уроки. Фото Язык программирования rust уроки

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

3. Язык программирования Rust: полный курс

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

Здесь также объясняется, как уникальная концепция владения Rust влияет на язык и безопасность. А кроме того, в этом курсе описывается работа с данными, сопоставление с образцом и обработка ошибок.

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

Но чтобы извлечь максимум пользы от этого курса, нужен хотя бы небольшой опыт программирования. Этот курс лучше всего вам подойдёт, если вы уже знаете C/C++ или Java и хотите изучить Rust как второй язык программирования.

Язык программирования rust уроки. Смотреть фото Язык программирования rust уроки. Смотреть картинку Язык программирования rust уроки. Картинка про Язык программирования rust уроки. Фото Язык программирования rust уроки

4. Язык программирования Rust для начинающих

Ещё один отличный курс на Udemy для изучения программирования на Rust. Он разработан Академией изучения программирования Тима Бучалки. Кстати, мне больше всего нравится их курс программирования на Java. Курс по Rust создавался в соавторстве с Дивейкером Сингхом.

Это очень развёрнутый курс, который содержит больше 19,5 часов материалов и охватывает почти всё, что касается Rust. Даже если у вас нет никакого опыта программирования, занимайтесь по этому курсу и его учебной программе.

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

Язык программирования rust уроки. Смотреть фото Язык программирования rust уроки. Смотреть картинку Язык программирования rust уроки. Картинка про Язык программирования rust уроки. Фото Язык программирования rust уроки

5. Курс самостоятельного изучения Rust (бесплатный образовательный курс)

Наконец, добрались до бесплатного интерактивного текстового курса от Educative для изучения программирования на Rust в 2021 году. Если ещё не знаете, Educative — это новая платформа онлайн-обучения с возможностью заниматься по тексто-графическому руководству вместе с кодом в одном окне.

Этот бесплатный курс по освоению Rust с использованием практического подхода. Курс начинается с простой программы «Hello World!» и продолжается рассмотрением основных понятий: массивов, строк, векторов, перечислений, структур, типажей, обобщённых типов данных, функций и логики.

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

Самое лучшее в этом курсе то, что он совершенно бесплатный. Для доступа к нему нужно только создать учётную запись в Educative. Кстати, здесь много полезных уроков. Например, стоит ознакомиться с курсом по проектированию систем Grokking the System Design Interview, хоть он и не бесплатный. Если вам нравится платформа, рекомендую оформить подписку на Educative, которая позволяет получить доступ к более чем 100 курсов за 18 долларов.

6. Основы Rust (Pluralsight)

Это лучший курс для изучения Rust на Pluralsight. Ведёт его тот же преподаватель, что и первый курс нашего списка. Курс находится на популярном онлайн-ресурсе Pluralsight. То есть доступ к нему можно получить, оформив членство на Pluralsight, и покупать другой курс на Udemy не придётся.

В этом курсе сначала изучается весь синтаксис и специфика языка программирования Rust. Затем происходит ознакомление с основными типами данных и их использованием в объявлении переменных.

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

Язык программирования rust уроки. Смотреть фото Язык программирования rust уроки. Смотреть картинку Язык программирования rust уроки. Картинка про Язык программирования rust уроки. Фото Язык программирования rust уроки

Если у вас не оформлено членство на Pluralsight, воспользуйтесь 10-дневным бесплатным периодом. Он даёт 200 минут бесплатного просмотра, которых будет достаточно для прохождения этого курса.

2 Лучшие книги для изучения программирования на Rust в 2021 году

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

1. Fullstack Rust

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

Книга написана Nate Murray и другими авторами двух самых популярных книг для изучения Angular и React: The Ng book и Fullstack React book. Автор этой книги Andy Weiss, инженер-программист из Google.

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

Совсем другое дело — книга Fullstack Rust. В ней показывается, как использовать Rust для создания невероятно быстрых веб-серверов, инструментов командной строки и компиляции приложений для запуска в браузере с помощью Web Assembly (WASM).

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

2. Rust in Action

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

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

Язык программирования rust уроки. Смотреть фото Язык программирования rust уроки. Смотреть картинку Язык программирования rust уроки. Картинка про Язык программирования rust уроки. Фото Язык программирования rust уроки

Вот и всё о лучших онлайн-курсах и книгах для изучения Rust в 2021 году. Если вам нужен надёжный язык для системного программирования и больших данных, изучайте Rust: он сейчас на вершине популярности. Стремительно растёт и востребованность программистов, которые знают Rust (особенно системных программистов и программистов встроенных систем).

Хотите стать разработчиком Rust? Тогда начните один из этих курсов. А если вы предпочитаете книги онлайн-курсам, причём книги на русском языке, то рекомендую два ресурса: такой и такой.

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

P. S. Если вы ищете бесплатный онлайн-курс, обратите внимание также на курс для студентов последнего года обучения Rust for Undergradsна Udemy. Он отлично подойдёт для изучения основ языка программирования Rust. К тому же курс совершенно бесплатный.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *