Обновить
8

Пользователь

1
Подписчики
Отправить сообщение

Что есть сложность? На расте писать легко в сравнении с C

Вы продали мне Claude Code!

Наброшу немного за Rust

1)

Ошибки через типы - !T

В Rust еще круче есть - Result<T>: https://doc.rust-lang.org/book/ch09-02-recoverable-errors-with-result.html#recoverable-errors-with-result

2)

Кросс-компиляция из коробки - zig build -Dtarget=x86_64-windows без тулчейнов

В Rust: https://crates.io/crates/cargo-zigbuild

3)

Маленький проект собирается за секунду

В Rust - за доли секунд

4)

Rust - это безопасность ценой сложности

Это ложно. Корректный код на Rust в миллиарды раз проще писать, чем на C, Zig и, даже, Go. Проверено

5)

1089 строк на Zig

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

6)

Ошибки компилятора длинные

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

7)

Стоит ли переходить на Zig в 2026?

Почти в любом случае - нет, железобетонно. Нужен язык, использовать который можно без боли, быстрый, без gc - Rust, без серьезных альтернатив

Рекомендую, если целью является обучиться крутому инструменту production-ready и стать востребованным разработчиком, изучить Rust и/или Go. C - deprecated, Zig - тупик.

ИМХО

PS: вспомнилось мне интервью на youtube-канале ThePrimeTime с Алексеем Кладовым о Zig и его фичах. Зашла речь про то, что Алексею понадобилось быстренько написать небольшой инструмент для работы с большим строковым файлом. Он ответил, что выбрал Rust. Очень показательно )
https://www.youtube.com/watch?v=V8Bg55lTUCw&t=3701s

Сколько же неправды вы написали )
0) Rust или Go - вкусовщина (и не только). У го порог входа может быть ниже, но когда (вдруг) приходится что-то оптимизировать или делать что-то более сложное, оказывается что "простота" (я бы сказал "кастрированность") языка начинает совать палки в колеса. И тут начинается генерация костылей за костылями. Да и с безопасностью (отсутствие null safety или гонки в многопоточке, к пример) в Go сильно хуже, прям отвратительно, 10 шагов назад. Я много прогал на Го и кайфа не получал. Имхо

1) "эльфийский по типу плюсов" - не знаете, что пишете ) Плюсы в разы сложнее и огромней. Раст - скорее Си 21 века

2) Раст без сторонних крейтов зависим только от системных библиотек операционной системы (если собирать с помощью musl, то и от этих зависимостей получится избавиться). Среди крейтов сторонних есть те, которые зависят от сторонних либ в системе (openssl, например), но это исключение из правил и встречается крайне редко. Но такое и на go бывает (sqlite). Подход, как и у Go - статика по умолчанию. Тот же crate для разработки под esp32 от espressif около года или типа того не зависит от сторонних сишных либ.

Как же Rust хорош

Для ffi с C++ лучше использовать cxx, потому что умеет конвертировать плюсовые исключения в растовый Result. В случае с bindgen, исключение, которые уходит в Раст, - уб. Он больше для связки с Си подходит

Го страшен своей обработкой ошибок, занимающей больше места, чем основной код. Этого уже достаточно, чтобы сказать, что на расте код красивей

Асинхронные методы в трейтах пока не поддерживаются в стабильной версии Rust.

Стабилизировали еще в конце прошлого года

Нет, меня все устраивает: не пишу на плюсах )

А теперь представим систему без поддержки атомиков (да, такие существуют). С Раст понятно - Rc, а как на плюсах?

Разобраться в расте один раз и без боли читать/писать, получая удовольствие, того стоит

Почему нет, если годная технология и хочется популяризировать?

Например, что поломали?

В Раст возникают сложности, когда пишешь код с ошибками (например, пытаешься шарить потоконебезопасную переменную между тредами). В си/++, действительно, в этом плане проще.

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

Очень легко: write значение указателя на данные в программе на Раст в файл устройства (/dev), драйвер может что ему угодно по этому указателю сделать. Вот и уб без unsafe. С таким лично столкнулся, когда драйвер по указателю менял структуру в программе на расте объявленой как немутабельная (без mut), что в расте считается уб

Информация

В рейтинге
5 064-й
Зарегистрирован
Активность

Специализация

Десктоп разработчик, Бэкенд разработчик
Средний