Рейтинги языков программирования Что они показывают на самом деле?
Все люди, независимо от их возраста, пола и образования, любят читать разнообразные рейтинги. Не меньше, впрочем, любят они их и составлять, хотя обычно это хобби является прерогативой журналистов и различных аналитических компаний. Программисты - тоже люди, и поэтому существование рейтингов языков программирования вполне естественно.
Рейтинг рейтингу рознь
Любые рейтинги - это, что называется, палка о двух концах. С одной стороны, они, конечно, обычно базируются на каких-то терпеливо собранных данных, а потому так или иначе отражают какие-то тенденции, актуальные для того рынка, на основе которого составлялся рейтинг. С другой стороны, всё-таки рейтинги составляют люди, и совершенно невозможно исключить влияние субъективного фактора на итоговые позиции отдельных участников.
Что касается языков программирования, то здесь рейтинги могут преследовать самые разные цели. Но обычно главный критерий, который служит для выставления "оценок" и раздачи "призовых мест" участникам рейтинга - популярность этих языков. Под популярностью, как правило, понимается количество программистов, работающих на том или ином языке. Иногда для рейтингов используют иные показатели - среднюю зарплату программистов, которые пишут на этом языке, количество проектов на SourceForge.net и прочие не менее наглядные "пузомерки".
Какова основная цель рейтингов? Их авторы пишут, что они стараются помочь молодому поколению, которое стоит на распутье и выбирает, на чем ему программировать, и приводят массу ничуть не менее благих целей. Но, конечно, ни для кого не секрет, что основная цель создателей подобных рейтингов - это пиар и продвижение себя любимых. Многие рейтинги составляются обычно just for fun и, как правило, именно они служат наиболее плодородной почвой для разнообразных "холиваров". Но большая часть рейтингов, к сожалению или счастью, остаётся обсуждаемой совсем недолго просто по причине недостаточной авторитетности их составителей.
Tiobe
Наиболее авторитетным из всех по языкам программирования может считаться рейтинг, составляемый компанией Tiobe Software. Индекс популярности TIOBE не пытается определить лучший язык программирования по самому большому количеству написанных строк кода, а строит свои доводы по изменению интереса к языкам на основе анализа статистики запросов Google, Google Blogs, Yahoo!, Wikipedia, MSN и даже YouTube.
Индекс Tiobe обновляется ежемесячно, последние результаты (на момент написания заметки - за апрель 2011) можно найти по адресу www.tiobe.com/index.php/content/paperinfo/tpci/index.html.
Если вам станет интересно, какими критериями руководствуются составители этого рейтинга, какие языки имеют шансы в него войти и прочие подробности, то стоит посетить страницу www.tiobe.com/index.php/content/paperinfo/tpci/tpci_definition.htm (осторожно, там всё на английском).
Рейтинг Tiobe показывает не только текущую позицию языка программирования, но и её динамику, то есть говорит, какие языки программирования становятся более популярными, а какие, напротив, теряют своих сторонников.
На апрель 2011-го "топ" выглядел следующим образом:
Java
C
C++
C#
PHP
Python
(Visual) Basic
Objective-C
Perl
JavaScript
Ruby
Lua
Delphi
Assembly
Lisp
Ada
Pascal
Transact-SQL
Scheme
Go
Что показывает рейтинг Tiobe? Фактически, это действительно достаточно точный индикатор популярности того или иного языка программирования в мировом масштабе. Но его минус - как раз глобальность. То есть высокая позиция того или иного языка в этом рейтинге вовсе не гарантирует, что вы найдёте работу, зная самый высокорейтинговый язык, именно в вашем городе или даже в целом географическом регионе. Зато для выбора языка при реализации проекта командой удалённых друг от друга разработчиков рейтинг Tiobe подходит достаточно неплохо.
LangPop
Ещё один достаточно распространённый аргумент в споре программистов "кто ж всё-таки нужнее" - это langpop.com. Сейчас этот сайт, как следует из расположенной на нём информации, продаётся, так что если вы готовы заплатить "reasonable price", не забудьте написать текущему владельцу сайта.
Тем не менее, несмотря на грядущую (и, наверное, достаточно скорую) перепродажу ресурса, его владелец не забывает регулярно обновлять данные и графики. Методика расчета рейтинга во многом похожа на аналогичную от Tiobe Software, но здесь несколько отличается список тех ресурсов, откуда берутся данные для итогового анализа: на LangPop "правят бал" Yahoo!, CraigsList, Powell's Books, Freshmeat, Google Code, Ohloh и масса других популярных ресурсов, связанных с программированием и достаточно далёких от него.
Надо сказать, что различие в источниках данных у Tiobe и LangPop ощущается уже буквально с первых строк рейтинга: если в первом случае самым популярным языком получается Java, то во втором на это звание претендует уже C.
Вообще же "пьедестал" выглядит следующим образом:
C
Java
C++
PHP
JavaScript
Python
C#
Perl
SQL
Ruby
Shell
Visual Basic
Assembly
Actionscript
Objective C
Lisp
Delphi
Pascal
Scheme
Haskell
Tcl
Fortran
Ada
Lua
ColdFusion
Cobol
Erlang
D
Scala
Smalltalk
OCaml
Forth
Если говорить о том, что показывает этот рейтинг, то здесь отличия от Tiobe Software и их рейтинга минимальны. С другой стороны, за счёт возможности просмотреть статистику для отдельных источников данных (то есть, для отдельных сайтов) можно попытаться как-то отфильтровать итоговую позицию того или иного языка программирования с учетом популярности тех или иных сайтов в конкретных географических регионах. Но возможность эта является чисто гипотетической, потому что реально говорить о том, что del.icio.us популярен, например, в той же Беларуси или на Украине (это только для примера) и поэтому его результаты более репрезентативны, чем результаты того же Google Code, на мой взгляд, достаточно сложно.
Ohloh
Сайт www.ohloh.net, наверняка известный многим, позиционирует себя как социальная сеть для разработчиков и пользователей свободного программного обеспечения. "Ну и пусть себе позиционирует, - скажете вы, - при чем тут рейтинги языков программирования?". А при том, что у этого сайта есть собственная достаточно любопытная статистика по языкам программирования.
Просмотреть её можно по адресу www.ohloh.net/languages/compare. Эта статистика, в отличие от двух рассмотренных нами выше, строится не на основании запросов в поисковых системах, а по количеству "коммитов" кода, "закомиченного" разработчиками свободного ПО, зарегистрированными на сайте. Прямо на странице можно сравнить между собой разные языки программирования и узнать, например, что в процентном соотношении код на C постоянно уменьшается, в то время как для той же Java видны лишь незначительные колебания, а для PHP и вовсе наблюдается уверенный рост. Можно сравнить также не процентные соотношения, а абсолютные величины, и считать не только "коммиты", но и количество разработчиков, количество изменившихся за месяц строк кода, количество активных проектов...
В общем, в полной мере этот любопытный инструмент сравнения языков программирования друг с другом рейтингом не является, потому что не ранжирует их все по шкале, возводя какие-то на пьедестал, а на какие-то навешивая ярлык второсортных и невостребованных. Но, вместе с тем, как я уже говорил выше, разработчики в своих блогах, да и многие журналисты в своих статьях любят ссылаться на "рейтинг Ohloh", поэтому вполне можно рассматривать инструмент сравнения языков на этом сайте именно как своеобразный рейтинг.
Теперь давайте подумаем о том, что он может нам показать. Увы, как и в случае с первыми двумя рейтингами, не так уж и много - он говорит нам, максимум, о том, какие языки программирования востребованы среди разработчиков свободного программного обеспечения. Поскольку сообщество поклонников свободного ПО - среда довольно своеобразная, то и принимать этот рейтинг как руководство к действию точно не стоит.
Например, сейчас весьма востребованы специалисты по Objective-C. Если же судить по Ohloh, то этот язык востребован примерно на том же уровне, что и достаточно экзотическая и малораспространённая "Ада". Ну и, опять-таки, никакой привязки к географическому региону здесь, в принципе, нет. В итоге получается, как говорится, "средняя температура по больнице".
Выводы
Можно было бы рассмотреть и другие рейтинги языков программирования, которые не ограничиваются поисковыми запросами или "коммитами" в открытые проекты, но, думаю, ситуация в целом и так понятна. Рейтинги, как и следовало ожидать, - не более чем повод для размышлений.
И как полезная информация они могут рассматриваться, скорее, инвесторами, заказчиками проектов или основателями различных стартапов, выбирающими технологическую базу под свои идеи, нежели теми, кто выбирает, какой язык программирования начать изучать.
Новых за месяц: 130 Новых за неделю: 41 Новых вчера: 6 Новых сегодня: 3 Всего: 5499 Из них: Администраторов: 6 $$$-Модераторов: 2 Модераторов: 5 Прокураторов: 5 ----------------- далее: Проверенных: 260 Пользователей: 3034 Новичков: 1884 Заблокированных: 110 ----------------- Из всех пользователей: Мужчин и парней: 4322 Женщин и девушек: 1176