From: Sergey Matveev Date: Tue, 6 May 2025 13:05:50 +0000 (+0300) Subject: Ещё один человек переходит из Python в Go X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=d9ba6d0eee96491e2d651a819b81c44f1fa51c7e;p=stargrave-blog.git Ещё один человек переходит из Python в Go https://habr.com/ru/articles/907360/ Что-то меня последнее время прям бомбит от начинающих "программистов". Этот вот написал, что работает уже третий (!) год. Почему язык не может просто начать выполнять файл с первой строки? То есть, как минимум, разницу между компилируемыми и интерпретируемыми даже близко не представляет? За три года то работы в ИТ? В Python пишешь a = 5, потом a = "текст" — и всё нормально Нет, это даже в Python не нормально. Но работать будет, да. Оказалось, := — это когда переменную создаёшь. А = — когда она уже есть. Почему нельзя просто одно оставить? Хочется только palm-face делать. Зачем я должен писать одну и ту же проверку в каждом вызове функции? Зачем проверять произошла ли ошибка, действительно? Разницу между слайсами и массивами и прочие тонкости реализации очень любят спрашивать на собеседованиях, рассчитывая отсеить людей без высшего образования. Ого, то есть высшее образование это когда "программист" хоть как-то понимает что за кардинально разные типы данных у него на руках? В Python я часто писал: for i in range(len(arr)): print(arr[i]) ... ну и зачем ты это так писал? Выбить деньги на более мощное железо? А в Go так нельзя, так как это парадигменный язык. Там пишут через range сразу: for i, val := range arr { fmt.Println(val) } Узнал новый термин: парадигменный язык. Буду на собеседованиях спрашивать. Ну и да: в Go можно и как в Python, как и в Python как в Go. Искренне недоумеваю: что можно было делать три года с таким пониманием ЯП? А в Go классов нет. Есть struct, и ты к ним можешь привязать функции. А ещё есть масса других типов данных, к которым ты тоже можешь привязать функции. Чем struct особенен? Там надо через func (s *MyService) Do() писать. Звездочка - означает что ты берешь данные из оперативной памяти. Это надо навсегда будет запомнить! Звёздочка -- означает что данные берутся из оперативной памяти. Такого ещё не слышал. Ржал в слух. После чего, конечно же, сомнения что это не по приколу написано. ---