Не очень глубоко, но я пойму.

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

Как любой разумный новичок, я начал кодить шесть лет назад с помощью JavaScript. «Это выглядит достаточно просто и кажется довольно полезным», - подумал я. Так что я попробовал. Я, конечно, начал с клиентского JS. А когда мне пришлось работать с постоянными данными и базами данных, я перешел на базовый JS-сервер с помощью Node и Express. И тогда я узнал истинное значение боли.

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

Может быть, это JavaScript - я не фанат слабого набора текста. Кроме того, я всегда считал модульную систему глупой. Он меняется в зависимости от вашей версии JavaScript? Убирайся отсюда. Что все это значит? Вы могли подумать, что такая важная функция останется неизменной даже в разных версиях. Но я полагаю, что ясность не была главной заботой. В общем, жизнь с NodeJS была тяжелой.

Таким образом, однажды, когда я работал с особенно сложной функцией для обработки большого документа Mongo, я подумал: «Конечно, есть что-то получше». Итак, я начал охоту. В конце концов я остановился на Rails. Шутка века, я знаю. Теперь ясно, что я прыгал из горячей воды в лаву. Но тогда я думал, что это огромный шаг вперед.

Когда я пришел в себя, я попробовал Python и Django. Не был фанатом. Я лично считаю, что синтаксис слишком сложен для чтения. Конечно, чисто. Но фигурные скобки являются частью синтаксиса неспроста. Я не покупал всю штуку с синтаксическим анализом на основе отступов. Так что после этого я оказался в затруднительном положении. Пробовать было нечего. А потом я увидел свет.

Просматривая однажды опрос разработчиков StackOverflow в поисках идей, я увидел язык, о котором никогда не слышал: Go. Я погуглил, прочитал несколько страниц на сайте и месяцами не трогал. Потому что я ничего не понял на сайте. Даже маркетинговые материалы. Это было похоже на совершенно другую парадигму. Я был полностью сбит с толку.

Что неудивительно. Go - это язык более низкого уровня по сравнению с JS, Python или Ruby. Его дизайн очень разный. Следовательно, это было много вещей, к которым я не привык. Но после еще нескольких неприятных ошибок в Rails я дал еще один шанс.

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

Во-первых, Go похож на TSA: супер строгий. Агрессивно строгий набор текста, который вы используете - или, скорее, должен использовать - избавляет вас от многих проблем. Конечно, когда дело доходит до исполнения, это не имеет значения. Но при разработке это значительно упрощает работу.

Кроме того, можно ли говорить о том, насколько маленькими могут быть проекты Go? Я имею в виду, что вам нужно всего два файла: go.mod для отслеживания зависимостей и main.go для вашей логики. Это так просто, что я до сих пор удивляюсь каждый раз, когда это срабатывает. За кадром может быть то же самое - я не знаю. Все, что я знаю, создание API с помощью Go проходит гладко.

И как только я дошел до этой точки, все было кончено. Обычно мне нужно создавать и поддерживать множество API. Итак, как только я нахожу инструмент, который помогает ускорить это даже на 10%, я сразу бросаюсь на него. И поэтому я должен идти везде, куда бы я ни пошел. Не потому, что я знаю, что делаю, а потому, что это может вас удивить.