LINUX.ORG.RU

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

 ,


3

2

Примерно с лета прошлого года популярность языка программирования 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)
Ответ на: комментарий от anonymous

Нет. Более того - язык продолжили усложнять и сейчас он сам на себя не похож.

vbr ★★★★★
()

Наткнулся на цитату, которая отлично иллюстрируют многие, затронутые тут темы:

Deep down, that’s what most people want. To feel special. That’s far more important than merely purchasing a solution. Basic, cheap, or even free options are for the common dolt, with simple needs and simple problems, goes this wicked intuition. Few people have the courage to admit their life and work isn’t that complicated.

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

Вот и ответ насчёт if err != nil. Если придумать как добавить более изящную обработку ошибок, то злопыхатели переключат шарманку и начнут ругать язык за отсутвие явной проверки ошибочной ситуации.

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

if err != nil

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

В питоне с динамической типизацией таких проблем нет.

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

А это вы у @vbr спрашивайте, который Go за наличие дженериков ругает.

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

мне вспомнилось дейкстровское интервью (смотреть с 11:39), где он высказал следующее: «The management didn’t want faultless programs because the company derived its stability from maintenance contracts. And the programmers weren’t interested because they derived their intellectual excitement from the fact that they didn’t quite know what they were doing. They felt that if you knew precisely what you were doing and didn’t run risks, it was a boring job.»

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

> пользователи не разобрались и ушли на какой-то другой язык

А есть какие-то наблюдения, подкрепляющие данное предположение? Я вот не припомню постов в стиле “I’m leaving Go for Python.”

На мой взгляд,

1. Есть опрос разрабов Go за второй квартал 2022 [1]. Среди 6% тех, кто не собирается использовать дженерики, только 12% назвали причиной “A steep learning curve or lack of helpful documentation . . .”

2. Верно обратное: на другие языки уходили из-за *отсутствия* дженериков до версии 1.18.

3. Дженерики для клиентского кода — элементарная фича (особенно если есть обратная совместимость). А у авторов библиотек работа такая — разбираться в нюансах.

4. Специфичная заслуга Go: дженерики не породили два мира полиморфизма, а расширили понятие интерфейса. Это позволило сообществу не разделиться на тех, кто продолжил бы писать код по-старому, тех, кто перешёл бы на новое, и всех остальных между двумя огнями. Как следствие, дженерики используются только как крайняя мера. В стандартной библиотеке дженерики до сих пор используются очень консервативно и это никому не мешает и не порождает ожесточённые конфликты.

5. Дженерики существуют в массовой культуре уже десятилетиями, это не академическая инновация. Это не неймспейсы в линуксе, если сравнивать по концептуальному пониманию.

6. «Объяснение явлений через глупость людей — это характерная черта снобов, выдающая их собственный узкий взгляд на мир.»

[1]: https://go.dev/blog/survey2022-q2-results

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

> я не совсем понимаю как обходится без дженириков в языке со строгой типизацией

Использовать interface{}/any и приведение к типу [1]. Пример из стандартной библиотеки: container/heap [2]. Неудобно, но в случае с контейнерами не катастрофично — способ хранения уже является частью предметной области. Масштаб бедствия был бы на порядок выше, если бы в Go присутствовала иерархия типов — в данном случае дженерики защищают от повсеместной рефлексии [3].

[1]: https://go.dev/tour/methods/15

[2]: https://pkg.go.dev/container/heap@go1.26.5#example-package-IntHeap

[3]: Что происходит с популярностью Go? (комментарий)

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

Объяснение явлений через глупость людей — это характерная черта снобов, выдающая их собственный узкий взгляд на мир.

Зачот.

// Вот за что до сих пор читаю ЛОР, так это за редкие краткие много проясняющие формулировки.

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

Индусы pdr (directi) и internet bs точно раньше так делали (незаконно и можно было оспорить в иканн, разумеется).

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

не совсем понимаю как обходится без дженириков в языке со строгой типизацией

Так в го показали же как - сделав типизацию не слишком строгой. Элементарно, Ватсон! Типизация вообще не нужна сильно переоценена.

bread
()
Ответ на: комментарий от ugoday

В эпоху ИИ мне уже пофиг, но вообще если мне код надо писать самому, я твёрдо убеждён, что исключения лучше. if err != nil это очень плохо с самого начала. Но можно и с этим жить, конечно.

Самое смешное, что исключения в Go тоже есть с самого начала. Просто их назвали паниками, в стандартной библиотеке не используют там, где следовало бы использовать, и в целом призывают для обработки ошибок не использовать. Но механизм - есть. И если бы с самого начала вместо if err != nil просто кидали бы паники везде, было бы гораздо лучше. Да.

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

Я вот человек старый, достаточно тормозной, но я не совсем понимаю как обходится без дженириков в языке со строгой типизацией

Вопрос не понятен. Просто кастовать куда надо и всё. Так же, как в Java до 5 версии обходились, так же, как в Go обходились.

Да, каст это не строгая типизация. Ну что поделаешь. Попробуй поищи нетривиальную программу без единого каста. Кому нужна на 100% строгая типизация - тем, наверное, в хаскель какой-нибудь. А Go намеренно принёс «в жертву» строгую типизацию в этом месте, чтобы сделать язык в 10 раз проще. Я думаю, что это правильно.

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

Аргумент «не хочешь не юзай» не работает. Ты живёшь не в вакууме, а в экосистеме. Есть стандартная библиотека, есть другие библиотеки, есть общепринятые практики. Придётся юзать, никуда не денешься.

В питоне с динамической типизацией таких проблем нет.

Это другая крайность. Статическая типизация отлавливает очень много опечаток. Но тут работает что-то наподобие принципа Парето. Усложнение языка типиизацией на 20% даёт 80% профита. А генерики это усложнение языка на 80%, которые дают 20% профита. И ещё много вреда приносят, ибо некоторые личности, вместо того, чтобы педалить код, начинают на этих генериках строить абстрактные фреймворки. Это плохо и контр-продуктивно. Го всегда был хорош тем, что там не было средств для подобных абстракций, и ты просто сидел и педалил код.

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

А есть какие-то наблюдения, подкрепляющие данное предположение?

Нет. Просто мысли вслух.

опрос

в интернете показал, что он есть у 100% людей.

Боюсь, что тут примерно то же. Те, кто проходит опросы, это грубо говоря 0.1% самых крутых программистов, которые рыщут по интернетам, читают всё подряд, проходят опросы, изучают там какие-то фичи. А 99.9% просто педалят кодпромптят клауду и идут домой в 18:00. Они опросы не проходят, они даже не открывают те сайты, на которых эти опросы. Эту тёмную массу можно увидеть только по косвенным статистическим сведениям.

Но, конечно, это всё так, болтология. Может и не падает популярность у Go. Я сам тоже этого не замечал. Разве что через ИИ-шку некоторые взялись на Rust переписывать всё подряд, но по-мне это тоже баловство от нечего делать.

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

Боюсь, что тут примерно то же. Те, кто проходит опросы, это грубо говоря 0.1% самых крутых программистов, которые рыщут по интернетам, читают всё подряд, проходят опросы, изучают там какие-то фичи. А 99.9% просто педалят кодпромптят клауду и идут домой в 18:00. Они опросы не проходят, они даже не открывают те сайты, на которых эти опросы. Эту тёмную массу можно увидеть только по косвенным статистическим сведениям.

Это как для музыканта необходим слух.
Если «слух» есть, то не нужно рыскать по интернету.
Тем более что в нём самые азы обычно возвеличивают в «ЗНАНИЯ».

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

Если «слух» есть, то не нужно рыскать по интернету.

Иногда полезно посмотреть популярные проекты.
Чаще всего нужно просто вести разработку архитектуры, а не рыскать.
Если пианино правильно настроено, то звук будет хороший, но это ещё и от музыканта зависит.

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

Если пианино правильно настроено, то звук будет хороший, но это ещё и от музыканта зависит.

Речь шла конечно о мелодии.
Хотя звук конечно без фальши.

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

Чаще всего нужно просто вести разработку архитектуры, а не рыскать.

Самая больша проблема это начать работу и усердно ей заниматься, даже если результат будет не быстр.
В этом случае всё будет хорошо.

Другой путь это ждать ХАЛЯВЫ и находить сотни доводов к тому, чтобы ничего не делать.
Это «Горе от ума».

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

Усложнение языка типиизацией на 20% даёт 80% профита. А генерики это усложнение языка на 80%, которые дают 20% профита.

