TGViewer
defer panic defer panic @deferpanic · 3.02K subscribers
Post #280 4.41K
Сел и просто начал работать

Надо признаться, что я не считаю Го лучшим языком на свете, хоть и пишу на нём много лет. Местами язык перегибает с топорностью, а в общем и целом — довольно скучный.

Это даёт свои плюсы, главный из которых — ты просто садишься и работаешь, а не тратишь несколько часов на выбор подходящей абстракции или на то, как поэлегантнее выразить мысль. Код становится прямым продолжением мыслей без лишних прослоек. Ну, то есть думать об архитектуре всё ещё нужно и важно, но именно об архитектуре. Иногда это вставляет палки в колёса: сидишь и думаешь — «Эх, вот бы сюда вот такую штучку, чтобы я вместо пятидесяти строк написал три». При этом нередко оказывается, что читаемость это не ухудшило бы, о чём так переживают разработчики языка.

Есть языки типа Кложи и Питона — выразительные и красивые. Код в них компактный, поскольку каждый элемент в нём ёмкий. На обоих я успел поработать в продакшене. В каждом есть REPL, позволяющий менять программу на лету и быстро проверять маленькие кусочки кода. Глаз радуется и при написании, и при чтении. Кстати, читать код на них можно примерно так же легко после периода адаптации, т. е. история про write-only — скорее миф, чем правда.

Но вернуться обратно меня не тянет. Причина вот в чём:

Язык обычно состоит из двух частей (можно дробить ещё сильнее, но нам сейчас этого хватит): сам язык, т. е. компилятор, рантайм, стандартная библиотека и прочее; а также тулинг. Одна из метрик «классности» любого языка — developer experience. Он же — quality of life. Субъективная, но важная метрика, которую формируют оба аспекта, но в первую очередь — тулинг. В языке может быть миллион крутых и передовых фич, он может быть сколь угодно быстрым (что бы то ни значило)... но если субъективно ощущается, что что-то не так, — никто и никогда не сможет вас убедить, что язык классный, какие бы разумные доводы ни приводили.

У меня есть ощущение, что команда Го делает ставку на эту метрику. Работа ведётся над обоими аспектами, которые я упомянул выше. Привлёк же меня Го не простотой или, прости господи, «быстротой». Developer experience — вот что приковало меня и не даёт всерьёз задумываться о переходе на другие языки.

Что нужно, чтобы начать писать не одноразовый скрипт, а полноценное приложение на Питоне? Выбрать менеджер зависимостей, создать виртуальное окружение (!), активировать его (и не забывать активировать или деактивировать в нужных местах), поставить пакет веб-фреймворка, пакеты для тестирования… То же самое, если скачал чужой репозиторий и пытаешься запустить его у себя на машине. В Го для старта достаточно сделать go mod init. Для тестов не нужен фреймворк (да, есть testify, но это скорее библиотека для ассертов). Хочешь запустить чужое приложение на Go? Пожалуйста — делай go run <pkg-name>. Даже необязательно клонировать исходники себе на лаптоп.

Я не накидываю целенаправленно на Питон и не утверждаю, что он хуже Го. Понятно, что значительную часть этих проблем решили современными инструментами, но, в основном, тоже внешними. И Го в этом смысле не уникален. У Ноды тоже тулинг сильный. Я лишь хочу сказать, что, по моим ощущениям (не факт, что это правда, возможно я делулу), у команды языка изначально была цель реализовать философию «сел и просто начал работать» не только в самом языке, но и в его тулинге. Это относительно молодой подход, который в мейнстриме встречается редко. И это игла, на которую легко подсесть и сложно слезть.
  • ❤ 36
  • 👍 15
  • 💯 7
  • 🤔 2
More from @deferpanic
  1. Aug 21, 2026Post #310
  2. Jul 25, 2026🦄 Опубликовал платформу для гайдов и первую статью https://golang.guide/ Надеюсь, вам пон…
  3. Jul 7, 2026Новость из немного другого мира: Эрин Катто, автор легендарного* физического движка Box2D,…
  4. Jun 24, 2026Я решил провести эксперимент и написать что-то на абсолютно незнакомом языке для абсолютно…
  5. Jun 11, 2026🥂Большой выпуск про PaaS — как Avito и Plata строят платформу для разработки / GoGetPodca…
  6. May 29, 2026⚙️ Лучшие практики в Go: разбираем на Podlodka Go Crew Пишете на Go и хотите узнать, как з…
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 →