Rust язык программирования для чего
Прочитайте, как npm, которые управляют одноимённым реестром пакетов JavaScript, нашли Rust и сделали развёртывания скучными.
Tilde
Узнайте как Rust помог Tilde, создателям Skylight, использовать минимальное количество ресурсов для обеспечения многофункционального мониторинга производительности приложений клиентов.
Промышленное использование Rust
Сотни компаний по всему миру используют Rust в реальных проектах для быстрых кросс-платформенных решений с ограниченными ресурсами. Такие проекты, как Firefox, Dropbox и Cloudflare, используют Rust. Rust отлично подходит как для стартапов, так и для больших компаний, как для встраиваемых устройств, так и для масштабируемых web-сервисов.
Мой самый большой комплимент Rust — то, что он скучный, и это потрясающий комплимент.
– Chris Dickinson, инженер npm, Inc
Вся документация, инструментарий и сообщество замечательны - у вас есть всё, чтобы преуспеть в написании кода на Rust.
– Antonio Verardi, инженер по инфраструктуре
Создайте это в Rust
В 2018 году, сообщество Rust приняло решение расширить присутствие языка для нескольких областей (смотрите roadmap на 2018 год). Для этого вы можете найти множество высококачественных пакетов и потрясающие руководства о том, как начать.
Командная строка
Быстро создайте инструмент командной строки с помощью надёжной экосистемы Rust. Rust поможет вам с уверенностью поддерживать ваше приложение и с лёгкостью его распространять.
WebAssembly
Используйте Rust для перезарядки вашего JavaScript, по одному модулю за раз. Опубликуйте в npm, упакуйте с webpack и вы готовы к соревнованиям.
Сетевое программирование
Предсказуемая производительность. Крошечные требования к ресурсам. Потрясающая надёжность. Rust отлично подходит для сетевых сервисов.
Встраиваемые системы
Ориентируетесь на устройства с малой производительностью? Нужен низкоуровневый контроль без отказа от высокоуровневых удобств? Rust предоставит это.
Особенности
Dropbox
Несколько компонентов базовой системы хранения файлов Dropbox были написаны на Rust как один из этапов более крупного проекта, направленного на повышение эффективности центра обработки данных. В настоящее время он используется всеми хранилищами Dropbox, обслуживая более 500 миллионов пользователей.
Yelp разработали фреймворк на Rust для A/B тестирования в реальном времени. Он используется на всех сайтах и приложениях Yelp, а субъекты экспериментов варьируются от UX до внутренней инфраструктуры. Rust был выбран потому что он такой же быстрый, как C (дешёвый в эксплуатации), и безопаснее, чем С (дешёвый в поддержке).
Зачем нам нужен Rust?
Rust — системный язык программирования, который исполняется чертовски быстро, предотвращает почти все падения, а также устраняет неопределённости совместного доступа к данным. Он разрабатывается Mozilla как инструмент для создания обозревателя нового поколения — Servo.
Пункты соприкосновения
- Вы не платите за то, что не используете. Красота кода не требует жертв производительности.
- Предсказуемое выделение и освобождение памяти (RAII).
- Мультипарадигмальность, пусть и с небольшим уклоном в функционалку.
- Сожительство с написанными на С/C++ библиотеками: возможность вызвать С код и быть вызванным.
- Минимальные требования к среде (runtime), возможность написать код любого уровня и масштаба.
- Гарантированная безопасность модели памяти. (у С++ тоже есть enum, но там он не позволяет строить новые типы). . (в С++ для этого добавили auto). (опять же, это есть и в новом С++)
Через тернии к звёздам
Вся магия Rust становится возможной благодаря знанию компилятором о том, кто владеет определённой сущностью (owner), кто лишь временно одалживает её (mutable borrow), а кто просто пришёл посмотреть (immutable borrow). Программируя на С++ или Java, Вы всё равно держите в голове эту информацию, пусть и в несколько ином виде. В Rust это выражается языковыми конструкциями, что позволяет компилятору проверить правильность Вашей модели, а также гарантировать её беспроблемное выполнение. Для такого программирования требуется немного иной подход, чем мы привыкли. Попытаюсь пройтись по основным моментам, которые могут занести Вас в ступор при начальном изучении:
1. Нет наследования, зато есть структуры и способности (traits).
2. Указатели есть только в незащищённом коде (unsafe <>). Вместо них в безопасном коде есть ссылки, которые гарантированно указывают на существующие объекты.
3. Если у Вас неизменяемая ссылка на что-то (immutable borrow = &Object), то никто не может изменить значение, пока ссылка жива.
4. Если у Вас изменяемая ссылка (mutable borrow = &mut Object), то никто другой не может читать содержимое объекта, пока ссылка жива.
5. Разработчики языка предпочитают Mac и *nix, так что для работы под Windows нужна GNU среда.
У Rust очень весёлое и активное сообщество, Вам всегда будут рады на канале IRC и в Reddit. Уже написано приличное количество всякого добра, многие из проектов активно развиваются на GitHub. Особой популярностью язык пользуется у разработчиков игр и графики. Есть зачатки операционных систем. В перспективе также маячит возможность исполнения на веб-серверах и клиентах. Rust подходит для любых задач!
Единственная на сегодня, пожалуй, серьёзная проблема языка — это его бурное развитие. От версии к версии может меняться синтаксис, порой приходится переосмысливать логику, подстраиваясь под новые возможности языка. Такая ситуация продлится ещё какое-то время в этом году, пока не появится Rust-1.0. А тем временем журнал Rust 'n Stuffs в еженедельной рубрике This Week in Rust оповещает нас обо всех прошедших и готовящихся изменениях, о новых статьях и перспективных проектах.
Немного обо мне
Скоро будет уже 2 года, как я перешёл на Rust, оставив позади Boo, Dart, Haskell и, конечно, С++. Первым проектом была игра, которую решил отложить до выхода стабильной версии языка. Сейчас активно работаю над rust-compress и своим компрессором данных. Верю в светлое будущее Rust и приглашаю всех принять участие!
Встраиваемые устройства
Принудительная настройка контактов и периферийных устройств во время компиляции. Гарантия того, что ресурсы не будут использоваться не предназначенными частями приложения.
Гибкая память
Динамическое распределение памяти не является обязательным. Используйте глобальный распределитель и динамические структуры данных. Или вообще исключить кучу и статически распределить всё.
Написание параллельного кода без страха
Rust делает невозможным случайное разделение состояния между потоками. Используйте любые подходы к параллелизму, которые вам нравятся, и вы всё равно получите строгие гарантии Rust.
Совместимость
Интегрируйте Rust в вашу существующую кодовую базу на C или используйте существующий SDK для написания приложения на Rust.
Переносимость
Один раз напишите библиотеку или драйвер и используйте его с разными системами начиная от очень маленьких микроконтроллеров, до мощных интегрированных плат.
Движимый сообществом
В рамках open source проекта Rust, поддержка встраиваемых систем движется, при поддержке коммерческих партнёров, лучшим в своём классе open source сообществом.
Благодарности
Rust не существовал бы без щедрого вклада времени, работы и ресурсов от отдельных лиц и компаний. Мы очень благодарны за поддержку!
Отдельные участники
Rust - это проект сообщества, и он очень благодарен за многочисленные вклады сообщества, которые он получает.
Корпоративные спонсоры
Проект Rust получает поддержку от компаний через пожертвования для инфраструктуры.
Rust язык программирования для чего
Rust невероятно быстр и эффективен по использованию памяти: без рантайма или сборщика мусора он может обеспечить работу критичных для производительности сервисов, запускаться на встраиваемых устройствах и легко интегрироваться с другими языками.
Надёжность
Богатая система типов Rust и модель владения гарантируют потокобезопасность и безопасность памяти, и позволяют устранить множество классов ошибок во время компиляции.
Продуктивность
Примите участие
Читай про Rust
Мы любим документацию! Посмотрите книги, доступные онлайн, а также ключевые блоги и пользовательские руководства.
Смотрите про Rust
У Rust сообщества есть отдельный канал на YouTube, где собрано огромное количество презентаций и учебных пособий.
Сделать вклад
Rust - действительно работа сообщества, и мы приветствуем вклад как любителей, так и тех, кто использует его в промышленной разработке, от новичков, до профессионалов. Помогите нам улучшить опыт работы с Rust!
Читайте также: