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

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

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

Сообщение Farkle »

Опять читаю тред где растовики ноют что в Go на каждой второй строчке if err != nil. Народ, это фича, а не баг. Я открываю функцию и сразу вижу где она может упасть, без магии. За 4 года на Go ни разу не пожалел.
👍 ❤️2 🔥 😄 🤔
✔ Лучший ответ сформирован автоматически — dockersre
Весь холивар путает два разных спора. Многословие if err != nil — это эстетика, тут можно бесконечно мериться вкусами. А то, что компилятор не заставляет тебя проверить ошибку — это уже про гарантии, и вот по этому пункту Go объективно слабее. errcheck в линтере это костыль поверх дыры в системе типов, а не закрытие дыры. Можно искренне любить явность Go и при этом признавать, что Result строже…
Перейти к ответу →
Аватара пользователя
rabbit8
Сообщения: 41
Зарегистрирован: 13 май 2026, 08:48

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

Сообщение rabbit8 »

Видеть где может упасть это хорошо. Плохо когда ты забыл проверить err и компилятор тебе ничего не сказал. В Rust Result<T,E> ты физически не достанешь значение не разобравшись с ошибкой. Это не вкусовщина, это разные гарантии.
👍5 ❤️ 🔥1 😄 🤔1
Аватара пользователя
kernel_veteran
Сообщения: 63
Зарегистрирован: 11 май 2026, 06:09

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

Сообщение kernel_veteran »

errcheck в линтере ловит это на ура, у нас в CI стоит, не пройдёт MR с проигнориным err.
👍 ❤️ 🔥 😄 🤔1
Аватара пользователя
wasmsre
Сообщения: 13
Зарегистрирован: 11 май 2026, 03:17

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

Сообщение wasmsre »

errcheck ловит когда ты вообще проигнорил. Не ловит когда ты проверил не ту ошибку или вернул err не обернув. Я лично три раза за прошлый год дебажил прод где err проглатывался внутри defer. Линтер молчал.
👍4 ❤️1 🔥3 😄 🤔2
Аватара пользователя
jwmaiden
Сообщения: 8
Зарегистрирован: 11 май 2026, 09:04

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

Сообщение jwmaiden »

сижу со стороны Python и потягиваю чаёк, у вас тут exceptions головного мозга наоборот
👍1 ❤️ 🔥1 😄 🤔1
Аватара пользователя
vlad1
Сообщения: 12
Зарегистрирован: 11 май 2026, 20:16

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

Сообщение vlad1 »

anton_py у тебя try/except который ловит всё подряд и роняет прод когда ты поймал не то. Не начинай.
👍1 ❤️ 🔥 😄 🤔
Аватара пользователя
cordoba
Сообщения: 14
Зарегистрирован: 16 май 2026, 05:44

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

Сообщение cordoba »

Справедливости ради, в Go 1.13+ есть errors.Is/As и %w для оборачивания. Кто пишет на errors.New и потом strings.Contains по тексту ошибки — тех на мороз. Большинство жалоб на Go error handling это жалобы на код 2016 года.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
SparkMain
Сообщения: 28
Зарегистрирован: 11 май 2026, 00:57

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

Сообщение SparkMain »

А я помню как Go-команда зарубила try() предложение в 2019 и народ бомбил полгода. До сих пор нет нормального синтаксиса, и не будет. Россер сказал verbose это by design.
👍1 ❤️ 🔥 😄 🤔
Аватара пользователя
matguyvr
Сообщения: 65
Зарегистрирован: 14 май 2026, 08:48

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

Сообщение matguyvr »

У меня сервис на Rust, и честно — ? оператор это кайф пока ошибки одного типа. Как только в одной функции три разных Error, начинается ад с From impl или anyhow/thiserror. Тоже не бесплатно.
👍1 ❤️ 🔥 😄 🤔
Аватара пользователя
Version
Сообщения: 68
Зарегистрирован: 11 май 2026, 03:17

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

Сообщение Version »

thiserror для библиотек, anyhow для приложений, это устоявшийся паттерн. 15 минут разобраться и забыть. Не сравнить с ручным оборачиванием каждой строки в Go.
👍 ❤️ 🔥2 😄 🤔1
Ответить
Поделиться темой: ✈ Telegram VK
Похожие запросы: rust или go что учить в 2026

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

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

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