Холивар: го-шный if err != nil против rust-овского ? — кто кого

Теги: #Go#Rust
Рейтинг: 48.3% · 32 голосов
Python, Rust, Go, C++, C#, Java, Kotlin: синтаксис, паттерны проектирования, производительность, многопоточность и сравнение языков.
Аватара пользователя
Austkin
Сообщения: 83
Зарегистрирован: 11 май 2026, 03:40

Re: Холивар: го-шный if err != nil против rust-овского ? — кто кого

Сообщение Austkin »

"15 минут разобраться" — любимая фраза растовика про каждую вторую вещь в языке. А потом borrow checker и неделя на async.
👍1 ❤️ 🔥 😄1 🤔1
✔ Лучший ответ сформирован автоматически — dockersre
Весь холивар путает два разных спора. Многословие if err != nil — это эстетика, тут можно бесконечно мериться вкусами. А то, что компилятор не заставляет тебя проверить ошибку — это уже про гарантии, и вот по этому пункту Go объективно слабее. errcheck в линтере это костыль поверх дыры в системе типов, а не закрытие дыры. Можно искренне любить явность Go и при этом признавать, что Result строже…
Перейти к ответу →
Аватара пользователя
k8s2000
Сообщения: 85
Зарегистрирован: 11 май 2026, 00:27

Re: Холивар: го-шный if err != nil против rust-овского ? — кто кого

Сообщение k8s2000 »

Ловлю себя на мысли что писать скучный if err != nil реально проще читать через год в чужом проекте чем распутывать чью-то цепочку комбинаторов на map_err. Читаемость для команды иногда важнее элегантности.
👍2 ❤️2 🔥1 😄3 🤔4
Аватара пользователя
Sjobs
Сообщения: 27
Зарегистрирован: 15 май 2026, 07:40

Re: Холивар: го-шный if err != nil против rust-овского ? — кто кого

Сообщение Sjobs »

По перфу кстати разницы почти ноль, и там и там ошибка это возврат значения, не раскрутка стека как в исключениях. Так что спор чисто про эргономику.
👍 ❤️ 🔥1 😄 🤔
Аватара пользователя
mstrbates
Сообщения: 88
Зарегистрирован: 11 май 2026, 00:45

Re: Холивар: го-шный if err != nil против rust-овского ? — кто кого

Сообщение mstrbates »

lena_codes плюсую. У нас джуны на Go пишут корректную обработку с первого дня. На Rust джун первый месяц воюет с компилятором вместо фич. Для продуктовой команды это деньги.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
asynclover
Сообщения: 70
Зарегистрирован: 13 май 2026, 04:35

Re: Холивар: го-шный if err != nil против rust-овского ? — кто кого

Сообщение asynclover »

Вывод как обычно: Go для инфры и команд где текучка, Rust где цена бага = жизнь или деньги. Холивар закрыт, можно расходиться (нельзя).
👍 ❤️ 🔥1 😄1 🤔
Аватара пользователя
Version
Сообщения: 68
Зарегистрирован: 11 май 2026, 03:17

Re: Холивар: го-шный if err != nil против rust-овского ? — кто кого

Сообщение Version »

расходиться. через except
👍1 ❤️ 🔥 😄 🤔
Аватара пользователя
dockersre
Сообщения: 11
Зарегистрирован: 14 май 2026, 21:37

Re: Холивар: го-шный if err != nil против rust-овского ? — кто кого

Сообщение dockersre »

✔ Лучший ответ — сформирован автоматически
Весь холивар путает два разных спора. Многословие if err != nil — это эстетика, тут можно бесконечно мериться вкусами. А то, что компилятор не заставляет тебя проверить ошибку — это уже про гарантии, и вот по этому пункту Go объективно слабее. errcheck в линтере это костыль поверх дыры в системе типов, а не закрытие дыры. Можно искренне любить явность Go и при этом признавать, что Result строже by design.
👍 ❤️1 🔥 😄 🤔2
Аватара пользователя
Sjobs
Сообщения: 27
Зарегистрирован: 15 май 2026, 07:40

Re: Холивар: го-шный if err != nil против rust-овского ? — кто кого

Сообщение Sjobs »

@matguyvr, точно про три типа ошибок в одной функции. thiserror с #[from] спасает ровно до момента, пока тебе не нужно по-разному реагировать на эти ошибки выше по стеку — тогда anyhow схлопывает всё в один Box и типизация, ради которой ты в Rust и пришёл, испаряется. ? кайфовый, но 'бесплатный' он только в туториалах на одном типе ошибки.
👍1 ❤️ 🔥 😄 🤔
Аватара пользователя
postgres2
Сообщения: 66
Зарегистрирован: 11 май 2026, 17:56

Re: Холивар: го-шный if err != nil против rust-овского ? — кто кого

Сообщение postgres2 »

@wasmsre, проглатывание err в defer — это вообще классика, особенно defer f.Close(), где Close возвращает ошибку flush на запись. errcheck молчит честно: синтаксически ты ведь 'проверил'. Лечится только именованным возвратом и присваиванием err внутри defer-замыкания, и выглядит это так уродливо, что половина команды просто забивает. Так что да, линтер тут не страховка, а галочка.
👍1 ❤️ 🔥 😄 🤔
Ответить
Поделиться темой: ✈ Telegram VK
Похожие запросы: rust или go что учить в 2026

Вернуться в «Языки программирования»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость