Есть ли статьи, которые приводят наглядные примеры того, как код на rust превосходит код на других языках?

в чем заключается смысл переписывания чего бы то ни было на языке rust? Особенно там, где был использован язык Си или С++. Мне бы хотелось видеть какое-то сравнение, что вот так стало сильно лучше и безопаснее, а вот было так написано изначально на оригинальном языке. То бишь "было - стало". В основном находил просто абстрактные сравнения, что-то вроде "вот у нас тут ownership", но в то же время "ну, нам еще нужен подсчет ссылок" и "ну тут все-равно unsafe". И опять таки, в подобных объяснениях обычно приводят какие-то примитивные примеры, хотелось бы найти что-то более емкое, которое сразу раскрывает все карты.
  • Вопрос задан
  • 773 просмотра
Пригласить эксперта
Ответы на вопрос 5
vabka
@vabka Куратор тега Rust

Особенно там, где был использован язык Си или С++

(если исключить memory safety и fearless concurrency)
1. Хороших плюсовиков найти всё сложнее, ибо молодые разработчики часто хотят что-то более современное/простое/приятное.
2. Переход с какого-нибудь более высокоуровнего языка на Rust гораздо легче, чем на C++
3. DX у Rust на порядо лучше.
4. Код на Rust на порядок более выразительный, чем код на Си

За счёт этого поддержка кодовой базы на Rust заметно дешевле выходит

Например вот что Тинькофф пишет:

Наш Процессинговый Центр занимается разработкой финансовых систем, критичных к даунтайму и времени обработки. Изначально мы делали все свои продукты либо на чистом Си, либо на плюсах (C++14), однако пару лет назад мы переписали большой кусок нашего бэкенда на Rust, и нам настолько понравилось, что теперь все наши новые процессинговые сервисы пишутся на нём.



Мне бы хотелось видеть какое-то сравнение, что вот так стало сильно лучше и безопаснее, а вот было так написано изначально на оригинальном языке

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


ну тут все-равно unsafe

В проектах на Rust он явный и от него можно избавиться, завернув в безопасную обёртку, которая будет гарантировать корректную работу с памятью и ffi.
В проектах на C++ у тебя по факту всё является unsafe.

ну, нам еще нужен подсчет ссылок

В плюсах тоже активно пользуются подсчётом ссылок и всякими умными указателями, если по коду не очевидно, когда можно будет освободить память
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
В топике непонятно что автор имеет в виду под превосходством.

Я думаю что если заказать статьи разным техно-писателям то они напишут каждый про свое. Один
может писать про удобство процесса разработки (и это важно). Другой напишет про безопасность
по memory safety. Третий может напишет про ФП и обобщенное программирование и может
быть про автоматическое доказательство каких-то свойств которые есть у софта.

Могу констатировать в живых примерах что ядро линукс уже содержит 55 исходников на rust (по состоянию
на 5/13/2023) и следовательно кому-то это надо. Кто-то заказал внедрение нового компиллятора.
Видимо язык С уже не устраивал. Я пытался просмотреть эти сорцы но моих знаний Rust и Linux kernel
разработки пока не хватает чтобы дать хоть какой-то внятный комментарий по поводу. Ну раз коммитеры
вкоммитили значит все таки было очень нужно.

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

Про Mozilla тоже можно посмотреть. Возможно там найдуться примеры где было на С++ и стало на Rust.
Ведь это по сути была главная причина возникновения самого языка Rust.
Ответ написан
Комментировать
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Амбасодоры любого языка вам вольют в уши то что они хотят.

По факту С++ круче руста просто потому что на с++ можно сделать практически все.
Проблема с С++ в том что нужно больше проверок или лучше спецы
Ответ написан
@AHMED_RAPIRA
Надо скорее не статьи, а исследования искать, по критериям своего "превосходит". Такие, скучные pdf-ки с графиками и формулами, стирающие глаза в кровь, их можно найти на: ресерчгейт киберленинка и тд

Так же можно поискать инфу в самом репозитории Rust по issues

Тут можно посмотреть что во что компилируется и посравнивать:
https://godbolt.org/
Ответ написан
Комментировать
EgoRusMarch
@EgoRusMarch
C++ Developer
Rust - очень неплохой язык. Он может не уступать в скорости С++. Ключевое слово здесь: МОЖЕТ. Возможностей у него объективно меньше. Он не бытрее C++, всё это чушь. Вы поймите, C++ - это язык, на котором можно написать практически всё, при этом он максимально приближен (на сколько это возможно для используемого уровня абстракции) к устройству CPU. Т.е. быстрее него априори не может быть языков. Равные могут. Если вы будете писать на asm - гарантированно получите профит =) Ассемблерные вставки в плюсах есть. Если что, это шутка.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы