TGViewer
Cross Join - канал о разработке Cross Join - канал о разработке @crossjoin · 3.81K subscribers
Post #494 2.8K
Go отказывается от улучшения синтаксиса обработки ошибок

Команда разработчиков языка программирования Go приняла решение: они прекращают попытки изменить синтаксис для обработки ошибок. Об этом сообщил Роберт Грисемер в официальном блоге проекта.

Проблема, которую не смогли решить

Многословность обработки ошибок в Go — это главная жалоба разработчиков уже много лет. Типичный код выглядит так:


x, err := call()
if err != nil {
// обработка ошибки
}


В некоторых функциях чуть ли не половину кода составляют именно такие проверки, что делает код трудночитаемым и отвлекает от основной логики.

Безуспешные попытки решения

За 7 лет команда Go предложила несколько вариантов:

2018 год: механизм check/handle — слишком сложный
2019 год: встроенная функция try() — скрывала поток управления, получила резко негативную реакцию сообщества
2024 год: оператор ? (как в Rust) — также не получил поддержки

Помимо официальных предложений, сообщество создало сотни собственных вариантов, но ни один не собрал достаточной поддержки.

Почему решили остановиться:

Прежде всего, отсутствует консенсус даже внутри самой команды Go. Любое изменение неизбежно создаст новую группу недовольных пользователей. В отличие от дженериков, которые можно не использовать, новый синтаксис ошибок придется применять всем разработчикам. Кроме того, стоимость таких изменений очень высока — потребуется обновить весь существующий код, документацию и инструменты.

Есть аргументы в пользу сохранения текущего положения. Go существует уже 15 лет, и возможность для кардинальных изменений давно упущена. Существующий способ обработки ошибок работает вполне нормально, а современные IDE с автодополнением значительно упрощают написание повторяющегося кода.

Что дальше?

Команда Go будет закрывать все новые предложения по изменению синтаксиса обработки ошибок без рассмотрения. Вместо этого они сосредоточатся на других улучшениях языка и стандартной библиотеки.

🫥 Cross Join
⠀
  • 👍 41
  • 🤡 34
  • 😢 6
  • 🎉 2
  • 🫡 2
  • ❤ 1
  • 👎 1
More from @crossjoin
  1. Sep 29, 2026😱 Отправили свое резюме на 129 вакансий на хх, а в ответ тишина .. Думаете, что дело в ры…
  2. Sep 28, 2026Слышал недавно в каком-то подкасте мысль, что Haskell плохо подходит для вайбкодинга прост…
  3. Sep 26, 2026Антон Жиянов написал мини-книгу по Go-concurrency. Это что-то вроде плотного конспекта с и…
  4. Sep 22, 2026photo post
  5. Sep 14, 2026Поможем Руслану собрать фидбек. Проект некоммерческий 👆
  6. Sep 14, 2026AGBX (Agent Box) — небольшой open-source CLI для запуска Claude Code и Codex в изолированн…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →