Языки программирования
Jan. 28th, 2026 08:50 pmНавеяно постом в ленте.
Есть известный в узких кругах индекс языков программирования: TIOBE Programming Community index
Кроме самого рейтинга языков, интересен график популярности за последние 25 лет:
- Неожиданным образом в феврале 2020 года выстрелил Visual Basic. Связано ли это с ковидом? Или мелкомягкие выложили какую-то гигантскую историческую репозиторию в открытый доступ?
- Java медленно ползёт вниз с 2002 года (а может и раньше, но график начинается с 2002г). Тем не менее, прочно остаётся в тройке лидеров.
- Python прошёл пик в июле 2025г и идёт на спад. Не представляю за счёт чего. Ни один из других скриптовых языков не поднимается.
- Динозавр C за 50+ лет никуда не делся. Занимает второе место и даже пошёл на подъём. Тоже непонятно за счёт чего. Может зуммеры и хипстеры полюбили сишечку.
- C++ много лет шёл вниз наряду с Java. Но во второй половине 2010-х Страуструп и сочувствующие сумели переломить тренд. Это потребовало многолетних титанических усилий. Как технических, так и организационных, и маркетинговых. Думаю, если бы не Страуструп, то ничего бы не получилось. Страуструп сильно недооценён как коммуникатор и властитель умов.
- C# уверенно идёт вверх. Если тренд не сменится, то уже в следующем году перегонит Java. Это будет смена вех, не меньше.
Есть известный в узких кругах индекс языков программирования: TIOBE Programming Community index
Кроме самого рейтинга языков, интересен график популярности за последние 25 лет:
- Неожиданным образом в феврале 2020 года выстрелил Visual Basic. Связано ли это с ковидом? Или мелкомягкие выложили какую-то гигантскую историческую репозиторию в открытый доступ?
- Java медленно ползёт вниз с 2002 года (а может и раньше, но график начинается с 2002г). Тем не менее, прочно остаётся в тройке лидеров.
- Python прошёл пик в июле 2025г и идёт на спад. Не представляю за счёт чего. Ни один из других скриптовых языков не поднимается.
- Динозавр C за 50+ лет никуда не делся. Занимает второе место и даже пошёл на подъём. Тоже непонятно за счёт чего. Может зуммеры и хипстеры полюбили сишечку.
- C++ много лет шёл вниз наряду с Java. Но во второй половине 2010-х Страуструп и сочувствующие сумели переломить тренд. Это потребовало многолетних титанических усилий. Как технических, так и организационных, и маркетинговых. Думаю, если бы не Страуструп, то ничего бы не получилось. Страуструп сильно недооценён как коммуникатор и властитель умов.
- C# уверенно идёт вверх. Если тренд не сменится, то уже в следующем году перегонит Java. Это будет смена вех, не меньше.
no subject
Date: 2026-01-28 12:19 pm (UTC)Вообще Java и C# это одинъ и тотъ же языкъ, также мало отличающiйся отъ C++. Я не вижу вообще смысла ихъ различать.
no subject
Date: 2026-01-29 12:42 am (UTC)Спасибо за линк. Интересный пост. Но вы смотрите на языки как математик или учёный. Поэтому "Java и C# это одинъ и тотъ же языкъ, также мало отличающiйся отъ C++". Я же мастер Безенчук. Поэтому для меня важно даёт С++/C#/Java кисть или не даёт.
В этом смысле языки программирования это инструменты для решения конкретных задач. Экосистема (не люблю это слово, но ОК) вокруг языка не менее важна чем сам язык. Плюс всякие разные факторы, которые с точки зрения математики вообще не имеют значения, а для программизма имеют решающее значение.
Поэтому С++ кардинально отличается от C#/Java, буквально параллельная вселенная.
В другом журнале автор уже ответил, что по факту "элегантные" языки так и никому и не понадобились. На практике люди хотят конкретный набор, как вы говорите, ad hoc фичеров, даже несмотря на набор нерешаемых проблем X', Y', Z'. Потому что overall язык решает конкретные задачи индустрии за приемлемую цену.
Можно гадать почему люди не хотят математически красивых/точных/верифицируемых/и т.д. языков. Я подхожу к этому с позиции не математики, а биологии. Грубо говоря, "так сложилось" и это работает.
no subject
Date: 2026-01-29 08:25 am (UTC)Скажемъ, на Java / C# есть null, который даетъ exception. А въ Objective C / Swift есть nil, который не даетъ exception. А въ SQL есть NULL и сложныя правила работы съ ними. A Go-lang придумалъ, что надо писать res, err := my_function() и каждый разъ провѣрять, res != nil, err != nil.
И то, и другое, и третье, и четвертое - уродливые костыли, которыхъ вообще нѣтъ въ "элегантныхъ" языкахъ. Но программисты божатся, что только такъ и надо (null, nil, NULL, res, err != nil). И что именно это "рѣшаетъ конкретныя задачи за прiемлемую цѣну". Я считаю, что разсужденiе о "прiемлемой цѣнѣ", о "прагматической цѣнности" языковъ - это просто самообманъ и стокгольмскiй синдромъ. Программистъ вынужденъ пользоваться уродливымъ, тяжелымъ языкомъ и уговариваетъ себя, что такъ и надо.
Поэтому я бы не дѣлалъ вывода о томъ, полезны ли "элегантные" языки, рѣшаютъ ли они конкретныя задачи. Это вообще не важно, когда рѣчь идетъ объ индустрiи. Индустрiя очень долго сопротивлялась и Фортрану, и С, и С++, потому что вѣдь на ассемблерѣ надо писать, только такъ будетъ правильно. Потомъ тѣ, кто перешли на Фортранъ, не хотѣли С, а тѣ, кто перешли на С, не хотѣли С++ и т.д.
Но программисты подспудно понимаютъ, что тамъ все-таки что-то не такъ въ этихъ языкахъ (а что именно, точно не знаютъ). И поэтому всегда возникаетъ желанiе сдѣлать новый языкъ, но новый языкъ тоже всегда выходитъ криво.
Элегантные языки требуютъ свѣжей головы и готовности изучать абстракцiи. Въ сегодняшнемъ мiрѣ это уже рѣдкость. Но еще 10-20 лѣтъ назадъ было не такъ. Примѣръ - Jane Street, они взяли OCaml въ томъ видѣ, которомъ онъ былъ - никакой экосистемы, одна сплошная голая элегантность. И добились большихъ успѣховъ. Въ 2010-е годы въ Санъ Франциско такъ же брали Скалу - съ готовностью изучать монады и функторы и создавать экосистему самостоятельно. Элегантность на самомъ дѣлѣ прагматически очень полезна.
no subject
Date: 2026-01-29 09:39 am (UTC)Чем этот аргумент отличается от подобных о несовершенстве человеческой природы? Вот если бы все люди были сознательные, и честные, и трудолюбивые, и умные, вот тогда бы зажили! Но люди такие какие они есть. С этими ограничениями приходится работать.
Насчёт менеджеров. Менеджеры слушают своих спецов, и оценивают свои бюджеты и риски. Само собой, если предложить писать на языке, на который не найти специалистов, нет инфраструктуры, то редко какой менеджер на это согласится. К тому же в компаниях очень редко проекты начинаются с нуля, надо вписываться в уже существующий код и инфраструктуру.
Когда индустрия видит выгоду, то быстро мигрирует на другой язык. Мы это видели с Java/C#, которые быстро вытеснили нативные языки в узкоспециальные ниши. На десктопе сейчас вообще царит скрипт, мало кто пишет на "настоящих" языках. Потому что есть evolutionary pressure, и никуда от этого не деться.
Эксперименты с языками тестируют разные идеи. Если идея оказывается успешна, то адаптируется под мейнстримные языки. Мы это видели с лямбдой, map, reduce, и некоторыми другими элементами функциональных языков, которые попали в мейнстримные языки.
Но не бывает такого, чтобы люди взяли и придумали чудесный язык, который бы всех победил. Это всегда эволюция методом проб и ошибок в заданных рамках. Жизнь меняется, тренды меняются, языки эволюционируют вместе с жизнью.
no subject
Date: 2026-01-29 01:22 pm (UTC)Вотъ всѣ эти аргументы - что менеджеръ не согласится на рѣдкiй языкъ, нужна экосистема и т.д. - они и раньше теоретически были. Но почему-то въ 1970-е, 80-е годы это никого не останавливало. Дѣлали новые языки каждый для себя, или выбирали новые и сложные направленiя работы. Цѣлые новые процессоры даже разрабатывали. Сегодня первая мысль менеджера - какъ бы чего не вышло.
Языки "элегантные" - это мощный инструментъ, острая пила.
Эксперименты с языками тестируют разные идеи. Если идея оказывается успешна, то адаптируется под мейнстримные языки.
А потомъ приходитъ голангъ и выбрасываетъ всѣ эти идеи, замѣняя ихъ на if err := nil.
Bѣдь знали прекрасно, какъ можно. Уже былъ даже вполнѣ индустрiальный языкъ Swift, на которомъ Apple пишетъ свои продукты. Тамъ уже было видно, какъ можно обрабатывать ошибки нормально.
Нѣтъ, потому что надо, чтобы было "попроще". Эта новая революцiонная идея - что работа программиста будетъ проще, если у него будутъ болѣе тупые инструменты.
no subject
Date: 2026-01-29 11:31 pm (UTC)Но мы уже видели, что если есть значительные преимущества, то новые языки вытесняют существующие. Я не знаю почему Swift не стал мейнстримом. Возможно есть ограничения, которые не позволяют легко перейти на него.
Когда-то С/С++ был мейнстрим. Но там накопилось столько недостатков, что при первой возможности компании стали переходить на альтернативу в виде Java/C#.
По аналогии с пилой, вы предлагаете делать особые анатомически удобные ручки и специальной формы зубцы. Такая пила сразу повышает производительность на 50%. Но прежде чем делать такие ручки и такую форму зубцов, надо обучить людей их делать и затачивать. А сейчас мало кто может. Если это делать неправильно, то производительность падает даже по сравнению с "классической" пилой.
Это вечная дилемма, которая чаще всего разрешается в сторону упрощения. Заменить работника или ручку на простой пиле легче и это обычно перевешивает даже потерю производительности по сравнению со сложной пилой.
no subject
Date: 2026-01-30 08:59 am (UTC)Скажемъ, въ Германiи въ 70-80е годы фирмы разрабатывали принципiально новые языки программированiя для индустрiальныхъ приложенiй (станки и роботы съ ЧПУ).
https://www.sps-tutorial.com/programmierprachen/
Языки сѣмейства SPS - чисто нѣмецкая разработка. Фирма, гдѣ работала моя жена, была основана въ 70-е годы и сразу взяла на вооруженiе эти совершенно новые языки. Почему-то въ 70-е и 80-е годы никто не выдвигалъ аргументовъ о томъ, что, молъ, эти языки непопулярны или слишкомъ сложны.
И фирма сидитъ на нихъ до сихъ поръ, постепенно бизнесъ растетъ и ширится, но въ 21 вѣкѣ въ области программированiя инновацiй больше никакихъ не было. Системы, основанныя на SPS, несовмѣстимы ни съ чѣмъ, даже git для нихъ толкомъ не работаетъ (потому что файлы не текстовые). Сегодня никто не сталъ бы брать на вооруженiе какой-то новый, только что придуманный языкъ программированiя.
no subject
Date: 2026-01-30 09:18 am (UTC)Мне больше по душе биологические аналогии. Мне кажется что они лучше иллюстрируют происходящее.
Языки программирования, как и остальные артефакты человеческой культуры подчиняются тем же эволюционным законам что и организмы. Когда индустрия была молодая, было больше места под солнцем для всех, экспериментаторство вознаграждалось лучше. Сложность очень энергозатратна. Она должна приносить ощутимый дивиденд, чтобы организм её поддерживал.
В океане больше разнообразных форм животных. На суше сила притяжения не позволит такие странные формы и материалы. Все должны более-менее передвигаться и поддерживать своё тело.
Возможно с языками программирования происходит похожий процесс. Эволюция вышла на плато. Конкуренция сильно возросла, множество языков хорошо приспособилось под самые разные ниши. Чтобы их победить нужно что-то экстраординарное. Ну или метеорит должен упасть и уничтожить среду для конкурентов. За время существования видов были и такие, которые царствовали десятки миллионов лет без особых изменений. Настолько простая и устойчивая была конструкция. Вот типа языка С сегодня.
no subject
Date: 2026-01-28 01:00 pm (UTC)Практически весь embedded и mission critical или С, или очень сильно обрезанный С++.
no subject
Date: 2026-01-29 12:46 am (UTC)Я понимаю что для С есть много применений. Но непонятно почему вдруг такой рост.
Возможно, технологическая оборонка на подъёме (всякие дроны и автономные устройства) и это отражается в использовании языка.
no subject
Date: 2026-01-29 06:37 am (UTC)no subject
Date: 2026-01-29 06:43 am (UTC)По моим ощущениям, проекты и код растут взрывным образом. Но у меня нет никакой статистики в руках. Может быть это сильно неравномерно.
no subject
Date: 2026-01-29 07:01 am (UTC)Один индикатор показывает только изменение индикатора. Для переложения на реальность надо смотреть несколько.
Причём там всё сложно. Есть данные, кого и за сколько нанимают, но нет данных, кого увольняют. И так далее.
no subject
Date: 2026-01-28 03:35 pm (UTC)Охренел от количества изменений
no subject
Date: 2026-01-29 12:48 am (UTC)Я давно уже говорю что С++ это как китайский язык. Надо упражняться каждый день, только чтобы оставаться грамотным. Неделю не трогал, забыл всё на месяцы. И точно так же как китайский, С++ заполняет весь предоставленный объём мозга. Ни на что другое уже сил не остаётся. Соответственно выглядят и решения принимаемые такими людьми.
no subject
Date: 2026-01-28 05:24 pm (UTC)no subject
Date: 2026-01-29 12:54 am (UTC)Правда же? Скромный атлант, держащий на себе всю эту хрень, с которой мы каждый раз пытаемся взлететь.
no subject
Date: 2026-01-29 12:58 am (UTC)no subject
Date: 2026-01-29 01:24 am (UTC)Рекомендации-то они дадут, но следовать им или нет каждая компания уже будет решать сама.
no subject
Date: 2026-01-29 01:27 am (UTC)no subject
Date: 2026-01-29 02:32 am (UTC)Это они могут, да.
С другой стороны, лишь бы платили хорошо. Mortgage driven development.
no subject
Date: 2026-01-29 02:36 am (UTC)no subject
Date: 2026-01-28 06:16 pm (UTC)no subject
Date: 2026-01-29 12:57 am (UTC)Думаю, нижние строчки таблицы уже скорее статистический шум, чем твёрдые данные. Я не знаю как они оценивают популярность языка. Но если, например, опенсорс проекты влияют, то достаточно нескольких больших репозиториев, чтобы изменить тренд в районе отдельных процентов.
no subject
Date: 2026-01-29 04:30 am (UTC)Товарищи явно начали считать звезды на гитхабе до изобретения гита.Странные у них методологии.Например про Java в 2002 только-только узнали и то в основном на
фронтэндеGUI. До доминирования в бэкэнде оставались годы. В худшем случае Java5 это был пик. А в наши дни ее надо наверное суммировать с Котлин в таких подсчетах.C# в Долине вообще неизвестен как
объектструкткласс последние лет 20. Вы бы еще Azure вспомнили.А конкурент Python конечно Type Script.
no subject
Date: 2026-01-29 06:10 am (UTC)У них там ниже на странице есть таблица "Very Long Term History". Там видно что джаву они отслеживают с 1996г. Другие языки даже с конца 1980-х. Т.е., не всё так плохо.
В их методологию я не вникал, честно говоря. Но если она более-менее стабильная, то изменения от года к году тоже интересно посмотреть. По моим личным ощущениям их индекс близок к реальности.
Почему C# неизвестен в Долине мне тяжело сказать. Может в вашей конкретной области его мало. Но на enterprise рынке его навалом. В том числе и Azure: это второй после AWS провайдер: AWS Stays Ahead as Cloud Market Accelerates.
TypeScript хороший язык. Но объяснить такое падения пайтона, думаю, он не сможет. Слишком разные весовые категории.
no subject
Date: 2026-02-02 03:07 pm (UTC)no subject
Date: 2026-02-03 04:45 am (UTC)Зуммеры и хипстеры вообще не знают что такое "C".
Ну почему же. Они уже давно на рынке труда. Многие из них и в проектах на С.