- TIOBE Index for July 2023
- Very Long Term History
- Programming Language Hall of Fame
- Bugs & Change Requests
- Хватит ссылаться на TIOBE
- Абсурдность TIOBE
- Выбор языков для проектов
- Как выбирать языки разработчику
- Лучший язык программирования: рейтинг TIOBE 2022
- Python, C и C++ соревнуются за звание лучшего языка
- Пара слов о других языках
- Выводы
TIOBE Index for July 2023
This month the following changes have been made to the definition of the index:
Very Long Term History
To see the bigger picture, please find below the positions of the top 10 programming languages of many years back. Please note that these are average positions for a period of 12 months.
Programming Language | 2023 | 2018 | 2013 | 2008 | 2003 | 1998 | 1993 | 1988 |
---|---|---|---|---|---|---|---|---|
Python | 1 | 4 | 8 | 7 | 12 | 25 | 19 | — |
C | 2 | 2 | 1 | 2 | 2 | 1 | 1 | 1 |
Java | 3 | 1 | 2 | 1 | 1 | 18 | — | — |
C++ | 4 | 3 | 4 | 4 | 3 | 2 | 2 | 5 |
C# | 5 | 5 | 5 | 8 | 9 | — | — | — |
Visual Basic | 6 | 15 | — | — | — | — | — | — |
JavaScript | 7 | 7 | 11 | 9 | 8 | 22 | — | — |
SQL | 8 | 251 | — | — | 7 | — | — | — |
PHP | 9 | 8 | 6 | 5 | 6 | — | — | — |
Assembly language | 10 | 13 | — | — | — | — | — | — |
Fortran | 19 | 30 | 27 | 21 | 13 | 7 | 3 | 16 |
Objective-C | 21 | 17 | 3 | 42 | 54 | — | — | — |
Ada | 25 | 27 | 19 | 19 | 16 | 10 | 5 | 3 |
Lisp | 29 | 31 | 12 | 16 | 14 | 8 | 6 | 2 |
(Visual) Basic | — | — | 7 | 3 | 5 | 3 | 8 | 6 |
There are 2 important remarks here:
- There is a difference between «Visual Basic» and «(Visual) Basic» in the table above. Until 2010, «(Visual) Basic» referred to all possible dialects of Basic, including Visual Basic. After some discussion, it has been decided to split «(Visual) Basic» into all its dialects such as Visual Basic .NET, Classic Visual Basic, PureBasic, and Small Basic, just to name a few. Since Visual Basic .NET has become the major implementation of Visual Basic, it is now called «Visual Basic».
- The programming language SQL was added to the TIOBE index in 2018 after somebody pointed out that SQL is Turing Complete. So although this language is very old, it has only a short history in the index.
Programming Language Hall of Fame
The hall of fame listing all «Programming Language of the Year» award winners is shown below. The award is given to the programming language that has the highest rise in ratings in a year.
Year | Winner |
---|---|
2022 | C++ |
2021 | Python |
2020 | Python |
2019 | C |
2018 | Python |
2017 | C |
2016 | Go |
2015 | Java |
2014 | JavaScript |
2013 | Transact-SQL |
2012 | Objective-C |
2011 | Objective-C |
2010 | Python |
2009 | Go |
2008 | C |
2007 | Python |
2006 | Ruby |
2005 | Java |
2004 | PHP |
2003 | C++ |
Bugs & Change Requests
This is the top 5 of most requested changes and bugs. If you have any suggestions how to improve the index don’t hesitate to send an e-mail to tpci@tiobe.com.
- Apart from “ programming”, also other queries such as “programming with ”, “ development” and “ coding” should be tried out.
- Add queries for other natural languages (apart from English). The idea is to start with the Chinese search engine Baidu. This has been implemented partially and will be completed the next few months.
- Add a list of all search term requests that have been rejected. This is to minimize the number of recurring mails about Rails, JQuery, JSP, etc.
- Start a TIOBE index for databases, software configuration management systems and application frameworks.
- Some search engines allow to query pages that have been added last year. The TIOBE index should only track those recently added pages.
Хватит ссылаться на TIOBE
Индекс TIOBE — это показатель популярности языков программирования. Индекс обновляется раз в месяц… Важно заметить, что индекс TIOBE — это не признак лучшего языка программирования или языка, на котором написано больше всего строк кода.
Индекс можно использовать для проверки актуальности ваших навыков программирования или для принятия стратегического решения о том, какой язык программирования следует применять для создания новой программной системы.
Индекс языков программирования, помогающий выбрать язык, который нужно использовать. Похоже, полезная штука!
Как 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-м месте. Это язык программирования, на котором нужно двигать черепашку по экрану.
Возможно ли, что при полностью неверных результатах индексу всё равно удаётся делать правильные прогнозы? И снова нет. В отчёте TIOBE за март 2012 года высказывается пессимизм относительно Go — популярного в 2022 году языка программирования. Также низко в рейтингах оказался Python, сегодня по любым метрикам находящийся в тройке лидеров.
Любопытно, что старых отчётов с неудачными прогнозами на сайте индекса не найти.
Выбор языков для проектов
К счастью, существуют более подходящие способы для оценки языков.
Нужно смотреть на то, насколько они технически подходят к проектам.
- Можно ли нанять/обучить разработчиков для работы с ним?
- Будут ли они рады писать на нём?
- Какой будет скорость разработки на этом языке? Какими будут эксплуатационные издержки от выполнения кода в продакшене?
- Нужно ли нам будет использовать сторонний код? Существует ли этот код и насколько он качественный?
Чуть в меньшей степени вашей команде нужно учитывать долговременные тенденции. В будущем язык тоже должен хорошо подходить технически. Будет плохо, если вы можете найти разработчиков сегодня, но спустя несколько лет вам придётся умолять программистов вернуться с пенсии.
Прогнозировать будущее сложно, но вы можете обратить внимание на:
- Опросы разработчиков
- StackOverflow Annual Survey — самые используемые, любимые и желанные для работодателей языки.
- JetBrains — самые популярные и быстрорастущие языки.
- State of the Octoverse — самые популярные языки.
- количество пул-реквестов Github по языкам программирования
- Сравнение Java, C++, C и Python
- Сравнение Kotlin, Rust, TypeScript и Swift
- Сравнение Java, C++, C и Python
- Сравнение Kotlin, Rust, TypeScript и Swift
Как выбирать языки разработчику
В отличие от проекта, в котором нужно выбрать язык и придерживаться его, вам это делать необязательно. Если вы привязали себя к одному языку, откажитесь от этого. Вы разработчик, а не «разработчик на языке X».
Постепенно расширяйте свой инструментарий. Ваш любимый язык программирования не сможет решить любую задачу, с которой вы столкнётесь
в будущем, поэтому периодически учите новые. Если у вас в руках только молоток, всё начинает казаться гвоздями.Если вы работали с языками, где есть сборка мусора, то попробуйте изучить язык, где есть ручная работа с памятью, и наоборот. Если вы в основном работали с императивными языками, попробуйте язык, в котором используются функциональные конструкции, и наоборот. Анализируйте известные вам языки и пробуйте те, которые предлагают что-то отличающееся.
Но что бы вы ни делали, не принимайте решение на основании количества результатов в Google.
В комментарии на Reddit мне указали на другие статьи с критикой TIOBE. В них объясняется, почему в этом индексе так высоко находятся малоизвестные языки наподобие Delphi (14-е место). Так получилось, потому что сообщество разработчиков на Delphi приложило много усилий для манипуляций с рейтингами TIOBE. Молодцы, ребята. [Прим. пер.: автор опубликованного в 2008 году поста для накрутки популярности рейтинга языка включал ключевые слова про него в личные блоги, посты на форумах и призывал других заниматься подобным.]
Лучший язык программирования: рейтинг TIOBE 2022
На днях у нас прошёл батл языков программирования 2022, и настало время обратиться к рейтингам TIOBE.
Напомним, что индекс TIOBE оценивает популярность языков программирования, основываясь на поисковых запросах, которые содержат тот или иной язык. Для формирования индекса используются такие ресурсы, как Google, YouTube, Amazon, Wikipedia, Yahoo!, Bing и Baidu.
Python, C и C++ соревнуются за звание лучшего языка
Именно таковы результаты по состоянию на конец декабря — двадцать языков программирования с наибольшей рыночной долей по версии TIOBE:
Ещё в прошлом году Java уверенно держалась в тройке, но теперь уступила своё место «плюсам». Любопытно, что в последний раз C++ становился лидером рейтинга TIOBE в далёком 2003 году, и это впервые, когда данный язык программирования обошёл Java по поисковым запросам. При этом Java входила в топ-3 свыше двадцати лет, начиная с 2001.
Уже в следующем месяце мы узнаем имя победителя. Каждый из лидирующей тройки уже занимал первое место по итогам года:
- C++ — 1 раз (2003).
- C — 3 раза (2008, 2017, 2019).
- Python — 5 раз (2007, 2010, 2018, 2020, 2021).
Пара слов о других языках
Помимо прочего, мы видим, как Kotlin и Julia приближаются к топ-20, JavaScript держится в семёрке, а PHP вырывается в десятку, тогда как в прошлом году занял 12-е место.
Интересно, что Go поднялся аж на 7 позиций и теперь занял 12-е место рейтинга. Стоит отметить, что по версии GitHub за третий квартал 2022 Golang также находится на четвёртом месте по популярности, обогнав при этом PHP, C, C#, Ruby, TypeScript и JavaScript. Тенденция налицо:
На 18-е место рейтинга TIOBE вернулся Perl. Rust удерживает 20 позицию. Что касается Delphi, то он всю осень прыгал туда-сюда:
В декабре же язык опустился на 16 место (0.85%), что соответствует результатам декабря прошлого года.
Выводы
Разумеется, рейтинг языков программирования 2022 TIOBE сложно назвать объективным, так как он рассматривает лишь один аспект — популярность ЯП в поисковых запросах пользователей. Он не отражает реальный рыночный спрос или количество написанного кода, как это делает GitHub в своих отчётах на основе проектов.
Тем не менее, индекс TIOBE можно использовать, чтобы проверить, актуальны ли ваши навыки, или принять решение о том, на какой язык программирования можно перейти или какой следует использовать при написании новой программы.