Разница golang и js
Прошел обучение по go: курс «продвинутый golang-разработчик» от Яндекс-практикума
Что понравилось в языке (в сравнении с js/ts):
-
Интерфейсы и отсутствие классов и абстрактных классов. Есть только структуры, которые реализуют (или не реализуют) конкретный интерфейс. Такая минималистичность приводит к хорошей читаемости кода, а наличие интерфейсов позволяет реализовать dependency injection и воспользоваться самой моощной чертой ООП, откинув лишние усложнения.
-
Язык более «подтянутый»: в нем нет мультипарадигменности (хотя я все равно тащил функциональщину как настоящий джаваскриптизер), мало ключевых слов и статическая типизация. Язык также подталкивает обработать все возможные ошибки какие могут быть в коде. Это все на дистанции будет приводить к большей надежности кода, чем у js/ts.
-
Указатели - больше возможностей управлять памятью. В целом во время обучения не сильно была понятно разница от аалоцирования переменных в стеке или куче, но, думаю, что в реальных проектах при нагрузке это станет очевидно.
-
Мощная стандартная библиотека. В ней и пакеты для тестирования, для создания http-серверов, для криптографии и еще бог знает для чего. И они написаны на ПОНЯТНОМ go. Читали код js-библиотек, которые написаны до es6-стандарта? Да там черт ногу сломит, как будто на другом языке написаны. А тут все понятненько и приятно.
-
Продвинутая и простая для понимания многопоточность. В отличие от ноды.js, где надо играть с кол-вом инстансов приложения или разбираться с worker_threads и следить, чтобы единственный поток не заблокировался, в Go вам даны легковесные потоки - горутины.
-
Хоть с го и не связано, НО! Удалось потрогать grpc! Сам подход grpc с его поддержкой из коробки сжатия, шифрования и типовой совместимости клиент-сервер позволил написать намного меньше кода, чем понадобилось аналогичных задач в http.
А также главное открытие: chat gpt и deep seek реально помогают супербыстро сменить стек. Это прям стероиды, если хочешь быстро изучить новый язык. Но у них есть одна побочка: если на них плотно «сидеть», то в голове откладывается меньше информации. Так что нужно все равно осознавать код, который копируешь, и если непонятно, то максимально полно пытаться разобраться и усвоить.