Красивые места в расте

Обновлено: 04.10.2024

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

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

Что особенного в Rust?

  • Лаконичный синтаксис с ключевиками, похож на синтаксис C.
  • Кодовый анализатор, помогающий не допускать утечек памяти и не совершать ошибок при работе с многопоточностью.
  • Самостоятельное управление расположением данных в памяти (используя указатели).
  • Нет garbage collection.
  • Мощная статистическая типизация.

Семейное древо Rust

История языка

Разработкой языка занялся в свободное время сотрудник Mozilla Грэйдон Хор 14 лет назад, в 2006. Три года он действовал самостоятельно, пока в 2009-м к работе официально не подключилась Mozilla. В 2010 Rust был представлен официально.

Первый альфа-релиз языка состоялся в 2012. На Rust был разработан Servo, движок для веб-браузеров. В 2013 к работе над Servo присоединился Samsung, в результате чего код Servo был портирован на ARM-архитектуру.

история rust

Преимущества и недостатки

  • Компилятор слишком строго фиксирует вызовы к памяти;
  • Нет типичных для ООП-стиля наследования и классов.

rust за и против

Где нужен Rust?

Код на Rust соответствует четырём главным концепциям в программировании: процедурное, параллельное, функциональное и ООП. Поэтому Rust — разносторонний язык, который можно применять во многих сферах. Например:

  • программирование клиентских приложений и веб-серверов;
  • blockchain;
  • создание собственных ОС;
  • написание программ и приложений по мониторингу систем и серверов;
  • разработка ПО общего назначения;
  • создание инфраструктуры;
  • написание движков для браузеров и игр.

ПО и операционки

  • многопоточный движок для браузера Servo;
  • гипервизор Firecracker, разработанный в основном под бессерверную архитектуру;
  • микроядерная ОС Redox.

Rust и блокчейн-проекты

Одно из важнейших требований блокчейн-сетей — высокая скорость работы внутри сети при низком уровне нагрузки серверов. Многие блокчейны (например Ethereum или Bitcoin) используют для реализации таких условий функционал C++. Учитывая сказанное выше, создание инфраструктуры на Rust будет более результативным. Вот примеры использования в blockchain:

Rust и web-приложения

  • сервис онлайн-обучения Coursera, созданный преподавателями Стэнфорда;
  • файловый и облачный хостинг Dropbox;
  • проект OpenDNS, который помогает находить доступные DNS-сервера.

Rust и нейросети

На сегодняшний день нейросети на Rust — это в основном эксперименты. Язык выглядит довольно притягательным для машинного обучения: низкоуровневая работа с памятью и при этом применение высокоуровневых абстракций, а также высокая производительность языка. Всё это работает на Rust API и сулит ему большую популярность. Но пока в экосистеме Rust практически нет на 100% испытанных и безопасных фреймворков для разработки нейросетей, способных составить конкуренцию библиотекам на Python.

Что будет с Rust дальше?

За практически 40 лет C++ выбился в лидеры отрасли, сохраняет это лидерство и считается стандартом разработки. Rust — молодой язык, который постоянно меняется, эволюционирует, пытаясь решить известные недочеты не только C++, но и остальных языков.

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

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

Rust с каждым днём используют всё чаще. На него сделали ставки такие компании как Microsoft, Amazon. Также Rust включили в список языков для разработки ядра Linux, а Google — выпустила свою ОС Fuchsia, которая в большой степени написана на Rust.

Отзыв о Rust - игра для PC

Игра довольно динамичная, крутая и вообще лучшая. Может я и загнул, но мне эта игра безумно понравилась. Есть 2 версии этой игры: Rust Experemental и Rust Legacy. Если вы обладатель топового ПК с самыми новыми.

Выживай, строй и играй вместе с друзьями!

Игрe Rust можно приобрести в STEAM за 419 рублей. Но можно и попробовать скачать пиратку, но лучше, конечно покупать ее. Это действительно стоит того, чтобы в нее поиграть. Хорошая графика, реалистичные звуки природы, предметов и.

Шикарная игра!

Наткнулся на игру случайно и не пожалел. Сначала скачал пиратку, так сказать протестировать игрушку, потом уже купил в(Steam), на момент моей покупки игрушка стоила 419 рублей. Игрушка вышла в 2013 году 11 декабря, в 2015.

Игра выживание, с множеством возможностей

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

Отличная игра про выживание

Игра про выживание.

Красивая графика, удобное настраиваемое управление, много языков, красивые скины на оружия, пользовательские сервера.

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

Игра не боится устоявшихся морально-этических принципов.

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

Достаточно много багов, иногда враждебно настроенные игроки и возможные проблемы с производительностью (над чем работают разработчики)

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

Хорошая игрушка,увлекающая и интересная.

Выживай если не слабак.

Здравствуйте всем, я хочу вам рассказать о одной игре в которую я наиграл уже 146 часов. И эта игра Rust, от создателя Garry's Mod, которая тоже есть, можете сами посмотреть. Игра по моему мнению и.

Отличная игра для людей с хорошей психикой.

Основной минус в том что сейчас игра находится в Альфа тестировании и неизвестно что случиться с игрой до релиза.

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

Отличный симулятор выживания,атмосфера,обновления каждый месяц.

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

Отзыв о Rust

Rust - это многопользовательская игра в жанре симулятора выживания, которая разрабатывалась и до сих пор разрабатывается британской инди-студией под названием Facepunch, которая, к слову, является создателем невероятно знаменитой песочницы - Garry's Mod. Rust задумывался как.

Взрывай и стреляй

Онлайн игра . Куча разных вещей . Огромная карта . Возможность взаимодействовать с другими игроками .

Сама по себе игра хорошая. Весь процес завязан на фарме и рейде домов других игроков. Игра сама по себе скучная из-за рутинного фарма и осознания того что тебя могут зарейдить. В игре есть постоянное чувство.

Прикольная игра про выживание!

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

Играть определённо стоит

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

Очень быстра и однообразная

Игра по началу атмосферная, даже иногда нравится. Но потом, она начинает надоедать. Тебя постоянно убивают, 24/7 рейдят. Если ты нафармил много ресов, тебя обязательно бахнут, хоть у тебя дохера стенок. Если ты остался победителем в.

Online survival

Лучшая онлай сурвайвл виживалка. Играл где-то около двух лет . В игре нужно: добывать ресурсы, строить дома, собирать оружие, убивать других игроков. В игре также есть система кланов и на некоторых серверах ежедневно проводятся ивенты.

Круто

-Скачивашь игру за 5 минут. -Заходишь на сервер за 30 минут. -Играешь около 5 минут с 60+ фпс, на средних. -После начинаются мелкие фризы. -Заходишь в Диспетчер задач чтоб убрать всякие процессы. -Оказывается из процессов.

Отличная игра на выживание

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

Лучшая игра в своём жанре

Интересная игра, затягивает Долго не надоедает Разработчики очень открыты для предложений со стороны сообщества

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

Вскоре Rust отметит восьмой День рождения. Вышел декабрьский апдейт

С приходом зимы команда создателей из Facepunch Studios выпустила последний ежемесячный апдейт текущего года для своего survival-проекта Rust. Данный патч привнес в игру ряд различных улучшений.

В пустынях Rust появились военные базы с ракетными системами

Коллектив разработчиков из Facepunch Studios продолжает активно развивать свой survival-проект Rust, выпуская к игре ежемесячные контентные обновления, и как раз на днях создателями был представлен ноябрьский апдейт.

Спустя 8 лет в Rust появятся квесты

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

Пользователи Dying Light столкнулись с “Низкой гравитацией”

Как оказалось, живые мертвецы являются не единственной проблемой Харрана, ведь городом также заинтересовались пришельцы, планы которых должны нарушить пользователи зомби-экшена Dying Light в ходе тематического события “Низкая гравитация”.

Rust - Подводные лаборатории и субмарины в августовском обновлении

В рамках регулярного развития своего survival-проекта Rust за счет ежемесячных обновлений коллектив разработчиков из Facepunch Studios выпустил очередной крупный апдейт - “Going Deep”, который на этот раз решил посвятить морской тематике.

Rust - Дополнение с аудиоустройствами и обновленная система ранений

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

Rust - Была добавлена система контактов

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

Rust теперь доступна на консолях PlayStation и Xbox

Dying Light - Предметы из Rust в новой коллаборации

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

Rust - Покерные столы, система жестов и пасхальный ивент

На днях в распоряжение пользователей survival-проекта Rust поступило очередное ежемесячное обновление, вместе с которым коллектив из Facepunch Studios добавил дополнительный контент, а также расширил геймплейные возможности своего детища.

Rust - Объявлена дата релиза игры на Xbox One и PS4

Осенью 2019 года на выставке X019 было заявлено о выпуске Rust на консоли. И вот недавно британская студия-разработчик Double Eleven объявила дату релиза игры - 21 мая. Выход запланирован на Xbox One и PS4.

Rust — При пожаре уничтожена часть европейских серверов. Данные безвозвратно утеряны

Rust - В игре появилась сеть подземного метро

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

Rust - Вскоре появятся доставка дронами и режим для новичков

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

Rust - Вышел тематический набор “Sunburn”

В начале июля для survival-проекта Rust стало доступно крупное обновление с модульными автомобилями, позволившее игрокам собирать машины своей мечты, а теперь пришла пора немного отдохнуть и насладиться летом вместе с дополнением “Sunburn”.

Rust - В игру добавили модульные автомобили

Разработчики из Facepunch Studios выпустили очередное обновление в рамках ежемесячного развития своего survival-проекта Rust. Так, ключевой особенностью июльского патча стали транспортные средства, а именно модульные автомобили.

Rust - Для игры вышло мобильное приложение

Команда из Facepunch Studios продолжает активно развивать свою популярную survival-проект Rust. Так, главным нововведением в начале этого лета стало мобильное приложение Rust+.

Обладателей мышек Bloody и A4Tech отлучили от Rust

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

Rust – Встречаем DLC с музыкальными инструментами

[X019] Rust - Анонсирован запуск игры на консолях

Студия Facepunch Studios во время ивента Inside Xbox, проводимого Microsoft, объявила, что мультиплеерная ПК игра про выживание Rust придет на консоли.

Авторы Rust анонсировали стратегию Clatter

Facepunch, создавшая Rust и Garry's Mod, анонсировала новую игру — Clatter. И это ни сурвайвал, ни песочница. Внезапно. Clatter — мультяшная тактическая игра с боями на арене, где участвуют забавные роботы и кубы с усами. Неожиданный поворот.

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

Краткая история ценностей в программировании

Чтобы материал хорошо залег в голову и сердце, неплохо кратко вспомнить, что люди хотели сделать в программировании за последние 50 лет и что в итоге у них получилось. Без обид, только личное субъективное мнение и холивар, подкрепленный 20-летним опытом разработки.

Низкоуровневые языки: C, C++


Понятно, что можно писать программу сразу в виде цифр на машинных кодах и многие этим занимались на ZX Spectrum, БК0010-01 и на PC — код получается очень быстрым :-) Но мы люди, в голову много информации не помещается, мы отвлекаемся и поэтому даже изобретение ассемблера не особо помогло — код на таком низком уровне пишется очень редко и очень метко и, скорее всего, если вы не занимаетесь разработкой драйверов, микроконтроллеров или хитрых встраиваемых систем, это в жизни не пригодится.

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

Да, у меня тоже возникают аналогии с безалкогольным пивом и резиновыми женщинами.

Scala, несомненно, большой шаг вперед, т.к. язык, конечно, получился научно-заумный и навороченный, взявший немало полезных и бесполезных вещей из мира функционального программирования. Но вот с популярностью что-то как-то не очень понятно. Однако Apache Spark действительно хорош и популярен, нечего сказать.

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

Скриптинг

  • быстро делаем решение на PHP/python/JavaScript/Node.js, запускаем в бой и начинаем решать задачи клиентов
  • обкатываем фичи, возможности, улучшаем сервисы
  • в редких случаях, по опыту, обычно не ранее, чем через несколько лет, часть таких, уже стабильных по функционалу, сервисов, переписывается на C/C++/Java/Golang/Rust

Многие, за целую карьеру разработчика, так и не приходят сюда, а вот зря. Крайне полезно понять, почему появилось ФП (функциональное программирование) и почему в некоторых областях оно так популярно.

  • мутабельные переменные
  • циклы с условиями
  • функции, создающие побочные эффекты

Системное программирование, еще в начале нулевых, реализовывало себя в основном через C/C++ (возможно, нельзя не упомянуть в этом контексте и знаменитый Forth). А мнение Линуса Торвальдса про C++ как тогда, так и сейчас не утратило своей актуальности, несмотря на попытки великого и ужасного Андрея Александреску изменить ситуацию в D (со сборщиком мусора — ну как же так, опять наступили на эти грабли).

Выход есть — Rust!

Теперь кратко обо всем по порядку.

Как же удалось отказаться от сборщика мусора?

Как добились zero-cost абстракций?

Безопасное программирование и функциональщина

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

В целом понятно, что все сложные и противоречивые концепции системного и многопоточного программирования (освобождение памяти, гонки данных) переложили на систему уникальных аффинных типов со строгими гарантиями компилятора и оно… работает. Строгая система типов и суровая алгебра логики в сочетании с умным компилятором дают вам гарантии получения безопасного/многопоточного кода, работающего со скоростью C/C++ и потребляющего так же мало ресурсов. Причем изначально никто в это не верил.

Многопоточное программирование

За счет описанных выше уникальных для языка и встроенных в компилятор возможностей владения и заимствования, не возникает проблем с порядком установки-снятия блокировок, а многопоточное программирование делается как-то легко и без сюрпризов. Если что-то не так, код просто не компилируется. Я не буду описывать детали трейтов Sync/Send, это нужно увидеть вживую, но ничего сложного и мистического не происходит: реализуете логику, если компилятор ругается, исправляете, вот и всё.

Если хочется реализовать многопоточный сетевой сервис с неблокирующими соединениями, обрабатывающий десятки тысяч сокетов одновременно почти незаметно для процессора, можно взять готовую библиотеку и за 1-2 часа реализовать самые смелые мысли по работе с futures в функционально строгом стиле. Получаем тоже самое, что внутри Node.js и python с async/await, но с гарантией строгих алгебраических типов, работающее гораздо быстрее и с на порядки меньшим потреблением ресурсов. А если результат одинаковый, зачем же платить больше?

Встроенные unit и интеграционные тесты

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

Удобный пакетный менеджер — cargo

Heap и стек

Что может быть очень непонятно

Общие принципы разработки на Rust

Поймите еще раз — чтобы овладеть технологией, нужно на ней начать писать полезный для компании код. Компилятор Rust настолько умен, что дает гарантии (на самом деле это очень важно, так не умеет делать компилятор C++) и не скомпилирует опасный/повреждающий память код, поэтому экспериментируйте сколько хотите — и код получите быстрый и безопасный и еще лучше станете программировать :-)

Детали реализации проекта

Общее ощущение — очень положительные. Еще бы, вместо нескольких железных серверов (8 ядер, 16 ГБ ОЗУ), задача стала решаться одним процессом (с десятками потоков), кушающим не более 5 ГБ ОЗУ и создающим не очень заметную нагрузку на ядра, при трафике в районе 0.5-1 гигабит.

Заключение

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

Читайте также: