Другие языки программирования и технологии

Перспективен ли golang?

какие перспективы имеет этот язык?стоит ли его изучать для основного языка под бэкенд?
Да, перспективен.

Go - универсальный язык прикладного уровня. Как сравнивать его с C (языком системного программирования), как и говорить, что язык годится только для микросервисов - это демонстрировать полную некомпетентность в вопросе.

Язык реализует парадигму компонентного программирования с полноценной модульностью. Так что прекрасно подходит и для малых, и для больших проектов в самых разных областях программирования. Единственное, в чём он уступает Java или C# - отсутствие встроенных в язык возможностей создания GUI, что является следствием работы Go-кода без посредничества виртуальной машины. Но это решается подключением любой из множества бесплатных сторонних библиотек.

Что касается именно задач back-end, то с одной стороны, Go является прямым конкурентом Java и C# (в back-end GUI не нужен) - обеспечивая ровно такие же возможности, а с другой стороны, конкурентом Node.JS и Erlang/Elixir - обеспечивая высокопроизводительную обработку большого кол-ва одновременных подключений посредством "лёгких" асинхронных процессов (go-процедуры).

Как язык для генерации страниц сайтов, Go имеет те же проблемы что и Java c C# и для таких задач подходит (как и Java c C#) хуже чем PHP. Но тут ничего лучше PHP и не найдёшь (Python по сравнению с PHP неконкурентоспособен, а Node.JS предназначен для узкого круга задач, не пересекающегося с кругом задач PHP). Но для Web-API и любых сервисов (хоть "микро", хоть "монолитом") Go подходит отлично.

Вдвоём Go + PHP перекрывают практически весь спектр задач back-end.

P.S. Главное же - Go намного проще любых конкурентов. Да, придётся писать чуть больше кода, но читать Go-код легче. А это куда важнее: пишут код один раз, а читают его многократно.

P.P.S. Заявлять, что рейтинг tiobe демонстрирует популярность языков программирования - это тоже некомпетентность.
Сиэль Фантомхайв
Сиэль Фантомхайв
71 869
Лучший ответ
Тут есть любители сего языка, но как по мне, гора родила мышь.
Нишевой язык для микросервисов самого же гугла.

По сравнению с C в Golang мало, что добавилось, но только C вышел в 1969г, если мне склероз не изменяет, а Golang - в 2007-м. Вот в упор не вижу, чем Go лучше, чем C. Большой проект на нём не напишешь, а небольшие приложения и на C можно сварганить. Только, как во всех корпоративных языках, добавлены ограничения, чтобы ПТУшники, которых так любит брать на работу Гугл, не отстрелили себе ноги. Но эти же ограничения мешают делать высокопроизводительные системы.
В общем, совершенно непонятно, для каких проектов его объективно следовало бы предпочесть другим языкам.

Пишут, что Go популярен... в журналах, проплаченных из маркетингого бюджета гугла. Вот его реальная популярность:
https://www.tiobe.com/tiobe-index/

Реально он на 11-м месте по популярности (1.11%), а C и Python делят первое и второе (15%), C++ и Java - третье и четвёртое (13%). Скажем, детища 1990-х C# и Java продвинулись гораздо дальше за тот же срок, если вспомнить начало 2010-х.
Да и этот 1% в основном - за счёт смузи-хомячков. У них раз сделано Гуглом, значит, хорошо, а мечта всей жизни - перейти туда на работу.

И тут ещё надо понимать, чем ваш бэкенд будет заниматься.
1) "Микросервисы", перекладывающие записи из одного эндпоинта в другой.
2) Многопользовательская интерактивная система, нагруженная фичами и пользовательскими предпочтениями.
3) Искусственный Идиот, ой, простите, Интеллект.
4) Числодробилка для обсчёта рисков небиржевых деривативов.
5) Система управления противоракетной обороной.

Это всё - бэкенд, но требования абсолютно разные.
Для 1 и 2 можно взять Котлин или Питон, а если на стеке Микрософта, то C#, F#.
3 пишут на функциональных языках.
4 какое-то время назад начали писать на Java, а раньше там доминировал C++.
Для 5 вообще надо забыть о байт-коде, сборке мусора и прочих дестабилизирующих факторах, и писать на голом C, возможно, даже с ассемблерными вставками.
Игрушки я не рассматриваю, т.к. это зло, но и там - свои соображения по выбору языков.