LINUX.ORG.RU

Что происходит с популярностью Go?

 ,


1

3

Примерно с лета прошлого года популярность языка программирования Go неуклонно падает. По крайней мере если верить индексам TIOBE и PYPL. В начале прошлого года Go входил в первую десятку самых популярных языков программирования, но сейчас он уже во второй десятке - ближе к её нижней границе. Если TIOBE и PYPL не отражают действительность, то какие другие индексы отражают её лучше? Хотя на https://langpop.com/ Go всё ещё в первой десятке. Что вообще происходит с Go и каковы ваши прогнозы на ближайшие пару лет?

Ну и чтобы два раза не вставать, дополнительный вопрос. Один из конкурентов Go - это JavaScript/TypeScript на платформе node.js. Когда популярность Go росла, значительный процент новых программистов на Go был представлен теми, кто переходил на него с JS/TS. Однако если сейчас посмотреть на объявления о работе (живу не в России), то там какое-то засилие именно JS/TS, причём в основном это молодые компании и стартапы. Можно ли это объяснить банальной экономией на найме, когда одни и те же люди делают и бэкэнд и фронтэнд? Иначе я никак не могу понять тягу к языку, в котором нет нормальной параллельности и вообще куча костылей и легаси.

Update: большой брат подслушал и порекомендовал в ютубе: www.youtube.com/shorts/Vh97uPhmhqI



Последнее исправление: hummer (всего исправлений: 2)
Ответ на: комментарий от eao197

Обобщенное программирование – это не только контейнеры

Я понимаю. Однако, без иерархии типов необходимость дженериков уменьшается ещё сильнее.

(В качестве примера, slices.Sort на дженериках против sort.Sort без дженериков)

что предлагал пользователю первый Go, если пользователь хотел реализовать свой разреженный вектор?

any (на тот момент `interface{}`) и рефлексию, если вдруг где-нибудь надо

Конкретно *реализовать* вообще не должно быть сложно.

не нуждается ни в каких разреженных векторах

Изысканные структуры данных вообще редко нужны. Сами-то давно пользовались, скажем, префиксным деревом?

Я не отрицаю такие проблемы как чтение any из контейнера, но нахожу странным резкое нежелание жить без них, будто это самая важная вещь во вселенной.

kaldeon ★★
()
Последнее исправление: kaldeon (всего исправлений: 1)
Ответ на: комментарий от eao197

заканчивая очень странным способом перехвата паник

On purpose же. Паники для исключительных случаев, поэтому синтаксис не должен поощрять применять их без необходимости.

kaldeon ★★
()
Ответ на: комментарий от dynamic_cast

Если что то в go это не создание структуры с другим именем.

Это создание нового типа, а то что оно структура дело десястое.

anonymous
()
Ответ на: комментарий от hummer

Предметом обсуждения был вопрос, почему в яву (первую) не приехали шаблоны.

Потому что именно с Java 2 это уже не MVP.

И какое отношение этот "не MVP" имеет к вопросу, почему в MVP не приехали шаблоны?

r--r--r--
()
Последнее исправление: r--r--r-- (всего исправлений: 1)
Ответ на: комментарий от hummer

Не ди навыварот, а твоей юзкейс навыворот. Так то можно долго обсуждать чем удобнее удалять гланды через жопу.

А так учитывая что тот же Роберт Гриземер прямо вместе с Виртом работал вполе очевидно откуда он и вытащил многие концепты - из того времени когда у него хязыки были лучше.

ya-betmen ★★★★★
()
Ответ на: комментарий от kaldeon

В качестве примера, slices.Sort на дженериках против sort.Sort без дженериков

ИМХО, slices.Sort показывает как оно должно быть. Тогда как sort.Sort без дженериков выглядит как крутой workaround, который талантливым разработчикам удалось придумать в условиях отсутствия дженериков.

any (на тот момент interface{}) и рефлексию, если вдруг где-нибудь надо

И получить огромный расход памяти и просадку про производительности в случаях, когда хранить нужно int-ы или double-ы.

Сами-то давно пользовались, скажем, префиксным деревом?

Вот это вы удачно зашли. Для текущего заказчика года полтора назад довелось сделать реализацию специфического дерева на базе padix-tree. С тех пор раз в 3-4 месяца в это дерево добавляются какие-то новые фичи. Одну из них нужно добавить вот прямо сейчас.

eao197 ★★★★★
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария