Для одного рабочего проекта потребовалось написать небольшой сервис для всяких манипуляций над его исходниками. Раз уж такое дело — решил попробовать что-то новое, не всё же на Python да TypeScript писать. Выбрал Go, который хайпится уже не первый год.
Язык классный, много интересных штук, но сегодня не про это. Интересные мысли появились про то, как языки между собой различаются в плане путей развития.
Есть C++ с миллионом компиляторов и стандартов, UB и всем подобным. Есть Python, в котором стандарт языка один, но он развивается сообществом разработчиков, которое принимает решения о тех или иных фичах.
Подход в Go — буквально диктатура. В Google когда-то решили, что писать будем так, значит писать будем так.
И этот подход нужен не для того, чтобы показать доминацию. Язык изначально придуман для того, чтобы писать максимально простой, производительный, поддерживаемый, а главное — безопасный код. Иным образом поддерживать такие цели было бы тяжело.
Каждый раз, сталкиваясь с какими-то своеобразными решениями — например, с обработкой ошибок через явный
if err != nil вместо исключений — сразу понимаешь, почему это было сделано именно так: язык явно указывает тебе, в каком конкретном месте может появиться ошибка, и если ты её не обработал — это исключительно твоя ответственность.🎤 feelin