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 ★★★★★
()
Ответ на: комментарий от eao197

Общаясь с вами все лучше становится понятно для какой аудитории делали Go. И понятно почему Go пользуется такой популярностью.

Общаясь с вами все лучше становится понятно почему о вас такого невысокого мнения даже анонимусы.

И откуда и зачем вы его взяли? А, наверное вам, как Go-шнику, подойдет и неоптимальное решение. Главное, чтобы простое.

Уровень идиотии просто зашкаливает. Потому что только идиотией можно объяснить ваши выводы, например о том, что «подойдет и неоптимальное решение», в разговоре о формальном определении.

Языка C/C++ не существует.

И снова приступ острой мозговой недостаточности. C/C++ - это общепринятое обозначение сразу двух языков.

По поводу Си-ных массивов вопросы следует адресовать разработчикам Си.

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

Да, а еще Пайка брали в Google чтобы он Go для Google сделал.

Скорее всего его туда брали не только для этого, но в итоге именно Пайк стал основным разработчиком Go.

Какой же вы сказочный.

Какой же вы болезный.

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

Это Java 1.0 со своим JDK, в который входила даже GUI библиотека AWT, была MVP?

В вашей палате дурдома MVP с GUI - не MVP? Попробуйте ванны и больше времени проводите на свежем воздухе.

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

Разве может набирать популярность язык с таким синтаксисом..

type User struct {
	Name string
}

Будте конкретнее, объясните что вам тут не нравится.

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

Я ему вчера выше написал, и по скольку он молчит то значит прнял свою ошибку.

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

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

Если вы не понимаете что такое MVP, то какой смысл отвечать на этот ваш вопрос?

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

В вашей палате дурдома MVP с GUI - не MVP?

Нет. У нас тут с другими поциентами полный консенсус: MVP – это минимальный продукт. Ну т.е. покрывающий самый-самый минимум. В приложении к Java 1.0 это было бы как компилятор и совсем скудный набор базовых классов (типа вектора и хэш-таблицы). Но когда в комплект кладут базовую библиотеку такого объема, который по тем временам мало кому снился, а еще и кроссплатформенный GUI в довесок… Не, на MVP это не тянет. Это полноценный программный продукт.

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

твоей юзкейс навыворот

Вполне реальный юзкейс. А в твоей вселенной Java классам запрещено реализовывать больше одного интерфейса?

А так учитывая что тот же Роберт Гриземер…

Не знаю что там делал Роберт Гриземер, но ты несёшь какой-то бред.

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