Что такое TIOBE?
Индекс TIOBE — это показатель популярности языков программирования. Индекс обновляется раз в месяц… Важно заметить, что индекс TIOBE — это не признак лучшего языка программирования или языка, на котором написано больше всего строк кода.
Индекс можно использовать для проверки актуальности ваших навыков программирования или для принятия стратегического решения о том, какой язык программирования следует применять для создания новой программной системы.
Источник: tiobe.com.
Индекс языков программирования, помогающий выбрать язык, который нужно использовать. Похоже, полезная штука!
Как TIOBE вычисляет этот индекс? Звучит странно, но подсчитывается количество результатов поисковых движков по каждому языку программирования. Не количество выполняющих поиск людей, не количество отправляемых запросов, не эмоциональная составляющая запроса. Он полностью зависит от того бесполезного числа, которое возвращают поисковые движки. (Источник: TIOBE Index Definition.)
Чтобы создать иллюзию зависимости от данных, создатели индекса проверяют не один поисковый движок (google.com), а несколько (bing.com, google.de, google.co.in и некоторые другие). Но 25 бесполезных источников не лучше, чем один бесполезный источник.
Хотя по такому запросу в Google есть 24,9 миллиона результатов, не рекомендую программировать на этом языке.
Абсурдность TIOBE
Какой же итог мы получаем на выходе, имея такой мусор на входе?
Давайте посмотрим на общие тренды. Возможно, это позволит нам принимать стратегические решения.
В 2016 и 2017 годах обрушились линии трендов двух самых популярных языков в индексе: Java (зелёный) и C (чёрный). Java упал на 42%. У языка C всё было ещё хуже — 62%. Что произошло? Упал спрос или предложение? За их счёт не выросли никакие другие языки, возможно, мы наблюдаем признаки рецессии в отрасли разработки ПО? Стоит ли отдать приоритет переписыванию написанных на Java приложений?
Оказалось, что в 2018 году и C, и Java существенно выросли в индексе, вернувшись к своему уровню 2016 года. Полагаю, так получилось из-за изменений в алгоритме поиска Google. И надеюсь, никто не принимал решений на основании этих данных.
Возможно, вместо трендов мы должны учитывать рейтинг конкретных языков.
- По любой подходящей метрике (будь то пул-реквесты в Github, вопросы на StackOverflow, опросы разработчиков или количество вакансий) языком номер 1 является JavaScript. Согласно TIOBE, JavaScript (7-е место) ниже, чем Visual Basic (6-е место).
- Вероятно, вам интересно, почему Visual Basic забрался так высоко? Раньше так не было. 4 марта 2020 года его доля составляла 0,77%. Но когда мир перешёл в состояние локдауна, популярность VB взлетела до небес. 29 дней спустя он вырос в шесть раз, достигнув 4,72%, и с тех пор продолжал расти. (Кстати, подтвердить этого не может ни один другой источник. Ни тренды Google Search, ни вопросы на StackOverflow, ни что-либо иное. Что это произошло, считает только TIOBE.)
- Чтобы ощутить абсурдность этого, для контекста сообщим, что Visual Basic вдвое лучше языков Swift (1,27%) и Objective-C (0,94%) вместе взятых. Вся экосистема iOS, iPadOS, watchOS и macOS вполовину меньше могучей экосистемы Visual Basic.
- Язык ассемблера (8-е место) находится или слишком высоко, потому что никто не программирует на нём, или слишком низко, ведь разве в конечном итоге всё программирование не сводится к ассемблеру? Как бы то ни было, рейтинги ошибочны.
- К сожалению, рынок программирования на Logo (48-е место) очень сузился. Во времена своего расцвета в TIOBE он находился на 21-м месте. Это язык программирования, на котором нужно двигать черепашку по экрану.
И так можно продолжать долго. Можно задаться вопросом, почему TypeScript чахнет на 37-м месте, сильно отставая от Delphi/Object Pascal (14-е место) и Scratch (21-е место). Но вы поняли принцип — всё это может иметь смысл только по случайности.
Возможно ли, что при полностью неверных результатах индексу всё равно удаётся делать правильные прогнозы? И снова нет. В отчёте TIOBE за март 2012 года высказывается пессимизм относительно Go — популярного в 2022 году языка программирования. Также низко в рейтингах оказался Python, сегодня по любым метрикам находящийся в тройке лидеров.
Любопытно, что старых отчётов с неудачными прогнозами на сайте индекса не найти.
Выбор языков для проектов
К счастью, существуют более подходящие способы для оценки языков.
Нужно смотреть на то, насколько они технически подходят к проектам.
- Можно ли нанять/обучить разработчиков для работы с ним?
- Будут ли они рады писать на нём?
- Какой будет скорость разработки на этом языке? Какими будут эксплуатационные издержки от выполнения кода в продакшене?
- Нужно ли нам будет использовать сторонний код? Существует ли этот код и насколько он качественный?
Только ваша команда может ответить на эти вопросы. Это зависит от ваших бизнес-задач, от местного рынка труда и вашего бюджета на разработку. Если вы наняли умных людей, они смогут в этом разобраться.
Чуть в меньшей степени вашей команде нужно учитывать долговременные тенденции. В будущем язык тоже должен хорошо подходить технически. Будет плохо, если вы можете найти разработчиков сегодня, но спустя несколько лет вам придётся умолять программистов вернуться с пенсии.
Прогнозировать будущее сложно, но вы можете обратить внимание на:
- Опросы разработчиков
- StackOverflow Annual Survey — самые используемые, любимые и желанные для работодателей языки.
- JetBrains — самые популярные и быстрорастущие языки.
- Тренды Github.
- State of the Octoverse — самые популярные языки.
- количество пул-реквестов Github по языкам программирования
- Тренды StackOverflow того, о чём спрашивают люди.
- Сравнение Java, C++, C и Python
- Сравнение Kotlin, Rust, TypeScript и Swift
- Тренды Google того, что ищут люди.
- Сравнение Java, C++, C и Python
- Сравнение Kotlin, Rust, TypeScript и Swift
Как выбирать языки разработчику
В отличие от проекта, в котором нужно выбрать язык и придерживаться его, вам это делать необязательно. Если вы привязали себя к одному языку, откажитесь от этого. Вы разработчик, а не «разработчик на языке X».
Постепенно расширяйте свой инструментарий. Ваш любимый язык программирования не сможет решить любую задачу, с которой вы столкнётесь
в будущем, поэтому периодически учите новые. Если у вас в руках только молоток, всё начинает казаться гвоздями.
Если вы работали с языками, где есть сборка мусора, то попробуйте изучить язык, где есть ручная работа с памятью, и наоборот. Если вы в основном работали с императивными языками, попробуйте язык, в котором используются функциональные конструкции, и наоборот. Анализируйте известные вам языки и пробуйте те, которые предлагают что-то отличающееся.
Но что бы вы ни делали, не принимайте решение на основании количества результатов в Google.
В комментарии на Reddit мне указали на другие статьи с критикой TIOBE. В них объясняется, почему в этом индексе так высоко находятся малоизвестные языки наподобие Delphi (14-е место). Так получилось, потому что сообщество разработчиков на Delphi приложило много усилий для манипуляций с рейтингами TIOBE. Молодцы, ребята. [Прим. пер.: автор опубликованного в 2008 году поста для накрутки популярности рейтинга языка включал ключевые слова про него в личные блоги, посты на форумах и призывал других заниматься подобным.]
Комментарии (25)
HemulGM
03.08.2022 15:31+6"Так получилось, потому что сообщество разработчиков на Delphi приложило много усилий для манипуляций с рейтингами TIOBE. Молодцы, ребята. "
Т.е. один пост в одном блоге, о котором вряд ли много людей знает предложили писать в заголовке сайта "Delphi programming" - это "большая манипуляция"? Ладно, если автор так считает - пусть считает.
Автор этого поста (я про блог Делфи), является разработчиком самого языка Delphi, а так же автором книг по Delphi. Предлагать писать полное название для более удобного поиска статей и постов по Делфи - не самая плохая идея.
Пост, аж от 2008 года. Десятки сайтов по Делфи с того времени просто канули в Лету. И вы считаете, что один пост в 2008 году до сих пор имеет эффект?F0iL
04.08.2022 14:36И вы считаете, что один пост в 2008 году до сих пор имеет эффект?
В посте на реальных примерах и сравнениях вполне доходчиво демонстрируется , что конкретно этот рейтинг, судя по всему, рисуется вообще с потолка непонятно как и непонятно зачем и в целом не имеет никакого отношения к реальности. Так что влять на него может все что угодно, и пост 2008 года, и старые сайты, и желание левой пятки составителей, и положение звезд на небе :)
HemulGM
04.08.2022 14:43"Считается" кол-во результатов при поиске. Ни кто ведь не будет спорить, что информация на актуальные языки появляется чаще, чем на не актуальные? Другими словами, число результатов для не актуальных увеличивается куда медленнее, чем для актуальных. Если на старый язык число 1 млн, а на актуальный 1 млн 100 т., то через год на старый будет 1 млн. 20т., а на актуальный 2 млн.. И так далее. Будет естественный обгон.
Я не пытаюсь оправдать TIOBE индекс, это просто рассуждения.F0iL
04.08.2022 14:49Угу. Вот только в эту вашу теорию не вписывается, например, что умирающий VB с долей 0,77% у них внезапно оказался даже актуальнее чем JS и гораздо актуальнее чем ObjC+Swift :)
И как уже было сказало в статье, данные этого "рейтинга" совершенно не бьются с другими источниками.
HemulGM
04.08.2022 14:57Ну, моя теория не касается самого TIOBE, а лишь алгоритма, который, по словам TIOBE, они используют. Что там они на самом деле делают, я знать не могу) Речь ведь о претензии именно к тому посту в блоге про Делфи.
freecoder_xx
04.08.2022 12:20+1Вот здесь удобно смотреть тренды языков программирования на GitHub: https://tjpalmer.github.io/languish/
RomanistHere
04.08.2022 13:2224,9 миллиона результатов превращаются... превращаются в... 362 результата. Надеюсь 24,9 миллиона не учитываются в рейтинге TIOBE
pavel_shabalin
04.08.2022 17:01+1У меня есть ещё один новый показатель ИОБ. Индекс Очевидной Бесполезности.
Вот список по рейтингу:
Этот комментарий
Эта статья
TIOBE
olegbarabanov
05.08.2022 00:44+2Спасибо за статью. Сам после того, как не раз столкнулся с холиварами с этими рейтингами, рассмотрел их метрики более внимательно и пришел к выводу, что по факту они не отражают истинную популярность языков программирования, о чем я как-то написал год назад статью у себя на сайте (не реклама - статья чисто по теме).
Если вкратце, возьмем например "индекс TIOBE", у которых индекс рассчитывается на основе подсчета количества поисковых запросов вида `+"<language> programming"` (https://www.tiobe.com/tiobe-index/programming-languages-definition/). Лично я считаю, что такой показатель может также указывать на отвратительное качество документации языка, раз постоянно гуглить приходится.
Например, у того же PHP очень неплохая документация расположена на официальном сайте, что снижает уровень излишнего гугления и соответственно рейтинга.Или пример с TypeScript, который в итоге транспилируется в JavaScript. и если потом вылазят какие-то проблемы, вы можете гугля проблему неявно добавить +1 к рейтингу JavaScript. Тоже самое касается и WASM, ибо для взаимодействия с браузером всеравно нужен JavaScript. Является ли это корректным показателем популярности JavaScript - спорно.
В случае с рейтингом GitHub тоже не все гладко. Github учитывает только то, что в Github, а ведь есть еще и Gitlab, BitBucket и пр. Помимо этого, часто на Github в репозитории размещают какие-то веб-страницы через GitHub Pages и тупо используют его как хостинг, но тем самым добавляя +1 к популярности HTML+ CSS + JS.
Метод расчет рейтинга IEEE Spetrum описан у них на странице. Согласно этой странице, они используют данные из 8-ми источников (CareerBuilder, GitHub, Google, Hacker News, IEEE, Reddit, Stack Overflow, Twitter) и они приплетают информацию с собственного сайта вакансий jobs.ieee.com и careerbuilder.com, в которых в основном представлены вакансии только из США. Поисковые запросы Google (среди поисковиков используют только его) они используют по тому же принципу что и TIOBE, с теми же проблемами, что я описал выше на примере TypeScript. В общем тоже совсем не лучший вариант.
Помню, кто-то хвастался каким-то рейтингом Wappalyzer - те вообще специализируется на веб-приложениях и там соответственно PHP вырывается сильно вперед.
По итогу, этими рейтингами можно только манипулировать (в рекламе, в спорах и пр.), но реальность они не передают. Хотя с другой стороны, а многие ли будут всматриваться в суть этих рейтингов?
И вообще, касательно популярности языков программирования, напомню слова Бьерна Страуструпа:
Есть всего два типа языков программирования: те, на которые люди всё время ругаются, и те, которые никто не использует.
P.S. Вспомнил, что видел какую-то рекламу каких-то типичных курсов, где про один из рекламируемых языков было написано, что "...язык X является 1-м по популярности согласно рейтингу Y, поэтому вы легко найдете работу..." и рядом с этой рекламой, была другая реклама от этой же конторы, где было написано тоже самое про другой язык, только там был упомянут уже другой рейтинг. В общем - манипуляция в чистом виде.
Andrykor
05.08.2022 08:36-1Delphi не мёртвый язык. Почему автор так считает непонятно, с учётом что это переведённая статья. Сейчас Delphi входит в пакет RAD Studio от embarcadero с поддержкой языка: каждый год выходит новая версия под современные нужды:
Сейчас прекрасно можно создать приложение под windows, ios, android и linux именно на Delphi. Всё стабильно работает.
Visual Basic net очень частый язык в образовании (школы, вузы, техникумы, и доп. образование), как и scratch .F0iL
05.08.2022 10:04-1Обычно когда про язык программирования говорят "мертвый", имеют в виду "неактуальный". Что толку, что платформа хорошая технически, и выходят ее новые современные версии, если ей пользуются десятые доли процента компаний в индустрии, и то потому, что вынуждены тащить старое легаси или переиспользовать древние наработки, а программисты в технологии слабо заинтересованы? Так-то даже для COBOL сегодня выходят новые инструменты, но кто в здравом уме будет утверждать, что этот язык актуален и живее всех живых? Про Delphi можно посмотреть по активности сообщества:
Ну допустим сидит у нас .net разработчик и delphi разработчик.
-Как только нужно планировать обучение на следующий год .net разработчик сразу же кидает начальству 10-к крутых курсов. Delphi разработчик грустит.
— .net разработчик ездит на конференции, ходит на митапы, рассказывает про новые плюшки языка или про тех самых идиотов, которые слили проект. Delphi разработчик грустит
— Delphi разработчик потихоньку читает руководство по C#, потихоньку ходит на митапы и вливается в C# тусовку.
— В конце-концов Delphi разработчик приходит к начальству и просит либо перебросить его в команду .net либо он сам это сделает но в другой компании
Отсюда: https://habr.com/ru/post/481534/comments/#comment_21070840И самое главное, по количеству доступных и интересных вакансий для этой технологии и динамике их роста.
Я тоже когда-то писал на делфях, а потом обнаружил, что в своём городе могу устроиться только в пенсионный фонд, на водоканал и в тому подобные заведения, удалёнки нет, заказов на фрилансе тоже, зарплаты жалкие на фоне программистов на java или даже python.
Отсюда: https://habr.com/ru/post/578720/comments/#comment_23515102Если сравнить число вакансий на Delphi и других языках в крупных IT-городах России и мира, то сразу видно, что доля Delphi исчезающе мала, и самое плохое - уменьшается с каждым годом:
Москва (HH.ru):
python - 4500
java - 3100
c# - 1700
delphi - 104Санкт -Петербург (HH.ru):
python - 1300
java - 875
c# - 472
delphi - 45Berlin, Germany (LinkedIn):
python - 18k
java - 18k
delphi - 39New York USA (LinkedIn):
java - 82k
python - 84k
delphi - 130Berlin, Germany (Glassdoor):
python - 2755
java - 3655
delphi - 22New York, USA (Glassdoor):
java - 4346
python - 7054
delphi - 8(Кремниевую долину я уж добавлять не стал, чтоб совсем смешно не было; хотелось бы добавить ещё C# в иностранный список, но Linkedin ломается на символе решетки и добавляет в список кучу всего левого, поэтому ради справедливости его не включил в статистику).
Короче говоря, рассуждая про актуальность Delphiв наши дни, видно, что основная проблема Delphi не в технической плоскости, а в карьерно-проектно-административной. Вакансий на Delphi даже в России (где он в былые годы был сверхпопулярен) очень и очень мало, а в Европе и США так вообще исчезающе мало. Из того что есть, процент тех, что действительно интересны по своей тематике и не сводятся к тупому виндовому формошлепанью или поддержке древнего унылого легаси, хоть и ненулевой, но тоже еще более мал. Да, конечно, при большом желании можно упороться найти
жемчужину в камазе говнаиголку в стоге сена, но тут у программиста возникает вопрос - а зачем? На других языках выбор вакансий в десятки и сотни раз больше, проекты можно найти ничуть не менее интересные, денег платят не меньше (а нередко даже больше), всякие интересности, а бонусом будет еще больше практического опыта разработки на том стеке, что точно пригодится при следующей смене работы.Казалось бы, причем тут желания программистов? А при том, что из этого вытекает то, что со стороны проектов и компаний все примерно так же. Во-первых, преимущества современного Delphi (их не так много, но глупо отрицать, что они безусловно есть), как правило, все-таки не перевешивают необходимость менять сложившиеся инструменты и инфраструктуру, наворачивать слои интеграции с существующими компонентами, и т.д. Во-вторых, даже в случае запуска полностью новых проектов с нуля мы имеем классический дедлок, вытекающий из предыдущего абзаца: разработчики не заинтересованы в Delphi потому что на нем мало хороших вакансий, а вакансий на нем мало потому что никто в здравом уме без очень существенных причин не будет делать в новом проекте ставку на какую-то технологию (к тому же огороженную и проприетарную), с которой мало кто хочет иметь дело и поэтому это может вылиться в серьезные проблемы в будущем.
Andrykor
05.08.2022 10:23-2Но подождите. Вы видели и работали в RAD studio? Сейчас там есть интеграция и с python и продолжается поддержка C++
Это предубеждение. Никто уже не пишет на чистом Delphi как это было 10 -15 лет назад. Уже другие направления. И они очень крутые.
По некоторым показателям круче чем тот же visual studio с поддержкой тех же языков C++ и python.
Например, тот же python - это полумёртвый язык. Он жив только благодаря распиаренной компании. По факту на этом языке мало ниш где разрабатываются коммерческие проекты. Он больше для быстрого прототипирования, а как нужно создать стабильное приложение то C++, C#, Java, Delphi, Visual Basic...
Понятно, что многие гонятся за модой и толпой. Напомнило это вот таким высказыванием.F0iL
05.08.2022 10:33+1Вы видели и работали в RAD studio? Сейчас там есть интеграция и с python и продолжается поддержка C++ ... Никто уже не пишет на чистом Delphi как это было 10 -15 лет назад
И в оригинальной статье, и в первом комментарии в ветке речь шла именно о Delphi как о языке, а не про RAD Studio в целом как IDE. Поэтому именно о Delphi я и отвечал.
Andrykor
05.08.2022 13:43Но я уже не встречал где кроме RAD Studio и в FireMonkey (который кростплатформенный) используется язык Delphi, как минимум лет 10 уже.
Поэтому, говоря о Delphi всё таки подразумевается современный вариант использования и применения.
Одна из лучших программ по фракталам Apophysis как раз написана на старом Delphi. Пока лучше для математических вычислений и не найдено
ford153focus
Top Programming Languages - IEEE Spectrum
для полноты набора альтернатив
calculator212
Забавно, что авторы рейтинга считают sql и html языками программирования.
KiddingBanana
К слову, HTML в связке с CSS [полны по Тьюрингу](http://eli.fox-epste.in/rule110-full.html)
Polniy
Так они есть декларативные языки программирования. Мне кажется, это уже вполне устоявшийся термин.
schmitzer
Мне кажется, всё же устоявшимися являются определения язык стилей (в случае CSS) и язык запросов (в случае SQL).
Polniy
Так Вы опровергаете или подтверждаете, что SQL/HTML декларативные языки программирования? Обсуждение же началось с этого, а не с того, что у технологий есть несколько определений :)