Да ладно, без джереников декораторы приходилось плодить :( А что за усложнение то? Синтаксис что ли? Или чего?

anonymous
()

Кстати народ кто в теме, NetBird 0.75

Я давно слежу за wails но сейчас задумался, а гуй там как реализуется то? На самом последнем уровне? За место GTK что то свое или что? Почему то мне раньше это в голову не приходило.

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

я твёрдо убеждён, что исключения лучше

А твёрдого убеждения, что дженерики лучше у вас нету? В данном случае я не обсуждаю какой способ обработки ошибок лучше. Меня просто занимает, что язык ругали за отсутствие дженериков, а теперь ругают за их наличие. В этом нету никакого смысла.

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

Да ладно, без джереников декораторы приходилось плодить :(

Я даже не знаю, что такое декораторы. Мы ещё про Go или Java? Это же вроде что-то из JavaScript.

А что за усложнение то? Синтаксис что ли? Или чего?

Да там много чего. Система типов становится очень сложной и непонятной. Библиотечный код становится нечитаемым. И всё из-за того, что кому-то лень написать один каст.

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

А твёрдого убеждения, что дженерики лучше у вас нету?

Никак нет. У меня есть такое же твёрдое убеждение, что типизированный язык без дженериков это вершина эволюции. По сути это Java 1.4 (концептуально в разрезе обсуждаемых вопросов, так-то к ней тоже претензий можно найти).

Меня просто занимает, что язык ругали за отсутствие дженериков, а теперь ругают за их наличие. В этом нету никакого смысла.

А ещё будут ругать за то, что дженерики недостаточно дженерики, SFINAE нет, DOOM на compile time вычислениях не напишешь и вообще. Люди они такие, разные.

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

Может, конечно, и прибегут, как знать. Но я - сомневаюсь.

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

Это же вроде что-то из JavaScript.

Без понятие про js, а из мира python.

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

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

Я так и не понял почему в go уже нельзя писать без дженриков.

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

Так и на GO буду юзать декораторы и мне по фигу есть внутри дженерики или нет.

Вы будете юзать какой нибудь модуль на go и вам плевать что внутри дженерики, ну модуль стал в 3 раза меньше и компиляции быстрее вам то что?

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

Может, конечно, и прибегут, как знать. Но я - сомневаюсь.

Меня вообще убивает концепция типа вот этого: NetBird 0.75

Это вообще что такое? Пользователи windows добрались до linux что ли?

Зачем людям вообще х11/wayland на серваке то? (по моему в последних windows серверах тоже gui выпилили … дошло) ну не можешь ты ходить по ssh и юзать cli и что?

Давно (по моему уже лет 5) есть cockpit c кучей модулей, начиная с терминала, виртуалок, контейнеров и закачивая рулением фирвалла и НМ и т.д.

Это (полное руление сервером через браузер) то почему уже считается не достачным и нужны эти поделки в виде NetBird?

anonymous
()

зачем сравнивать язык, который зачем то на десктоп из браузера выдернули, и язык, который создавали специально для решения каких-то старых проблем? они совсем разные, только что по тестам может и можно сравнивать, а если популярность интересует, то может смотреть надо на ХХ или других сайтах с вакансиями, а не на сомнительных пузомерках?

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

Там основная причина потому что видите ли КОМУНИТИ против. У них во всех опросах типа «что вы хотите увидеть нового в го» было дженерики, нормальные enum-ы и упрощение обработки ошибок. Про дженерики у сообщества тоже был бухтёж неимоверный про что, что не надо нам этих выших дженериков, однако же добавили и продолжают ими обмазывать все стандартные инструменты. Что мешает поступить так же и с этим пунктом? Просто кричащее меньшинство как обычно воспринимается за большинство, в то время как обычные юзеры действительно хотят это, просто не кричат об этом

putch
()
Ответ на: комментарий от vbr

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

Это подразумевает, что кто-то нарочно выбрал Go за отсутствие дженериков. Что является безумным бредом.

А кому нравился язык с дженериками те писали, например, на C++.

Сравнивать эти два языка как замену одного другому — тоже безумие. Где можно использовать Go, писать на С++ глупость. А где без С++ не обойтись, там Go не потянет.

часть пользователей они этим решением расстроили,

Что-то я не видел ни одного такого Goшника. Может быть вы встречали?

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

Это подразумевает, что кто-то нарочно выбрал Go за отсутствие дженериков. Что является безумным бредом.

Это вы так сейчас Пайка и Ко, которые делали Go специально без дженериков и впаривали его именно таким уродцем без дженериков внутри Google, бредящими безумцами назвали?

Смело.

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

От вас я разумной реплики и не ожидал.

Вы же чуть ранее:

«Вашу любовь переходить на личности я давно приметил. Следовать этому примеру, однако, не стану.»

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

Кричащее меньшинство - это просто те, кого начальство наняло кричать нужное. Потому-то они и воспринимаются как большинство. Не осилил 17 страниц прочитать, но я недавно снова потрогал Го и меня возмутили две вещи:

  • нельзя назвать директории русскими буквами, поэтому свой проект перенёс на TS
  • чёрт-те что они намутили с воркспейсами, притом хаос там в активной фазе и перспективы неясны. Может быть, я просто не умею с ними сжиться, но для меня это не выглядит стабильным инструментом.
den73 ★★★★★
()
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от ugoday

потому что рынок оценивает не философски-объективную ценность

@kaldeon, У тебя просто философия не та. А ценность вполне объективная - востребованность.

Рыночная теория полагает покупателей рациональными информированными субъектами, а это вот вообще не так.

@ugoday, Не полагает (если речь не про каких-то фриков-интервенционистов, которым нужно оправдать своё существование). Нормальные теории предполагают только, что при прочих равных в своей массе люди предпочтут достаток нужде и здоровье болезни. До экологического движения обратного не постулировали даже коммуняки.

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

Я ввожу такое определение «профессионал - это человек, зарабатывающий деньги своей деятельностью».

Ребёнок, продающий лемонад или получающий от родителей деньги за хорошие оценки - профессионал по твоему определению. Любой трудоустроенный человек - тоже. Карманник, форточник, медвежатник - все профессионалы (вне зависимости от «успешности», кстати). Человек, выставляющий свой хлам на авито - профессионал. С другой стороны, в зависимости от трактовки «деятельности», люди умственного труда могут быть выписаны из профессионалов. Твоё определение бесполезно.

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

Ребёнок, продающий лемонад или получающий от родителей деньги за хорошие оценки - профессионал по твоему определению.

+1 Конечно профи, но только профи в своей предприимчивости :)

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

Качество оказания услуги не является частью определения.

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

А профи что? На вайбкодил, тесты проходит ну и хорошо. Лишь бы работало.

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

Null - чуть ли не самое плохое что вообще придумали в программировании. Наравне с goto. И первому и второму крайне узкая ниша в каком-нибудь низкоуровневом опасном коде, но так чтоб если и можно было использовать то крайне неудобно, чтоб не злоупотребляли, хотя бы заставлять объявлять переменную способную стать null в явном виде как какую-то nullable, а за все остальные попытки присвоить null бить по рукам. Сколько ошибок от них…

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

Если тебе не платят деньги за работу, то ты не профессионал, а любитель. И совершенно не важно насколько хорошо ты умеешь делать работу и сколь много для человечества ты сделал.

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

Если тебе не платят деньги за работу, то ты не профессионал, а любитель. И совершенно не важно насколько хорошо ты умеешь делать работу и сколь много для человечества ты сделал.

Я не спорю с этим. Просто уровень (техническая грамотность) любителя-фаната всегда больше чем у профессионала.

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

Шерлок скорее любитель-фанат

Нет. По моему определению он профессионал, но если вы введёте своё формальное определение, то по нему всё может быть иначе. Однако, если вы вообще не вводите определение, а аппелируете к чувствам, то это демагогия.

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

А профи что? На вайбкодил, тесты проходит ну и хорошо. Лишь бы работало.

В вашей демагогии есть одно не понятно откуда появившееся допущение, что работник за деньги - это всегда низкое качество. В этом проблема.

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

Я не спорю с этим. Просто уровень (техническая грамотность) любителя-фаната всегда больше чем у профессионала.

Вот пример той демагогии, о которой я говорил сообщением выше. Вот это вот «всегда больше» - это откуда взялось?

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

По моему определению он профессионал,

Так вроде ввели уже и не чье то лично а общепринятое: получаешь за это бабки.

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

В вашей демагогии есть одно не понятно откуда появившееся допущение, что работник за деньги - это всегда низкое качество. В этом проблема.

Это почему? Ему ОТК могут по шапке надавать. Я сказал что у профи всегда уровень хуже чем у любителя-фаната, так как профи нужно что лишь бы ОТК пропустил а там пофигу.

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

Здесь всегда появляется кто-то, кто это определение оспаривает и сводит к демагогии. Читайте примеры выше.

VIT ★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)