Перспективы Rust-а.
От: JacobR  
Дата: 29.10.22 19:16
Оценка:
Коллеги привет,

А есть ли те кто пишет в продакшене на Rust-е. Мне где то уже с год в линкидине (хотя у меня основной язык С/С++ немного asm и C#/Python для всяких тестов) рекрутеры периодически предлагают рассмотреть вакансию на Rust-e и пообщался с одним из фейсбука, он вообще сказал что у них какие либо новые проекты системного/прикладного уровня начинают на Rust.
Ради интереса прослушал crush course на ютубе, позапускал примеры и по первому впечатлению Rust вполне способен заменить С и С++ для системных (ОС, драйвера) задач и прикладных (сервисы, демоны, просто какие-то утилиты и пр) при условии нормальных оптимизирующих компиляторов под разные платформы. Но перед тем как погружаться, хотел бы послушать людей из индустрии, насколько реально перспективен Rust.
Re: Перспективы Rust-а.
От: AmSpb  
Дата: 29.10.22 21:28
Оценка:
Здравствуйте, JacobR, Вы писали:

JR>Коллеги привет,


JR>А есть ли те кто пишет в продакшене на Rust-е. Мне где то уже с год в линкидине (хотя у меня основной язык С/С++ немного asm и C#/Python для всяких тестов) рекрутеры периодически предлагают рассмотреть вакансию на Rust-e и пообщался с одним из фейсбука, он вообще сказал что у них какие либо новые проекты системного/прикладного уровня начинают на Rust.

JR>Ради интереса прослушал crush course на ютубе, позапускал примеры и по первому впечатлению Rust вполне способен заменить С и С++ для системных (ОС, драйвера) задач и прикладных (сервисы, демоны, просто какие-то утилиты и пр) при условии нормальных оптимизирующих компиляторов под разные платформы. Но перед тем как погружаться, хотел бы послушать людей из индустрии, насколько реально перспективен Rust.


слишком уж его сильно расскручивают, хайп поднимают, но как по мне последние стандарты С++ вполне годные и являются неким симбиозом Python и С++
Re: Перспективы Rust-а.
От: DiPaolo Россия  
Дата: 30.10.22 02:28
Оценка:
JR>Ради интереса прослушал crush course на ютубе, позапускал примеры и по первому впечатлению Rust вполне способен заменить С и С++ для системных (ОС, драйвера) задач и прикладных (сервисы, демоны, просто какие-то утилиты и пр) при условии нормальных оптимизирующих компиляторов под разные платформы. Но перед тем как погружаться, хотел бы послушать людей из индустрии, насколько реально перспективен Rust.

Главный вопрос: зачем?

Несколько моих мыслей по пунктам:

- на мой взгляд, хайп вокруг Раста среди фронтендеров и бэкендеров, которые крайне далеки от Си и плюсов
- у многих компаний есть огромное количество бойлерплейта и коммон-кода для их продуктов, написанных и, где-то, оптимизированных под Си с плюсами
- как перейти на Раст даже на новый проект я не представляю:
    * это надо переписывать все эти библиотеки и коммон-код
    * поддерживать долгие годы (если речь о компании 5-10-20 и более лет с большой базой кода) два набора библиотек
    * они обязательно разъедутся по функционалу
    * тестирование х2 а то и х3
    * надо будет увеличить мощности: для тестов, для сборки под два языка, на ФОТ на новых тестировщиков, новых растров набирать тоже дорого
    * уйдет куча ресурсов ака денег
    * необходимо это все менеджерить в рамках компании в течение нескольких лет
    * выгода неизвестна
- из этого следует, что подтверждается вакансиями, что в основном на Растет пишут блокчейн и крипту: то есть области, где пишут с нуля в стартапах


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

Я вот для себя пока не увидел, где я в своих проектах мог бы его применить. Общался с бывшими коллегами (компании ок 30 лет, очень много кода на C/C++/ASM), мол, не пробовали ли Раст. Тот же ответ: нет. А зачем?
Патриот здравого смысла
Re[2]: Перспективы Rust-а.
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 30.10.22 03:04
Оценка: +1
Крупные компании всегда поддерживают все имеющиеся системы программирования.
Java и C# в одной компании это нормально
Re: Перспективы Rust-а.
От: Pzz Россия https://github.com/alexpevzner
Дата: 30.10.22 12:01
Оценка: 5 (1)
Здравствуйте, JacobR, Вы писали:

JR>А есть ли те кто пишет в продакшене на Rust-е. Мне где то уже с год в линкидине (хотя у меня основной язык С/С++ немного asm и C#/Python для всяких тестов) рекрутеры периодически предлагают рассмотреть вакансию на Rust-e и пообщался с одним из фейсбука, он вообще сказал что у них какие либо новые проекты системного/прикладного уровня начинают на Rust.


У нас (Лаборатория Касперского, KasperskyOS) возможно начнут. Я хоть сам Rust и не люблю, но если я пойму, зачем он нам нужен, я прям могу попробовать подтолкнуть даже. Во всяком случае, сам тулчейн под нашу систему недавно уже заработал.
Re[2]: Перспективы Rust-а.
От: JacobR  
Дата: 30.10.22 12:24
Оценка:
Здравствуйте, DiPaolo, Вы писали:

DP>И вот получается, что Раст подойдет для маленьких команд вроде стартапов, где нет никакого уже написанного кода, где неизвестно, выстрелит или нет, нечего терять. Ну и конечное для пет-проджектов.


DP>Я вот для себя пока не увидел, где я в своих проектах мог бы его применить. Общался с бывшими коллегами (компании ок 30 лет, очень много кода на C/C++/ASM), мол, не пробовали ли Раст. Тот же ответ: нет. А зачем?


Переписывать существующие проекты на Rust я тоже смыла не вижу, начинать новые на мой взгляд можно, опять же при условии, что компилятор Rust генерирует бинарный код не хуже, чем компилятор С/С++.
Но почестному я не вижу прям такого большого преимущества Rust перед С++. По сравнению с С согласен, тут Rust выглядит “поинтереснее”, все-таки писать на С продакшен, так что бы этот код можно было относительно легко поддерживать, развивать, легко вводить новых людей не просто. Можно посмотреть на zabbix отличный продукт их агент написан на чистом С и, например, код для работы с базами данных:

https://github.com/zabbix/zabbix/blob/master/src/libs/zbxdb/db.c

не просто добавить поддержку новой базы, для поддержки, добавления новых фичь, нужны весьма квалифицированные Сишники которых все меньше и меньше на рынке. На С++ или Rust это все можно написать намного “лаконичнее”. Из того что я прочитал (но пока не услышал подтверждения от людей из индустрии), на Rust код легко переноситься между платформами, условно говоря везде где есть компилятор Rust достаточно “cargo build” и проект собрался, плюс упирают на “memory safety” и пр.
Re[2]: Перспективы Rust-а.
От: JacobR  
Дата: 30.10.22 12:27
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>У нас (Лаборатория Касперского, KasperskyOS) возможно начнут. Я хоть сам Rust и не люблю, но если я пойму, зачем он нам нужен, я прям могу попробовать подтолкнуть даже. Во всяком случае, сам тулчейн под нашу систему недавно уже заработал.


А какая если не секрет была озвучена мотивация к переходу/использованию Rust?
Re[3]: Перспективы Rust-а.
От: Pzz Россия https://github.com/alexpevzner
Дата: 30.10.22 12:34
Оценка:
Здравствуйте, JacobR, Вы писали:

Pzz>>У нас (Лаборатория Касперского, KasperskyOS) возможно начнут. Я хоть сам Rust и не люблю, но если я пойму, зачем он нам нужен, я прям могу попробовать подтолкнуть даже. Во всяком случае, сам тулчейн под нашу систему недавно уже заработал.


JR>А какая если не секрет была озвучена мотивация к переходу/использованию Rust?


Ну перехода-то пока и не было, был порт компилятора. Тут мотивация очевидна, наша платформа должна поддерживать все популярные языки.

А так, у нас же микроядерная операционная система, заточенная под безопасность. Почти все — в user space, распределенное по небольшим взаимойдействиющим процессам. Даже драйвера выделены в отдельные процессы. Если какие-то из этих процессов будут написана на расте, это совершенно ничему не противоречит. А то, что раст считается "безопасным" языком, нам на руку.
Re[3]: Перспективы Rust-а.
От: Anton Batenev Россия https://github.com/abbat
Дата: 30.10.22 14:09
Оценка: +1
Здравствуйте, JacobR, Вы писали:

JR> https://github.com/zabbix/zabbix/blob/master/src/libs/zbxdb/db.c

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

Прекрасный понятный код ИМХО — добавить новую базу раз плюнуть должно быть (сесть да сделать, какая-то особая квалификация не требуется). Да, получится немного "многословно", но для расширения конкретно zabbix-agent это вообще не должно быть проблемой (написано раз, работает десятилетия).
Re[3]: Перспективы Rust-а.
От: DiPaolo Россия  
Дата: 30.10.22 17:00
Оценка:
JR>Но почестному я не вижу прям такого большого преимущества Rust перед С++. По сравнению с С согласен, тут Rust выглядит “поинтереснее”, все-таки писать на С продакшен, так что бы этот код можно было относительно легко поддерживать, развивать, легко вводить новых людей не просто.

+++

JR>Из того что я прочитал (но пока не услышал подтверждения от людей из индустрии), на Rust код легко переноситься между платформами, условно говоря везде где есть компилятор Rust достаточно “cargo build” и проект собрался, плюс упирают на “memory safety” и пр.


Плюсы — то же самое, по личному опыту многих проектов говорю. Просто некоторые плюсовики — они только заточены под винду. Тогда да, могут быть проблемы. А если чел писал под разные платформы, то он сразу все учтет и будет писать посиксовский код, либо же юзать либы, которые всю кроссплатформенность делают за него.
Патриот здравого смысла
Re[4]: Перспективы Rust-а.
От: JacobR  
Дата: 30.10.22 19:02
Оценка: +1
Здравствуйте, Anton Batenev, Вы писали:


AB>Прекрасный понятный код ИМХО — добавить новую базу раз плюнуть должно быть (сесть да сделать, какая-то особая квалификация не требуется). Да, получится немного "многословно", но для расширения конкретно zabbix-agent это вообще не должно быть проблемой (написано раз, работает десятилетия).


Код отличный, и вообще во всем продукте zabbix хороший структурированный и читабельный код, но это не отменяет того что на С придется делать больше трудозатрат и вероятность выше внести баг, допустить утечку памяти, ресурсов и пр.
Re[4]: Перспективы Rust-а.
От: JacobR  
Дата: 30.10.22 19:04
Оценка: +1
Здравствуйте, DiPaolo, Вы писали:

DP>Плюсы — то же самое, по личному опыту многих проектов говорю. Просто некоторые плюсовики — они только заточены под винду. Тогда да, могут быть проблемы. А если чел писал под разные платформы, то он сразу все учтет и будет писать посиксовский код, либо же юзать либы, которые всю кроссплатформенность делают за него.


Да в плюсах есть такое если изначально продукт не планировался кроссплатформенным и особенно если первые версии были под Windows и собирались в Visual Studio плюс сам проект в TFS.
Re: Мы пишем
От: johny5 Новая Зеландия
Дата: 31.10.22 10:50
Оценка: 7 (2)
Здравствуйте, JacobR, Вы писали:

Мы пишем, пытаемся точнее, в процессе освоения.
Я вот тут много спамил про него.
http://rsdn.org/forum/flame.comp/8366608.1
Автор: johny5
Дата: 22.09.22


Язык выглядит посовременнее чем С++, легче с внешними либами, получше в плане безопасности и т.д. и т.п..
Но это не очередной язычок с похожим синтаксисом, чуваки пытаются сделать рывок к ещё более верифицируемому коду, сравнимый с переходом от языков с динамической типизацией к статической. Новые грани это 100%я потокобезопасность, впринципе отсутствие data race даже в однопоточном коде. Невозможность наступить на null pointer access, неинициализированные объекты заменены на Option<>. Вообще повредить память (в рамках safe) не получится, но это не новое, в managed языках типа C# это давно есть.

Мы пытаемся использовать его как быстрый back-end язык, микросервисы. Почему микросервисы — мне кажется язык пока не готов для крупных проектов-монолитов — абстракций нехватает.
Язык мне лично он очень нравится, хотя частенько бывает ходишь кругами вокруг какой то совсем простой проблемы. Меняет то как смотришь на С++.
Отредактировано 31.10.2022 11:13 johny5 . Предыдущая версия .
Re: Перспективы Rust-а.
От: vsb Казахстан  
Дата: 31.10.22 11:06
Оценка: +1
В целом с одной стороны в теории я фанат Rust-а, с другой стороны сам пока не нашёл, где его применить в работе. Вот скоро буду делать девайс. Часть это микроконтролер. Там будет С. Rust в теории можно, но на практике я слишком плохо знаю предметную область, мне на С-то там будет работы полно, а на Rust её будет вдвое больше. Часть это линукс. В нём я буду писать драйвер для ядра. Там будет С по той же причине. Часть будет интерфейс. Это будет electron ну и сам интерфейс фронтэндерам отдам. Какие-то native модули допишу, там вроде тоже С будет, чтобы из JS дергать чего надо нативно. В теории везде можно Rust применить, на практике я такую свинью работодателю подкладывать не буду, тут сишника-то найти постараться надо, а уж растамана точно не найдут никогда.

Подозреваю, что у многих похожая ситуация.

Но это не про перспективы, а про "здесь и сейчас", конечно. Если посмотреть в гипотетический 2030 год, чтобы там был официальный SDK для STM32 на расте, половину ядра уже переписали, то там, наверное, я бы на С и не смотрел.
Отредактировано 31.10.2022 11:07 vsb . Предыдущая версия .
Re[2]: Перспективы Rust-а.
От: CEMb  
Дата: 31.10.22 11:20
Оценка:
Здравствуйте, AmSpb, Вы писали:

AS>слишком уж его сильно расскручивают, хайп поднимают, но как по мне последние стандарты С++ вполне годные и являются неким симбиозом Python и С++


Последние — это какие? Тут интересна тема про симбиоз Python и C++.
Re[2]: Перспективы Rust-а.
От: johny5 Новая Зеландия
Дата: 31.10.22 11:23
Оценка: +1
Здравствуйте, vsb, Вы писали:

vsb>Но это не про перспективы, а про "здесь и сейчас", конечно. Если посмотреть в гипотетический 2030 год, чтобы там был официальный SDK для STM32 на расте, половину ядра уже переписали, то там, наверное, я бы на С и не смотрел.


Мне не кажется что Rust когда либо вытеснит С++. С++ хорошо масштабируется и быстро кодится, пусть с ошибками и крэшами но для некритических (коих большинство, не все ядерными реакторами управляют) приложений сгодится. Rust да, утилитки пишутся со свистом, всё таки доступность огромного количества либ "на кончиках пальцев" и компилируемость под все платформы делает своё дело. Не знаю про системное программирование, мооожет быть Rust там заблестит — всё таки гарантии стабильности для железа важны как никогда. Но в этой области я профан — я больше щупал асинхронное и многопоточное, что в Rust просто шоколад.

А, ну вот, многоядерные приложения в С++ действительно писать сложно. Может Rust и тут пойдёт вверх, но врядли когда либо вытеснит С++.
Re[3]: Перспективы Rust-а.
От: johny5 Новая Зеландия
Дата: 31.10.22 11:28
Оценка:
Здравствуйте, JacobR, Вы писали:

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


Как раз переписываем питоновские проекты на Rust. Увеличение производительности в 10-100 раз при той же скорости написания, это уже не шутки.
Rust использует back-end clang-а для генерации кода, так что все С++ оптимизации кодогенерации присутствуют.
Re[3]: Перспективы Rust-а.
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 31.10.22 11:52
Оценка:
Здравствуйте, CEMb, Вы писали:

CEM>Последние — это какие? Тут интересна тема про симбиоз Python и C++.


Лично мне симбиоз не очень нравится, все эти биндинги (я использовал pybind11). API между ними проще делать на С, чем на С++
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.