Комментарии 23
Всё так. Пишем сейчас CRUD на расте, кайфуем от точного моделирования данных и отсутствия багов, но местами натыкаемся на сырость библиотек
почему не на java или c#?
Как всё прекрасно. Как в мультике про корову.
Для меня самая большая проблема с растом это дебаг. Я использую ВСкод на винде и пробовал оба дебагера мракософтовский оказался по лучше, но все равно ставишь бряку в каком нибудь мод.рс и он останавливается во всех зависимостях которые выполняют код в мод.рс в этой строке по номеру. Это какой сюр конечно. Посмотреть строку целиком длиннее какой то фиксированном величины не возможно, а у меня много скульных квериков которые генерируется, а не константы. Есть интеграционный тест, который тестируют асинхронщину, запускаю под отладчиком никаких проблем, запускаю через карго где то паникует в токио, но у меня паники отлавливаются на границе с ффи и тест все равно зелёный, а почему оно паникует не понятно. Пропустить код зависимостей при пошаговом исполнении нельзя, а то рискуешь все начинать сначала т.к. твой код тоже пропускается. Значение констант сгенерированных макросами не отображается ни в айдэе ни в отладчике(он вообще ни про какие константы не в курсе). Многие переменные "оптимизированны" даже в дебажной/дев сборке и увидеть значение в отладчике не получается.
Короче по сравнению с отладкой в настоящий студии это конечно испытание времён 2000 годов, а то и раньше.
Так почему RustRover не используете или плагин к IntelliJ IDEA и CLion ?
Я когда выбирал айдэе смотрел на льва и на вскот выбор пал на кот, т.к. он развивается динамичней и уже на тот момент был лучше льва, а ровера ещё не было. Ровер в бэте, а потом будет платным, а мне надо что бы оно прям щас работало лучше чем в коте, а это скорее всего будет в релизе уже за деньги. Но если вы пробовали и можете сравнить с котом, то я буду благодарен такому сравнению/рекомендации с подробностями.
Оптимизированные переменные в дебаге у меня тоже были, но проблема решаемая. Точно не помню уже ибо под виндой не сижу, но:
Для дебага в VSCode надо обязательно использовать расширение LLDB, а не обычное плюсовое.
Если первый пункт не поможет, то попробуй бекэнд компилятор сменить. Однако насколько помню, LLDB + msvc должны отлично работать.
Еще все-же ООП полноценное - это важно для многих сценариев, особенно когда дело касается GUI. Как бы было модное веяние - что ООП суть тлен, не нужно и т.д. Однако большинство промышленных языков высокого уровня, уровнем повыше C, имеют ООП в арсенале.
А чего именно не хватает расту для реализации гуя в стиле ооп?
А чего именно не хватает расту для реализации гуя в стиле ооп?
В GUI часто несколько уровней наследования с использованием полиморфизма - когда большая часть методов не изменяются (а некоторые изменяются и иногда вызывают базовые методы внутри себя) - а это в Rust очень многословно нужно записывать.
Зачем лишать себя такого удобного инструмента как ООП? Да, можно без него - но это банально не удобно.
Ну я написал свой простенький макрос инхерит + естественно трэйты правда у меня 1 уровень наследования (но макросу пофиг сколько уровней), разницы с с++ по количеству кода/многословности не наблюдаю. Конечно мой макрос не покрывает все возможности с++ наследования, но обычное одиночное наследование вроде работает, а это примерно 146% потребностей всех гуи библиотек на с++ с которыми я работал.
И то я написал свой макрос т.к. мне надо в ффи передавать наследников как указатели на базовые классы, без этого требования я б его не писал - и так норм.
В react экосистеме вполне себе без наследования получилось обойтись не потеряв в эргономике, на rust в целом потихоньку развиваются react like фреймворки, да и с альтернативной моделью тоже, например slint который пишут люди участвовавшие в разработке qt
Какое главное событие в моей жизни (когда Раст займёт место С++)?
Главное событие в твоей жизни у тебя впереди (ждём этого уже много лет)
Большое спасибо за статью, наконец-то кто-то написал статью про Rust без подтекста:
X язык "какуля" потому что он не Rust. И приятно увидеть результаты графические с объяснением.
Народ, а есть для раста что-нибудь удобное, чтоб формочки мышкой шлёпать, как в си-билдере?
Сообщество все ещё рекомендует писать frontend при помощи web-фрейморков, backend на Rust. При таком подходе можно и в редакторе формочки рисовать.
Если хотите чистый Rust - смотрите https://areweguiyet.com/ . Пока что ситуация с gui не радует, о редакторах форм речи даже не идёт. Разве что можно попробовать поискать привязки к библиотекам на других языках.
Взгляните на Slint. Написан на Rust, gui-редактора нет, но есть удобное расширение для vscode, с предпросмотром почти в реальном времени.

Чем хорош Rust для продакшена?