TIOBE Programming Community Index (TPCI) — это, если кто не знает, сводный индекс популярности языков программирования, измеряемый по количеству вхождений в различных поисковых системах (метод измерения описан по ссылке, которая в первом абзаце по ссылке выше, прямую ссылку увы, дать не могу).
Достоверность и применимость индекса TPCI, а так же методы, используемые измеряющими, неоднократно подвергались сомнению в различных дискуссиях на RSDN.
Поэтому я пошел и задал несколько вопросов лично составителям индекса.
Публикуемое ниже интервью (вне зависимости от его ценности) — материал уникальный, потому как было взято исключительно для публикации ниже. Такие дела.
В последние несколько лет индекс TIOBE широко известен и часто трактуется как хороший объективный показатель "реальной картинки" популярности языков. Тем не менее, довольно много профессионалов, сомневающихся в надежности и информативности методов, связанных с поисковиками. Их типичные аргументы:
* Вы используете запросы вроде "<language> programming", но для разных языков корректность этого запроса различна (к примеру, искать "C" или "D" без "programming" бессмысленно, а "Java" и "Perl" — вполне само-описуемые слова)
* Есть некоторое количество языков со спецсимволами в названии, которые индексируются поисковиками некорректно.
* Разговаривая о некоторых технологиях, люди подразумевают соответствующие языки (например, "asp.net" или "j2me" — некоторые из них вы учитываете, но определенно не все)
Я согласен, что "<language> programming" — достаточно простой вариант. И все же, он достаточно точен в том смысле, что практически не дает ложных позитивных срабатываний. Java и Perl определенно не само-описующие (множество вхождений Java относятся к острову Ява). Я думаю, что сила TIOBE не в абсолютных значениях, а в сравнении через промежутки времени. Мы используем одни и те же методы годами. Индекс в какой-то степени показывает относительные взлеты и падения языка. Если, к примеру, Ruby был номером 40 четыре года назад, а сейчас — номер 10, можно предположить с большой степенью уверенностью, что популярность Ruby серьезно возросла.
Касательно спецсимволов: все используемые нами поисковики корректно трактуют "C#", "F#", "J#" и "C++", а других языков со спецсимволами в индексе нет.
К названиям технологий мы внимательно присматриваемся. Скажем, ASP.Net все же использует несколько разных языков; насчет "j2me" вы, конечно, правы, но, откровенно говоря, "j2me" имеет очень маленькое влияние на общий рейтинг Java (вариант запроса "J2ME" при составлении индекса учитывается — ЗХ).
Как стоит трактовать индекс? Считать ли его "мерой популярности", или распространенности, или "количества программистов, знающих язык"?..
Ну да, мы тоже постоянно об этом спорим. Думаю, что мы измеряем buzz, то есть это ближе к популярности.
Что вы можете сказать о корреляции вашего индекс с другими методами измерения популярности? (например, количество проектов на SourceForge, или количество предложений работы)
Хороший вопрос. Но у меня есть хороший ответ.
Проекты SourceForge — это не мерка популярности, потому что они не представляют весь программистский рынок. Open source-языки здесь будут определенно иметь преимущество над коммерческими. Не потому, что они чаще используются, а потому, что SourceForge представляет только подмножество сообщества. Промышленная разработка софта не принимается во внимание. Если посмотреть на сайты с предложениями работы, вроде dice.com, вы поймете, в чем проблема.
Эти сайты дают представление о востребованности, а не о популярности.
<...>
Лучше всего сравнивать TIOBE с количеством книг в книжном магазине о соответствующем языке. Проблема с таким изимерениями в том, что общие цифры довольно малы и потому соотношения будут менее достоверны, а флуктуации — сильнее. Кроме того, это очень тяжело автоматизировать.
Я открыт для улучшений сайта и нашего метода. Вы можете передать это своим читателям.
А что вы думаете о возможности "TIOBE-ориентированной" SEO-оптимизации фанатами какого-либо языка. Некоторые члены нашего сообщества предполагают, что недавний взлет языа D может быть причиной именно таких оптимизаций.
Я не думаю, что D кто-то специально раскручивал. Есть, конечно, фанаты (забавно, что количество писем от фанатов нескольких языков в разы больше, чем от других), но, насколько мне известно, читерством они не занимаются. Большинство фанатов единственного языка страдают от "туннельного" взгляда. Они используют язык для всех задач, и ближайшие соседи тоже, и они думают — это мейнстрим. Мы получаем сотни гневных писем, мол, почему Powerbuilder, LotusScript, или SmallTalk, или ... до сих пор не в top 10. Представть себе! Создается впечатление, что вообще все недовольны текущей позицией их любимого языка, кроме сообщества Java (на момент интервью Java — номер 1 в индексе — ЗХ)
ЗЫ: собеседник признался по секрету, что Nemerle также есть в индексе (про него не забыли), занимая 144 позицию. А вот если бы RSDN правильно индексировался гуглом....
Зверёк Харьковский wrote: > ЗЫ: собеседник признался по секрету, что Nemerle также есть в индексе > (про него не забыли), занимая 144 позицию. /А вот если бы RSDN правильно > индексировался гуглом..../
Да ладно, я сейчас сделаю свой крутой язык "A" Хотя идея этой идеи
принадлежит Владу.
Здравствуйте, Зверёк Харьковский, Вы писали:
ЗХ>ЗЫ: собеседник признался по секрету, что Nemerle также есть в индексе (про него не забыли), занимая 144 позицию. А вот если бы RSDN правильно индексировался гуглом....
Да тут некоторые злобные люди заменяют его название на просто N, чтобы рейтинг его упоминания упал .
Здравствуйте, VladD2, Вы писали:
VD>Предлагаю зарезервировать следующие названия для языков: VD>1. A ("A programming" — 1 130 000 вхождений). VD>2. The ("The programming" — 2 870 000 вхождений). VD>3. This ("This programming" — 620 000).
VD>
Наиболее психоделично, конечно, "Self programming", хотя для него и мало вхождений (~ 136,000). Правда они все больше почему-то относятся совсем не к языку программирования Self .
Здравствуйте, Андрей Хропов, Вы писали:
АХ>Наиболее психоделично, конечно, "Self programming", хотя для него и мало вхождений (~ 136,000). Правда они все больше почему-то относятся совсем не к языку программирования Self .
Еще забавно, что "Nemerle programming" == 570, а просто Nemerle == 421 000. Вряд ли ведь Nemerle может означать что-то отличное от "ЯП Nemerle".
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Вряд ли ведь Nemerle может означать что-то отличное от "ЯП Nemerle".
Ну вроде как была (есть) какая-то Урсула Ле Гуин, которая и придумала это слово. Сам не читал, так что конкретней сказать не могу.
Но на самом nemerle.org в первых строках сказано, что имя заимствованное.
Здравствуйте, Блудов Павел, Вы писали:
БП>Ну вроде как была (есть) какая-то Урсула Ле Гуин, которая и придумала это слово. Сам не читал, так что конкретней сказать не могу. БП>Но на самом nemerle.org в первых строках сказано, что имя заимствованное.
его специально модифицировали, чтобы не было путаницы.
Здравствуйте, Зверёк Харьковский, Вы писали:
ЗХ>Я не думаю, что D кто-то специально раскручивал.
Кстати, по поводу SEO. Кто-нибудь пробовал смотреть, откуда взялись все эти 590'000 результатов по "D programming"? Попробуйте пролистать страницы результатов в гугле, начиная с 20-ой. Очень познавательно
Здравствуйте, VladD2, Вы писали:
VD>Предлагаю зарезервировать следующие названия для языков:
Нужно чтобы оно хорошо сочеталось со словом language. Предлагаю
Здравствуйте, Lazy Cjow Rhrr, Вы писали:
БП>>Ну вроде как была (есть) какая-то Урсула Ле Гуин, которая и придумала это слово. Сам не читал, так что конкретней сказать не могу.
LCR>Этих отрывков должно быть достаточно для понимания предмета: Связь Nemerle с магией
Здравствуйте, skeptik_, Вы писали:
_>Кстати данные рейтинга по языкам Java — 19.160%, C++ — 10.425%, C# — 3.521% примерно совпадают с данными немецкой биржи для фрилансеров.
Здравствуйте, AndreiF, Вы писали:
AF>Кстати, по поводу SEO. Кто-нибудь пробовал смотреть, откуда взялись все эти 590'000 результатов по "D programming"? Попробуйте пролистать страницы результатов в гугле, начиная с 20-ой. Очень познавательно
Да... После такого я на D писать не буду совершенно точно... там же одна сплошная багзилла...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, AndreiF, Вы писали:
AF>.... то ничего бы не изменилось! Как ты думаешь, сколько раз на RSDN встречается словосочетание "Nemerle programming"?
Да, что там уж на 20-ой? На десятой уже все впорядке:
3-D programming
Fortran D Programming
SCore-D Programming
...
В общем, любому разумному человеку должно быть понятно, что такие рейтинги это шарлотанство в лучшем случае.
Надо быть очень предвзятым чтобы серьезно воспринимать (точнее делать вид) их результаты.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, WolfHound, Вы писали:
AF>>Кстати, по поводу SEO. Кто-нибудь пробовал смотреть, откуда взялись все эти 590'000 результатов по "D programming"? Попробуйте пролистать страницы результатов в гугле, начиная с 20-ой. Очень познавательно WH>Да... После такого я на D писать не буду совершенно точно... там же одна сплошная багзилла...
Может поясните... А то ведь не все понимают.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Да, что там уж на 20-ой? На десятой уже все впорядке:
Пофиг.
VD>В общем, любому разумному человеку должно быть понятно, что такие рейтинги это шарлотанство в лучшем случае.
Антинаучно.
VD>Надо быть очень предвзятым чтобы серьезно воспринимать (точнее делать вид) их результаты.
Эти рейтинги вполне адекватны. На больших числах. То есть для первой десятки. Ну или где то так. Потому что, с определённого момента уровень шума повышается. Да и дальше можно не смотреть — первая десятка это 80%.
Здравствуйте, VladD2, Вы писали:
Т>>Вы оба опоздали. Т>>Kenneth E. Iverson, A Programming Language, N.Y., 1962.
VD>Ну, "The Programming Language" еще ведь никто не зарезервировал?
А разве PL расшифровывается не как Programming Language?
Здравствуйте, VladD2, Вы писали:
VD>А, то есть Bugzilla оказалась средством продвижения Ди?
Все очень просто. Начиная примерно с 18 страницы гугл говорит, что "все остальные результаты очень похожи и поэтому исключены из списка". Но если отключить фильтр, то можно увидеть, что там пачками идут ссылки на страницы D-шной багзиллы, в заголовок каждой из которых заботливо включено искомое словосочетание "D programming" . Я много разных багтрекеров видел, но чтобы в заголовок каждого бага включали полное название продукта — в первый раз вижу. Причем, что еще забавнее, на каждый баг там не одна страница, а еше куча всяких трекеров активности для него, обновлений статуса и так далее
Еще в найденных результатах очень много ссылок на такие вот абсолютно бесполезные страницы, которые явно сгенерированы.
В общем, накрутка в самом пошлом и неприглядном виде.
Здравствуйте, AndreiF, Вы писали:
AF>В общем, накрутка в самом пошлом и неприглядном виде.
Ясно.
Честно говоря я вообще не понимаю, как довольно серьезные люди вроде еао197 и Зверька умудрились поверить в столь очевидно бредовый рейтинг. Я конечно понимаю, что есть такая штуках как "хочется верить в то что тебе нравится", но все же должен быть и холодный рассудок. Ну, очевидо, же что язык со столь малым сроком жизни не можут соревнаваться на равных с языками которым много лет.
Что до популярости, то мне кажется единственно разумными рейтингами тут могут служить статистика вакансий и активность в форумах. Конечно один сайт тут не показатель, но статистика по сотни сайтов была бы очень даже реливантна. Только сбор такой статистики — это огромный труд.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Честно говоря я вообще не понимаю, как довольно серьезные люди вроде еао197 и Зверька умудрились поверить в столь очевидно бредовый рейтинг.
Дисклямер 1: я не серьезный. не надо так.
Дисклямер 2: я не то чтобы "поверил" или "не поверил". Просто обратил внимание, что есть такой вот индекс, на него часто ссылаются и т.п. Мне стало интересно, насколько тенденции, которые он показывает, релевантны хоть чему-то. Поэтому я начал с ними общаться (FYI: претензии, высказанные в этой ветке, я собираю, перевожу, и пересылаю авторам индекса).
Мне, просто говоря, идея доказания популярности любимого (непопулярности нелюбимого) языка вообще пох. Меня интересуют две темы в развитии языков: для собственного использования — только fun; для понимания, что вообще в мире происходит (интересно мне, ферштейн?) — какие-то глобальные картинки. Я вот и пытаюсь разобраться, насколько индекс тиобы можно воспринимать как часть глобальной картинки. всо.
(то, что Руби, от которого я сейчас тащусь, там на 10-м, скажем, месте — мне опять же пох, поскольку тенденции относительно руби я примерно могу оценить и без тиобы; и о D я говорил в интервью не потому, что интересовался им год назад, а потому, что это действительно интересная и непонятная мне тенденция — т.е. здесь я скорее с противниками D, я действительно не понимаю, что он делает так высоко в индексе.)
Здравствуйте, VladD2, Вы писали:
VD>Я конечно понимаю, что есть такая штуках как "хочется верить в то что тебе нравится", но все же должен быть и холодный рассудок.
Есть еще и такая штука как "не хочется верить в то, что тебе не нравится" -- ничего не поделаешь, человеческая психика так защищается от стресов.
VD>Ну, очевидо, же что язык со столь малым сроком жизни не можут соревнаваться на равных с языками которым много лет.
Я впервый раз услышал о D в 2001-м. В 2002-м была доступна уже черновая спецификация языка. Так что у D уже далеко не маленький возраст. Не говоря уже про Ruby.
VD>Что до популярости, то мне кажется единственно разумными рейтингами тут могут служить статистика вакансий и активность в форумах.
Активность вакансий -- это показатель "востребованности" языка. Причем востребованности только в одной сфере -- коммерческого программирования. OpenSource, например, из этой сферы вообще выпадает.
Активности в форумах так же достаточно. Например писем из news-групп digitalmars.D и digitalmars.D.announce за день приходит раз в шесть больше, чем из gmane.comp.lang.scala. А что на RSDN те же D и Ruby не представлены, так это скорее проблема релевантности самого RSDN -- здесь еще мало Python-а и Perl-а, к примеру. А активность в .NET-овских группах гораздо выше, чем в Java. Так что RSDN -- это скорее зеркало пристрастий его администраторов, нежели объективных тенденций в программировании.
То, что в Internet-е много ссылок на страницы с описаниями багов в D и на странички с описаниями его стандартной библиотеки -- так таких для той же Java будет еще больше, в разы.
VD>Конечно один сайт тут не показатель, но статистика по сотни сайтов была бы очень даже реливантна. Только сбор такой статистики — это огромный труд.
Как говорится, плохие измерения лучше отсутствия таковых. Тем более, что TIOBE сами признаются, что меряют информационный шум, а не востребованность.
Не нужно забывать, что самих владельцев TIOBE интересует не значения конкретных месячных показателей, а тенденции за длительный период, в которых всплески накрутки рейтинга фанатами какого-либо языка нивелируются длительностью измерений (как в случае в FoxPro). Так что, как "шумомер" с большой долей погрешности TIOBE вполне адекватен, особенно если не выискивать в нем того, что туда не закладывали сами его создатели.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>То, что в Internet-е много ссылок на страницы с описаниями багов в D и на странички с описаниями его стандартной библиотеки -- так таких для той же Java будет еще больше, в разы.
Вот только в сановской базе багов заголовки страниц — это краткие описания багов. Что-нибудь наподобие этого: "Bug ID: 6514941 processing ordering issue between WS-TX Service Pipe and Web Svc Web/EJB Container preTxInv". А не "The Java programming language".
И справочные материалы у сана действительно содержат справочную информацаию, а не такую вот порнографию:
AF>Плохие измерения хуже, чем их полное отсутствие. Потому что только вводят в заблуждение.
Они не плохие, вводят в заблеждение только тех, кто "обманываться рад". Просто нужно учитывать, что это показатель за период, а не за конкретный момент времени и не нужно сравнивать бесконечно малые величины (типа D & Nemerle). И всё будет хорошо.
Здравствуйте, Зверёк Харьковский, Вы писали:
ЗХ>TIOBE Programming Community Index (TPCI) — это, если кто не знает, сводный индекс популярности языков программирования, измеряемый по количеству вхождений в различных поисковых системах (метод измерения описан по ссылке, которая в первом абзаце по ссылке выше, прямую ссылку увы, дать не могу).
ЗХ>Достоверность и применимость индекса TPCI, а так же методы, используемые измеряющими, неоднократно подвергались сомнению в различных дискуссиях на RSDN.
"Подвергались сомнению"? Последние языки в списке — Verilog, VHDL, XSLT. Вы в курсе, что вся микроэлектроника описывается на языках Verilog и VHDL? Дурацкий вопрос — у вас микросхемы в компьютере есть? Так вот, с вероятностью 90% создана на Verolog, а остальные 10% — VHDL. Третьего не дано — эти языки являются промышленными стандартами в своей отрасли еще с 80-х годов . Один из этих языков входит в обязательный курс инженеров-микроэлектронщиков во всех ВУЗах мира, в которых есть соответствующие специальности. Но по индексу получается, что на языке Scala и F# у нас пишут больше . Они, блин, популярнее . Что, у кого-то остались сомнения насчет "достоверности" индекса?
Здравствуйте, Andrei N.Sobchuck, Вы писали:
ANS>Они не плохие, вводят в заблеждение только тех, кто "обманываться рад". Просто нужно учитывать, что это показатель за период, а не за конкретный момент времени и не нужно сравнивать бесконечно малые величины (типа D & Nemerle). И всё будет хорошо.
А сравнивать бесконечно малую и не бесконечно малую величину можно?
Здравствуйте, Andrei N.Sobchuck, Вы писали:
G>>Ты как, перестал пить коньяк по утрам? С чего ты взял, что это меня удивляет?
ANS> Из твоего предыдущего поста
Вот, что меня удивляет. Цитата из предыдущего поста:
Но по индексу получается, что на языке Scala и F# у нас пишут больше . [чем на верилоге] Они, блин, популярнее
А ты мне в ответ пишешь:
Почему тебя удивляет, что HTML популярнее Verilog-а?
Вот я тебя и спрашиваю: с чего ты взял, что меня это удивляет? У меня даже слово HTML ни разу в сообщении не встречается , казалось бы — даже повода не давал.
Здравствуйте, Gaperton, Вы писали:
ЗХ>>Достоверность и применимость индекса TPCI, а так же методы, используемые измеряющими, неоднократно подвергались сомнению в различных дискуссиях на RSDN.
G>"Подвергались сомнению"? Последние языки в списке — Verilog, VHDL, XSLT. Вы в курсе, что вся микроэлектроника описывается на языках Verilog и VHDL? Дурацкий вопрос — у вас микросхемы в компьютере есть? Так вот, с вероятностью 90% создана на Verolog, а остальные 10% — VHDL. Третьего не дано — эти языки являются промышленными стандартами в своей отрасли еще с 80-х годов . Один из этих языков входит в обязательный курс инженеров-микроэлектронщиков во всех ВУЗах мира, в которых есть соответствующие специальности. Но по индексу получается, что на языке Scala и F# у нас пишут больше . Они, блин, популярнее . Что, у кого-то остались сомнения насчет "достоверности" индекса?
Погоди. Никто (в т.ч. и авторы индекса) не утверждает, что он показывает картинку "количества рабочих мест", или "количества программистов" или ... (автор сам говорит — индекс показывает "buzz", т.е. шум вокруг соотв. языков).
Авторы же методику не скрывают. Вопрос был в том, что полученный такими методами индекс показывает. (т.е. как раз вопрос "применимости индекса", а не "применимости языков" — если я пишу некую статью, имею ли я право написать "в последнее время язык D стал активно обсуждаться в программистском сообществе", или "за год популярность Руби выросла почти до уровня Питон" и т.п.)
Пример с Verilog и VHDL — хороший, спасибо. (в т.ч. я поговорю о нем с Дженсеном). Но все же, если взять какие-нито "народные новостемерки", вроде digg, или dzone, или /. — то действительно же редко там ссылаются на какие-то сайты/новости про эти языки. И блогов про них тоже я не встречал (возможно, просто не в тех местах хожу).
Т.е. мой поинт в том, что конечно же, индекс не показывает "полной и объективной картины мира". Но некий аспект. Какой именно — я и пытаюсь понять.
G>Но по индексу получается, что на языке Scala и F# у нас пишут больше . [чем на верилоге] Они, блин, популярнее
О языке чаще упоминают в интернете исходя из индекса. То есть пишут не НА нём, а О нём. Кстати, с чего ты взял, что индекс у Scala и F# больше чем у Verilog? Языки из 3-й пятидесятки приведены в алфавитном порядке. Или там где-то есть ссылка на полный индекс?
G>Вот я тебя и спрашиваю: с чего ты взял, что меня это удивляет?
Извини, показалось Хотя, как не крути, а Scala менее специализированный язык, чем Verilog. Со всеми вытекающими...
Результаты обсуждения некоторых мыслей из этой ветки все с тем же Paul Jansen.
1. Насчет D — "3-D programming" они отфильтровывают при поиске; "Fortran D programming system" — теперь будут отфильтровывать (но все равно этих результатов было меньше процента, т.е. они особо не влияли). По поводу результатов из баг-трекера — сказал "ну да, мы знаем — увы, издержки нашего метода".
2. По поводу Verilog/VHDL — он согласился с моими выводами "используют-то много, обсуждают мало"
3. Самый интересный диалог получился на тему соотношения "Nemerle programming":"Nemerle" — сначала он сказал "ну, Java мы же тоже ограничиваем", но когда я указал на разницу в 1000 раз (и связанную с этим creditability всего индекса) — он сказал, что мы заставили его задуматься, и он теперь будет этот challenge решать.
Здравствуйте, Зверёк Харьковский, Вы писали:
ЗХ>По поводу результатов из баг-трекера — сказал "ну да, мы знаем — увы, издержки нашего метода".
Ну, да ясно... в топку такие методы.
ЗХ>2. По поводу Verilog/VHDL — он согласился с моими выводами "используют-то много, обсуждают мало"
Ясно поплурный язык — это язык который никто не использует, но все обсуждают.
Вот скажем русский язык обсуждают редко. Значит он не популярный. А Эспиратно обсуждают часто, так как это чисто синтетическое изврещение. Значит он популярный. Изумительная логика.
ЗХ>3. Самый интересный диалог получился на тему соотношения "Nemerle programming":"Nemerle" — сначала он сказал "ну, Java мы же тоже ограничиваем", но когда я указал на разницу в 1000 раз (и связанную с этим creditability всего индекса) — он сказал, что мы заставили его задуматься, и он теперь будет этот challenge решать.
Его челенж — это круто. Может когда-нибудь он таки дойдет, что неверен сам метод, а не частности алгоритма.
Еще раз повторюсь, что по-моему о популярности языка можно судить только по форумам и биржам труда. Ну, еще по активым открытым проектам. Да, согласен, отди только сайты работы не показательны, но в купе информация по опенсорсу и сайтам работы является четким доказательством популярности языка. И по этим показателям если руби что-то и будет иметь, то ни Ди, ни Немерлу ничего не светит. И не будет светить в ближайшие 2-3 года.
А книги как раз не показатель. Они показатель популярности в прошлом. Писатели как и генералы всегда готовятся к прошлой войне.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.