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

Возьми мой пример на Go и попробуй точно так же реализовать его на Java - получишь отражение проблемы.
нужна реализация двух интерфейсов в одном классе
Перечитай самый первый пример с LinkedList или пример на Go

Ну, хорошо. Возьмём пример на Go.

Вот как выглядит его версия на яве, где впендюрили общий интерфейс, хотя он вроде тут уже опционален:

class BeepBoopImpl <T extends Beep & Boop> implements BeepBoop {
    private T impl;

    public void beep() {
        impl.beep();
    }

    public void boop() {
        impl.boop();
    }

    public BeepBoopImpl(T impl) {
        this.impl = impl;
    }
}

public void main(String[] args) {
    Impl1 impl = new Impl1();
    BeepBoop b1 = new BeepBoopImpl<>(impl);
    foo(b1);

    Impl2 imp2 = new Impl2();
    BeepBoop b2 = new BeepBoopImpl<>(imp2);
    foo(b2);

}

interface BeepBoop extends Beep, Boop {
}

// emulates injection
static void foo(BeepBoop bb) {
    bb.beep();
    bb.boop();
}

// normally in a 3rd party library that doesn't know interface BeepBoop
interface Beep {
    void beep();
}

interface Boop {
    void boop();
}


class Impl1 implements Beep, Boop {
    @Override
    public void beep() {
        System.out.println("Impl1 beep.");
    }

    @Override
    public void boop() {
        System.out.println("Impl1 boop.");
    }
}

class Impl2 implements Beep, Boop {
    @Override
    public void beep() {
        System.out.println("Impl2 beep.");
    }

    @Override
    public void boop() {
        System.out.println("Impl2 boop.");
    }
}

В чём тут проблема с явой?

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

Ну, если вы настаиваете, то вот вам более полный ответ: кто преследует, тот следует. Если вы спорите с идиотом, тот в данный момент скорее всего занят тем же самым. Разговаривая с человеком, вы ставите себя с ним на один уровень. Поэтому я, установив, что собеседник — дурачёк, шизик, странненький и вообще жалкая, ничтожная личность, прекращаю ему что-то доказывать. Что и произошло в данном обсуждении. Смеяться над чужими недостатками, либо использовать их в качестве иллюстрации в общении с другими людьми грешно вполне можно. Поведение @eao197 же иное, он раз за разом сначала характеризует собеседника идиотом, а потом всерьёз с ним общается. Что является безумием и глупостью по причинам, изложенным выше.

P.S. Каким образом обещание должности является переходом на личность я не понял. Впрочем, я это как-нибудь переживу.

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

P.S. Каким образом обещание должности является переходом на личность я не понял.

Это ты сейчас дурачка включил, что якобы не пытался перейти на личность и хотел мне сделать job offer?

Ну, если вы настаиваете,

Для протокола - я вот вообще ни разу не настаиваю. Мне совершенно фиолетова мотивация щитпостеров щитпостить.

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

Ну, для протокола, так для протокола: ваша личность мне совершенно не интересна. Порассуждать отчего неглупые люди совершают примитивные ошибки на ровном месте — интересно. А вы — нет.

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

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

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

… человеческий фактор не следует сбрасывать со счетов. Чтобы на С++ писать … промышленным способом нужно … напряжённо учиться … Поэтому предложение использовать другой язык воспринимается как личное оскорбление.

Безусловно! Правда я комментировал с позиции создателя и спонсора языка. Они создали DSL язык. Язык выстрелил. Теперь они хотят расширить аудиторию…

Вы комментируете с точки зрения потребителя языка как ещё одного конкурента сложившейся традиции. Независимо от преимуществ нового (если они вообще есть), самое лучшее что можно получить от потребителя это настороженное ожидание. Но наиболее вероятная реакция - это реакция, которую мы наблюдаем на примере Раст или ИИ, активное отторжение.

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

Какого именно что, языка? Да любого. Любой язык или создаётся по-потребности, или за деньги, или одновременно и так и так. Чаще всего это просто диссер какого-нибудь студента.

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

Они создали DSL язык. Язык выстрелил. Теперь они хотят расширить аудиторию…

К сожалению, вы правы. В IT вообще едея «давайте добавим новую возможность» продаётся гораздо лучше, чем любая другая. И чего с этим делать совершенно не понятно.

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

впишутся ли эти функции органично в существующую модель языка Go

Ну вот именно потому что Пайк думает, что не впишется, каждый достаточно большой проект на Go реализует половину Common Lisp свои костыли типа:

func Map[T, R any](c iter.Seq[T], f func(T) R) iter.Seq[R] {
    return func(yield func(R) bool) {
        for v := range c {
            if !yield(f(v)) {
                return
            }
        }
    }
}

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

Поведение @eao197 же иное, он раз за разом сначала характеризует собеседника идиотом, а потом всерьёз с ним общается.

Какое, однако, серьезное заблуждение.

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

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

Во-вторых, очередная цитата из последовательного в своих словах и действиях ugoday-я: «Вашу любовь переходить на личности я давно приметил. Следовать этому примеру, однако, не стану.»

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

Я думаю, он тупо не умеет инжектить без спринга - по этому и кода мы не (у-) видим

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

Дерево содержит сотни миллионов узлов?

Разница видна даже на масштабе десятка миллионов значений в контейнере.

Go не претендовал быть неоспоримым лидером в этой области.

Зачастую заглядывая в код на Go ловлю себя на том, что заглядываю в код на clipper/FoxBase/FoxPro из 1990-х. Тоже были языки заточенные под конкретную задачу, отлично с ней справлялись и к которым никто особо требований по выразительности не предъявлял.

Я за всю практику ни разу не допустил данной ошибки и ни разу не увидел её в чужом коде.

На самом деле здесь две ошибки. Одна как раз была замаскирована тем, что обработка err якобы была.

Показательно, как по мне.

Давайте я вам такую аналогию приведу: в обычном C++ном коде у меня не бывает ошибок из категории double free и memory leak, просто потому, что уже давно не нужно вручную управлять памятью (в обычном коде).

Значит ли это, что таких проблем нет в принципе? Что нет людей, которые на эти грабли наступают? Имеет ли смысл рассуждая о способах защиты от double free и memory leak опираться на мнение одного человека, у которого нет проблем с этим классом ошибок?

И если мы возьмем языки с GC, в которых double free и memory leak нет в принципе, то какой из подходов таки надежнее?

Я ума не приложу, в соответствии с какими эстетическими стандартами можно найти существенную разницу между sort.SearchInts() и sort.Search[int](). Разница настолько маргинальна, что сама попытка раздуть её вызывает подозрения.

А разве в Go-шном пакете sort есть обобщенная версия Search?

Давайте возьмем некий гипотетический пакет processing в котором до появления дженериков были написаны ProcessInts, ProcessFloats, ProcessUints, ProcessStrings. Из-за чего в коде приходилось писать processing.ProcessInts(data). А потом повторять тоже самое, но уже с вызовом processing.ProcessUints(data).

Тогда как в случае поддержки обобщенного программирования можно было бы просто писать processing.Process(data), а компилятор бы сам определял тип data посредством вывода типов.

То есть исследования измеряются не в годах, а во влиянии на индустрию.

Которого ни у Alef, ни у Limbo практически не было. Не только лишь все даже слышали о существовании таких языков.

Go – да, оказал и оказывает влияние на индустрию.

Как и Java в свое время.

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

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

Как по мне, так с Go происходит тоже самое.

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

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

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

Надо, чтобы на этапе макроподстановки были доступны функции языка. Вот и всё.

Хорошо, покажите такой ЯП.

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

Как по мне, так с Go происходит тоже самое.

Так стоп. Го здесь за место кого?

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

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

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

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

Не уверен в пропорциональности ибо ллм обучены по ЯПам на разных уровнях + когнитивная сложность ЯП влияет (например все языки с динамической типизацией всегда будут сложнее из-за вариативности решений одной и той же задачи).

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

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

Кстати, интересный вопрос - одинаково ли программисты базовых языков используют vibe coding. Почему то интуиция мне подсказывает, что нет. И если действительно нет, то запросы в поиск будут снижаться неравномерно, более частые vibe coder-ы ухудшают статистику для «своих» языков.

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

Кстати, интересный вопрос - одинаково ли программисты базовых языков используют vibe coding.

vibe coding популярен по той причине, что и до ныне нет хорошего API.
А это весьма торомозит развитие технологий.
Например std, стандарты C++, … не улучшают его, а создают высокие заборы для развития технологий.
Например можно ли используя std создать сложный объект, которы можно в бинарном его представлении
сохранить в файле и изменять его в нём.
Нет.
Поэтому то разработал API использующее метаданных создавать объекты архитектуру, которых можно
изменять в run-time, сохранять их бинарном представлении в файлах или объектной СУБД, изменять и в файле и загружать в память.
Проще говоря сериализация нервно кусает губы и хмуро смотрит на эти объекты.
А в C++ в нынешнем виде лишь два с половиной человека в мире понимают его синтаксис.
А споров с надуманием щёк на форумах о C+++ ОКЕАН.

Кстати технология ИИ в ныненшнй реализации уйдёт в небытие так имеются много более эффективные алгоритмы работы с знаниями.
Ныне этот хайп лишь на руку производителям компьютеров …

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

Ныне этот хайп лишь на руку производителям компьютеров …

С ума сойти. А отгадайте с 3х раз кому был выгоден хайп с майнингом. (это не вопрос)

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

С ума сойти. А отгадайте с 3х раз кому был выгоден хайп с майнингом. (это не вопрос)

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

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

Лохов на которых можно заработать баксы много.

C ИИ все гораздо хуже :(

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

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

Лохов на которых можно заработать баксы много.

Знаете в чём самая большая проблема ныне в развитии IT технологий?
Всё ждут ХАЛЯВЫ и ей поклоняются, а сами и палец о палец не хотят ударить для создания новых технологий.

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

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

Самое интересное будет, когда в очередной раз всех «кинут».
Идея создания ИИ здравая, но она как маска (из известного фильма), которую доступна злодеям и тогда …
Вот смотрите.
ИИ напичкивают знаниями.
Возьмём к примеру историю.
В каждой стране своя некая трактовка исторических событий.
И такого рода примеров «знаний» можно привести не мало.

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

Что происходит с популярностью Go?Данный тред на первом месте ЛОРа, например :)

Go пожалуй неплох и с использованием его можно решать эффективно многие задачи.

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

Самое интересное будет, когда в очередной раз всех «кинут».

Перечитайте мое последнее предложение.

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

Понимаете что слово конторка тут можно заменить на любое …

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

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

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

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

Ныне ИИ хороша там, где знания формализованы - математика, IT технологии, …

В многих предметных областях «знания» весьма расплывчаты.
Например: история, политика, …

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

знания, но ныне этих знаний недостаточно, чтобы заменить человека на производстве.

Интересно когда ИИ подскажет начальнику конторки как ‘оптимизировать’ штат, он не забудет намекнуть что делать с выкинутыми людьми?

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

Интересно когда ИИ подскажет начальнику конторки как ‘оптимизировать’ штат, он не забудет намекнуть что делать с выкинутыми людьми?

Хороший пример привели.
Он затрагивает духовность начальника (добрый, злой, есть ли ему дело до производства, …).
Эту задачу ИИ не смжожет решить по той причине, что формализованных знаний такого рода просто нет.
Точнее они есть, но людям они пофиг.
У каждого человека свой кодекс «знаний».

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

Данный тред на первом месте ЛОРа, например :)

Не, нут тут вообще всё обсудили. И С, и плюсы, и жаву, и жаваскрипт, и питон. Плюс срач ради срача, куда же без него. Подача хорошая, но дальше курилка обычная. Тут по теме едва ли пару страниц наберётся.

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

но дальше курилка обычная.

Многие треды именно такие.
Главное чтобы кто-то вспомнил «небо голубое», а дальше «огородами, огородами и к Котовскому».

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

Не, нут тут вообще всё обсудили. И С, и плюсы, и жаву, и жаваскрипт, и питон.

Хороший вы человек.
Не обсудили ведь, а … (ну вы поняли).

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

Знаете, ровно так обсуждения в интернете и выглядят

Обратил внимание на то, что многие профи в форумах не участвуют.
Форум это «лавочка для бабушек», а таковые работяги.
У них нет времени обсуждать питон, C++, …

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

Обратил внимание на то, что многие профи в форумах не участвуют.

Ну тоже понятно, время только тратить.

ПС. Скрытая под… подколка? Одобряю.

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

Обратил внимание на то, что многие профи в форумах не участвуют.

А может раз вы знаете что Профи не участвуют, просветите что они делают в свободное от работы время?

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

ПС. Скрытая под… подколка? Одобряю.

Вовсе не подколка.
Тредов весьма мало в которых имеются профессиональное обсуждение.
В основном всё зиждется на «сам дурак».

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

И да забыл добавить.

Основываюсь на собственном опыте, люди лазающие по горам и сплавляющихся (в летнее время) по речке не фига не профи. По крайне мере то окружение что было у меня, вроде такие же взрослые, и зп большие и работают в крутых фирмах но у них жестокое разделение ИИ и жизнь. Лично я этого не понимаю.

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

Основываюсь на собственном опыте, люди лазающие по горам и сплавляющихся (в летнее время) по речке не фига не профи.

Почему?
Многие академики были альпинистами, …

Кстати встретил вчера пожилого человека, который рассказывал как работал с Сахаровым.
Если он правду говорит, то в 60-х Сахарова посадили за то, что он дал добро на результате исследования Туринской плащаницы.
Сахарова характеризовал как весьма честного, хорошего и порядочного человека.

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