"Ну как тебе Golang?" 👩💻
Пишу на Go уже 3 месяца (правда с перерывами на менеджерские активности) и до сих пор не дошел до стадии принятия 😓
Сразу обозначу, что нижеизложенные выводы являются моим субъективным мнением и скорее всего поменяются по мере освоения этого языка:
-
У Golang порог входа точно выше, чем у Python. Я не знаю, с какого языка проще переходить на Go, но с Python - точно не просто :) Если код на Python я могу читать как книгу, то код на Go пока дается тяжело. В целом язык кажется гораздо менее лаконичным, чем Python.
-
На Go гораздо менее распространены фреймворки, чем на Python. Соответственно, у разработчика нет четких рамок и рекомендаций о том, как писать код. Из-за этого часто можно увидеть различные интерпретации чистой архитектуры, в том числе и в рамках одной и той же компании, и успешность применения этих подходов напрямую зависит от скиллов разработки :) Бывает, что код становится намного более запутанным с размытыми слоями, хотя на чистой архитектуре должно быть наоборот.
-
Boilerplate код в проектах на Golang - это ОК. Для меня это непривычно, так как до этого я прилежно придерживался принципов Don't Repeat Yourself.
-
Ошибки и их стэктрейсы на Golang гораздо менее информативны, чем на Python. Из коробки контекста для разбора ошибок очень мало, как по мне, поэтому значительная доля ответственности за будущий удобный debug лежит именно на разработчиках.
-
Скорость разработки на Go точно ниже, чем на том же Python. Искренне не понимаю людей, которые топят за Go для реализации MVP каких-нибудь стартапов.
При этом у Golang есть ряд крутых преимуществ:
-
Строгая типизация. Это может быть не супер-удобно для бывших питонистов, но адепты TypeScript подтвердят, что это круто и полезно на дальней дистанции.
-
Goroutines это космос по сравнению с async/await на Python. И это реальная асинхронность в отличии от костылей GIL. Но это не отменяет факт, что для 99% проектов асинхронности Python будет более, чем достаточно :)
-
Неплохая кодогенерация для тестов. С помощью testify и mockery можно генерить удобные моки и потом использовать их в unit-тестах (при этом до благолепного pytest все равно как до Луны в плане удобства).
-
Про performance Go писать смысла нет - и так понятно, что для highload он будет работать лучше, чем Python (в умелых руках).
Через пару месяцев вернусь к этому посту и сверюсь с этими выводами еще раз
· 10.12.2024
Тоже начал писать на гошке, но чуть больше, уже 7ой месяц, и сейчас тоже много менеджерских активностей 😅 сначала было отторжение и непонимание зачем, ибо сравнивал производительность текущей бизнес логики и прироста не было, только экономия цпу/рам. Но спустя время кайфанул, на питон похоже больше не вернусь)) единственный минус - реально дольше разработка)
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён