LINUX.ORG.RU

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

 ,


1

4

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

Я профессиональный фронтендер и до мозга костей жаваскриптизер, но бэкенд для своих проектов всё же пишу на Go. Просто он тупо работает быстрее, и доверия к нему у меня больше. Проблем с языком не испытываю — он проще некуда. CRUD’ы на нём писать вполне хватает.

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

Когда исключение – это не класс, который от чего-то наследуется и предоставляет какие-то виртуальные методы для того, чтобы извлечь из экземпляра исключения описание, стек-трейс или еще какую-то лабуду. А какой-то простой объект, вроде std::error_code из C++.

Ну вот error в Go - это простой интерфейс с одним единственным методом, который возвращает описание ошибки в виде текста. Хочешь читай текст ошибки, хочешь сравнивай инстанс ошибки (err) с чем-то (например с io.EOF), хочешь проверь её тип. Куда проще-то?

Основы Go я изучил еще 15 лет назад.

Так в чём проблема бросить и перехватить панику?

А поощряет? Является ли это обыденной практикой? Вот в Rust используется Result и это, как по мне, не просто OK, а сильно лучше Go-шных err-ов.

Это лучше лишь в функциональном стиле, когда ты делаешь цепочку вызовов. Но практика показала, что этот ваш Result может нагнуть половину интернета одним неправильным вызовом unwrap() которого в Result, по хорошему, вообще не должно было быть изначально. Видишь, простые решения лучше, потому что надёжнее.

Я сам из этих умников.

Сочуствую.

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

Возможно потому, что мнение о Go у меня сложилось еще до того, как вы сами о Go узнали.

Какое отношение история о вашем мнении имеет к истории создания Go или к тому, когда я об этом языке узнал?

hummer
() автор топика

Что происходит, что происходит…

if err != nil {
    return err
}

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

Что вообще происходит с Go и каковы ваши прогнозы на ближайшие пару лет?

На ближайший десяток лет прогноз один - rust.

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

Ну вот, во все дыры они свою кофейную затычку проталкивают. Вот уже и в нишу скриптописательства пытаются протолкнуться. Современная Java - это язык, в который понаприносили всего что смогли и продолжают нести. В итоге это уже совсем не тот язык, каким он был.

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

всеб выкинули давно Java и C++ … Этого, однако, не происходит.

Это ваше личное заблуждение. Lisp не был всепоглащающим мейнстримом

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

Это вы сейчас намеренно свою глупость демонстрируете

Манерам вы в хлеву, по месту рождения обучались?

оставить большим и сложным задачам.

Ну, пусть там и остаются. А тут мы Go обсуждаем.

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

Ну вот error в Go - это простой интерфейс с одним единственным методом, который возвращает описание ошибки в виде текста. Хочешь читай текст ошибки, хочешь сравнивай инстанс ошибки (err) с чем-то (например с io.EOF), хочешь проверь её тип. Куда проще-то?

И что, error в Go бросают в качестве исключения/паники?

Вообще давайте определимся, мы сейчас исключительно рамками Go ограничиваемся, или вообще о «современных языках»?

Так в чём проблема бросить и перехватить панику?

Давайте определимся – по вашему мнению паники в Go – это аналог исключений из Java/C#/Scala/C++/D?

Видишь, простые решения лучше, потому что надёжнее.

Тогда почему половина интернета обслуживалась Rust-ом, а не Go?

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

Какое отношение история о вашем мнении имеет к истории создания Go или к тому, когда я об этом языке узнал?

Как я понял, вы предложили мне потратить 40 минут времени на то, чтобы услышать то, что я и так уже знал в 2010-ом.

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

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

Странно, почему тогда Rust так набирает популярность?

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

А Lisp был не нужен практически всегда.

Манерам вы в хлеву, по месту рождения обучались?

Ага, есть еще места на планете, где глупость вот так прямо глупостью и называются.

А тут мы Go обсуждаем.

Не сам Go, а его судьбу и соотношение с конкурентами.

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

Странно, почему тогда Rust так набирает популярность?

Каким образом это что-то доказывает или отрицает? Rust прекрасный язык (по слухам, сам не учил, но всё, что я про него знаю говорит о том).

Может быть потому, что есть ниши для Go, и есть ниши для Rust.

Вы это так говорите, будто я раньше утверждал, что у Rust’а нету ниши или что у них с Go одна ниша на двоих или что? Вы там бухаете что ли? Следите хотя бы кому отвечаете и с кем спорите.

Манерам вы в хлеву, по месту рождения обучались?

Ага

Ну, тогда вы ещё даже молодцом держитесь!

Не сам Go, а его судьбу

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

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

Не буду тыкать в тебя реальностью.

Мне ваша реальность не интересна, у меня есть своя :)))

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

Каким образом это что-то доказывает или отрицает?

Это доказывает тот простой факт, что «Вот потому, что люди не умеют читать и понимать прочитанное, нужны простые и ясные языки вроде Go.» не исчерпывает все многообразие мира.

Следите хотя бы кому отвечаете и с кем спорите.

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

eao197 ★★★★★
()

Microsoft разработала на Go компилятор ts и ts 7.0 стал в семь раз быстрее работать.

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

Как я понял, вы предложили мне потратить 40 минут времени на то, чтобы услышать то, что я и так уже знал в 2010-ом.

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

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

И что, error в Go бросают в качестве исключения/паники?

Нет конечно. Просто вызывают panic(v any)

Вообще давайте определимся, мы сейчас исключительно рамками Go ограничиваемся, или вообще о «современных языках»?

Как пойдёт.

Давайте определимся – по вашему мнению паники в Go – это аналог исключений из Java/C#/Scala/C++/D?

Ведёт себя аналогично, хотя как альтернатива ошибок в Go не рекомендуется. Просто иногда бывают ситуации, когда реализовать это так действительно необходимо.

Тогда почему половина интернета обслуживалась Rust-ом, а не Go?

Откуда такая статистика?

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

Выше вы заявили совсем не то, что рассказано в ролике.

Выше я заявил о том, что авторы Go сами рассказывали о том, почему и как на свет появился Go. А так же о том, что корни Go можно увидеть в языке Limbo, к разработке которого был причастен тот самый Роб Пайк.

Об этом не было сказано в ролике? Или в ролике было сказано совсем не это?

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

Нет конечно. Просто вызывают panic(v any)

Тогда к чему вы заговорили про интерфейс Err в качестве легковестного типа для исключения?

Ведёт себя аналогично, хотя как альтернатива ошибок в Go не рекомендуется. Просто иногда бывают ситуации, когда реализовать это так действительно необходимо.

Вы уж все-таки определитесь.

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

Тогда почему половина интернета обслуживалась Rust-ом, а не Go?

Откуда такая статистика?

Помилуйте, вы же сами об этом сказали:

Но практика показала, что этот ваш Result может нагнуть половину интернета одним неправильным вызовом unwrap() которого в Result, по хорошему, вообще не должно было быть изначально.

Раз половину Интернета нагнули, значит эта половина обслуживалась кодом на Rust. И тут вопрос: если с ваших слов «простые решения лучше, потому что надёжнее», то почему эта несчастная половина обслуживалась кодом на Rust, а не на Go?

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

Не только в Limbo. Я просто предложил посмотреть хороший ролик об истории возникновения Go. Изначально никто альтернативу C++ не делал, а Google взяли фактически готовый язык и наняли его авторов.

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

Изначально никто альтернативу C++ не делал

Сам Пайк рассказывает несколько другую историю: https://commandcenter.blogspot.com/2012/06/less-is-exponentially-more.html

а Google взяли фактически готовый язык и наняли его авторов.

Если Google взял готовый язык, то почему к моменту, когда Пайк и Ко решились делать Go в качестве «20% project», они педалили код в Google на C++?

На самом деле вопрос риторический.

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

Тогда к чему вы заговорили про интерфейс Err в качестве легковестного типа для исключения?

К тому, что вы легко можете передать его в качестве аргумента panic(v any).

Вы уж все-таки определитесь.

Сами определитесь с чем вы спорите.

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

Вы всегда такой буквоед? Речь шло об известной истории с падением корпоративного говнософта от CrowdStrike на 8.5 миллионах компьютерах с виндой.

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

Сам Пайк рассказывает несколько другую историю

Когда ролик посмотрите, тогда и будет с чем сравнивать.

Если Google взял готовый язык, то почему к моменту, когда Пайк и Ко решились делать Go в качестве «20% project», они педалили код в Google на C++?

На самом деле вопрос риторический.

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

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

Сами определитесь с чем вы спорите.

Нет уж, это вы определитесь: либо исключения – это фу-фу-фу от них благоразумно отказываются, даже в Go не исключения, а паники, а это другое, понимать надо. Либо исключения таки нужны, и тогда это не фу-фу-фу, а паники в Go – это теже исключения, просто немного другие, но все равно нужные.

Т.е. вам самим как-то надо с крестиком и трусами разобраться.

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

Когда ролик посмотрите

Зачем мне ролик, если есть рассказы, доклады и интервью самого Пайка?

Чтобы кто-то мне Карузо по телефону напел?

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

Вы испытываете трудности с пониманием прочитанного? В общем случае паника не рекомендуется, но иногда бывают ситуации, когда бросать и перехватывать панику необходимо. Именно поэтому паника в Go вообще есть.

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

Речь шло об известной истории с падением корпоративного говнософта от CrowdStrike на 8.5 миллионах компьютерах с виндой.

Боюсь, у меня просто с банальной эрудицией получе.

Инцидент с unwrap в Rust-овом коде был у Cloudflare: https://blog.cloudflare.com/18-november-2025-outage

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

Зачем мне ролик, если есть рассказы, доклады и интервью самого Пайка?

Чтобы узнать факты, которые Пайк в той статье не рассказал.

Чтобы кто-то мне Карузо по телефону напел?

Да, упёртые бараны не любят такое.

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

Вся проблема в том что жс по умолчанию во всех браузерах сидит.

Меня вообще это удивляет очень, почему? Взять самый паршивый ЕСМА и заюзать …

Еще более я удивился когда его стали пихать в бакенд, это точно программисты? ТС кое как выправил ситуацию.

Мое личное мнение: если человек пишет на жс он или врет или он не програмист совсем.

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

Вы испытываете трудности с пониманием прочитанного?

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

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

Хотите сказать, что у вас всегда особый случай или что у вас какой-то комплекс на 5-ю точку?

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

Да, я перепутал эти инциденты. Что это меняет? Если завтра у них ляжет софт на Go с аналогичным масштабом последствий, это как-то изменит ваше отношение к Go? Интернет обслуживается софтом далеко не только на Rust.

hummer
() автор топика

Иначе я никак не могу понять тягу к языку, в котором нет нормальной параллельности и вообще куча костылей и легаси.

Все это из браузеров, как ЕСМА выкинут из браузеров так оно сразу исчезнет.

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

json_parse: JS ██████████████░░░░░░░░░░░░░░░░░░░░░░░░░░ 4.3x быстрее

Посмотрел я тут, что rjson умеет. У меня получается, что ujson в 2 раза шустрее нативного варианта, а orjson - в 5. Получается, что последний быстрее жс-а на 10%.

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

И вообще сравнивать Go с JS это очень странно. Go нужно сравнивать с Питоном.

Почему так?

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

Боюсь, сравнение будет не в пользу питона.

Я не про это, просто если питона не хватает (скорость и т.д.) берут го.

А если Питона хватает то и фиг с ним.

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

https://github.com/LesnyRumcajs/grpc_bench/wiki/2022-04-23-bench-results

https://medium.com/clarityai-engineering/mongodb-driver-performance-in-several-languages-888899494b88

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

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

Да кто его знает. Раньше за жс держались из-за обратной совместимости. Но сейчас, как я посмотрю на неё всё больше забивают. Самые смелые разрабатывают всё только под хром последней версии. С новой волной фронтендеров это не будет так болезненно.

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

syncthing

prometheus

terraform

zrepl

+1

Нужно просто назвать что применяешь сам:

  1. ForgeJo
  2. Grafana
  3. fzf
  4. podman
  5. hugo
  6. restic
  7. rclone
  8. caddy
anonymous
()
Ответ на: комментарий от anonymous

Самые смелые разрабатывают всё только под хром последней версии.

да че они там разрабатывают то? Поди возьмут какой нибудь boost5 (или что то подобное) а у него там ограничение на браузеру и нтмл …

Они даже подумать не могут что если возьмут boost ниже то это будет работать даже в старых браузерах. Разработчики :)

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

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

Вы игнорируете то, что я написал. Вкладываете какие-то свои смыслы в мои слова. Оппонируете тезисам, которые я не высказывал. Что я тут могу сказать? Наверное, вы переутомились, вам нужно отдохнуть, съездить на море, траву, хоть, потрогать, а не вот это вот всё. Берегите себя.

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