Программирование

индекс
178,71

Популярность языков по stackoverflow

Меня всегда смущал отчет от Tiobe, ну не похож он на правду. Ну хотя бы потому что Delphi на 9 месте, а javascript на 10, т.е. последнее и предпослениее места в top-10. И это в наше то время развития web 2.0, ну явно ведь должно быть в ином порядке. Ну и по остальным языкам все как то подозрительно. А что же на самом деле, что сейчас популярно у продвинутых программистов? А определить оказалось довольно просто, достаточно заглянуть на stackoverflow.com и посмотреть популярность тегов (они там четко к языкам прикреплены, есть куча модераторов отслеживающих правильность тегов)

Так вот, рейтинг на основе stackoverflow (язык — количество тегов):
  1. c# — 65974
  2. java — 37323
  3. php — 30389
  4. javascript — 27256
  5. c++ — 24215
  6. python — 19403
  7. sql — 16553
  8. ruby — 15055
  9. c — 10419
  10. objective-c — 8781

не уверен что он совсем точно отражает ситуацию, но по крайней мере похоже на правду :) А по поводу того что C# в лидерах, это, я так понимаю, все из-за того что всем нам знакомый, я думаю, Джоэль Спольски, по совместительству инициатор ресурса, на нем специализируется, и смог в первую очередь привлечь на ресурс программистов в этой области.

p.s. Если есть желание самим поиграться, или посмотреть «полный список», то можно попробовать это следующим кодом (на python):
import urllib2
from BeautifulSoup import BeautifulSoup

def tags_count(tag):
  page = urllib2.urlopen("http://stackoverflow.com/questions/tagged/%s" % tag)
  soup = BeautifulSoup(page)
  return soup.find('div', attrs={'class': 'summarycount'}).string

tags = ['java', 'c', 'php', 'c++', 'groovy', 'scala', 'clojure', 'erlang', 'haskell']
for tag in tags:
  print("%s;%s" % (tag, tags_count(tag)))

p.p.s. только не заDDoSте сайт :)
+26
2 марта 2010, 21:20
9

комментарии (65)

+14
silentroach #
На самом деле список тегов по популярности чуть-чуть другой и есть прямо на сайте.
+11
silentroach #
и да, эти списки тегов по популярности ни о чем не говорят
+3
anight #
Они скорее говорят о том, по каким языкам у людей больше всего вопросов. Вспоминаем тематику ресурса — вопрос-ответ.
–3
Kano #
Если задают вопросы значит изучают или используют.
–4
splix #
Ага, знаю, есть, но там много лишнего, я отфильтровал.
+3
Scream3 #
Там ruby on rails выше чем ruby и objective-c. Это надо учитывать.
0
splix #
и точно :( проглядел как то.
тогда он сразу на 8е место поднимается (если отнять пересечение с тегом ruby, что примерно 3 тыс.)
+1
silentroach #
да много там такого — javascript + jquery + ajax, iphone +iphone-sdk + objective-c, sql + mssql + mysql + tsql + sql-server и так далее
0
Davidov #
А ещё можно прибавить к python django.
+18
bbbb #
Скорее всего этот рейтинг говорит, о том по каким языкам возникает больше всего вопросов.

Хотя вприцнипе, согласен. Корелляция между популярностью языка и количеству вопросов по нему должна быть.
+1
pietrovich #
очень часто на просторах SO встречю «детские вопросы», т.ч. наверное количество вопросов будет зависеть еще и от «порога вхождения». для c# он ниже чем для java, имхо, а занчит количество «детских» вопросов по c# будет больше…
+2
Meroving #
чем ниже??
–3
pietrovich #
всем. с# позиционируется как «простой» язык. в последнее время вообще его рекомендуют как «первый» язык для начала изучения. с java такого не наблюдается, перед тем как давать java обычно начитывают что нибудь другое, т.е. к java нубы добираются уже имея некоторую базу, а к c# могут приходить и с полного «нуля».
0
Zakus #
>с# позиционируется как «простой» язык.
Кто такое сказал? Кто его так позиционирует?

>а к c# могут приходить и с полного «нуля».
О боже… какая чушь, и что же мешает тем же людям
начать с java с нуля?

Я это уже все слышал, только вместо C#, о Delphi. Все повторяется.
+1
pietrovich #
>Кто такое сказал? Кто его так позиционирует?
интернеты :D

>Я это уже все слышал, только вместо C#, о Delphi. Все повторяется.
бинго! если раньше для того чтобы обучать рисованию гуёв под винды в институтах читали делфи, то сейчас начинают переходить на .net/c#. на форумах советуют c#, куда ни плюнь везде с#.
не подумайте, я не против .net и c# в частности. сам на нем много пишу, просто отмечаю тенденции в интернетах.
0
Zakus #
В нормальных вузах ГУИ обучают рисовать в последнюю очередь.
То-есть гуи идет после изучения самого языка.

К тому же околопрограммерские форумы забиты школьниками с дурными вопросами о С++.
Их мотивация при выборе — С++ тру — остальное аццтой медленное.
Это я к тому что я не вижу подтверждении теории о низком пороге вхождения для C#.
Если для с++ он высокий? Почему они все таки входят в него?)
0
pietrovich #
>То-есть гуи идет после изучения самого языка
логично. я начинал с бейсика на ПК 01 Львов в начале 90-х, но времена меняются. согласитесь, давать для начала класический(с нумерайцией строк) бейсик, а потом пересаживать на более продвинутые языки с другими парадигмами в нынешние времена странно. логичнее было бы давать один и тот же язык, постепенно раскрывая его(ну или фреймворка) возможности. в некоторых вызах начинают пересматривать программу и менять изучение TP5.5/TP7 на c#, если использовать только уровень возможностей TP7 то с# ни разу не сложнее, остальное можно начитать и на следующих курсах.
речь, правда, не о программерских специальностях, там читают много чего и на c# не зацикливаются.

>К тому же околопрограммерские форумы забиты школьниками с дурными вопросами о С++
одно не мешает другому. не вижу проблемы

мне, кстати, вспоминается только один случай, когда на специальности с экономическим уклоном без всяких предварительных вводных типа паскаль/васик начали давать java. на следующий год у них же читали c#. но было это в финляндии и лет 5 назад (помогал знакомой лабы сдавать и курсовые писать). почему так построили программу не знаю :)
+1
shai_xylyd #
Вы программировали на этих языках прежде делать эти заявления?

С# (LINQ, лямбды, dynamic) как язык объективно сложнее Java. Не уверен, но, наверное, Java сложнее .NET монструозностью всяких J-технологий.
0
pietrovich #
ой-ой. сравните процент вопросов про лямбды и про что нибудь попроще, например про основы WinForms. навороты наворотами, но базовый с# гораздо проще и «приятнее» java. ну и, вдобавок, это удобный инструмент для рисования гуёвых приложений под винду, вот к нему народ и тянется
0
shai_xylyd #
В языке C# больше сущностей, чем в языке Java => он сложнее, разве нет?
0
pietrovich #
не думаю. количество сущностей начинает разрастаться по достижению некоторого «уровня», а на старте можно очень даже обходиться базовыми «фишками», которые примерно идентичны. просто как язык c# чуть дружелюбнее. ниже говорят «более продуманный» и я, пожалуй, соглашусь.
0
Zakus #
>гораздо проще и «приятнее»
Ну вот начнем с этого… только не проще, логичнее, или скажем более продуманный.
Но идем дальше, то-есть его рекомендуют новичкам, потому что с ним проблем меньше чем с java.
Правильно?)
+1
splix #
Новичкам нужно получить в результате что-то осязаемое, с формочками, кнопочками и пр. А ява все таки больше заточена под серверную часть. Так что остаются только делфи, дотнет, и пр.
0
pietrovich #
>Но идем дальше, то-есть его рекомендуют новичкам, потому что с ним проблем меньше чем с java.
не думаю. своих приколов хватает и там и там, а рекомендуют его скорее по другим причинам — быстрее можно получить «осязаемый» результат, начинающие чаще хотят писать на винде и под винду, возможности фремворка «пожирнее» чем у core java и т.д.
0
Meroving #
ну знаете, программирование я начинал вообще с паскаля, как думаю большинство здесь присутствующих (тех кто не с бейсика :)), но следующей была джава. Только по работе выучил шарп. Так вот для начала обучения программированию джава подходит до третьего знака после запятой в той же степени как и шарп, просто потому что если брать состояние 4-5 летней давности, то отличия между ними приходилось искать с мелкоскопом. Сейчас C# куда наворченней (хорошо это или плохо — тема иного обсуждения) А уж в «детских вопросах» вы только по неймспейсам догадаетесь, о каком языке речь.
0
pietrovich #
>Так вот для начала обучения программированию джава подходит
>до третьего знака после запятой в той же степени как и шарп

вот только когда дойдет до гуёв джава начинает терять привлекательность. а зачем читать сначала один язык для обучения азам, а потом переключаться на другой язык на следующем курсе?! вот и начинают включать в программу c#, а не java. так и появляются .net-нубы в большем количестве чем java-нубы

+3
spmbt #
Интересные данные, но истинную популярность трудно разглядеть по одному ресурсу, и вообще, разве популярность одну мы видим? На неё накладывается ряд факторов. Первые 3, которые приходят в голову:
1) каждый ресурс имеет исторически сложившийся уклон, даже если позиционирует себя как универсальный (пример наших: rsdn, Vingrad, хабр), и это ничем не изменишь, объясняется сложиввшимися группами и атмосферой в них.
2) это ресурсы вопросов, а значит, чем сложнее и проблемнее язык, тем больше будет вопросов (например, Java и С++ — сложные языки, и вопросов по ним много).
3) Язык недавно стал актуальным или просто модным, или просто недостаточно ясная документация (AS, Go, библиотеки в JS, фреймворки и надстройки к языкам, в прошлом особенности IE5-6). Требуются специалисты, идёт вынужденная переквалификация и обострение с вопросами по языку. Но при этом боле значительная масса кода продолжает писаться, а значит имеет настоящую популярность, на языках типа PHP, Си, Перл и даже, не побоюсь этого слова, 1С.

Может быть, стоит популярность оценивать по количеству вакансий в стране на специалистов того или другого языка?
+3
splix #
У меня такое подозрение что должно очень хорошо коррелировать.
Вопросы идут в основному от новичков (и посмотрите по своему любимому языку, там 80% это нубовские вопросы, имеющиме ответ в любой книге "%langnam% за 10 дней"), а это вполне себе KPI популярности языка, привлекает новых — значит популярен :)

А вообще да, там очень много факторов. Но результат как то совпал с моим личным, субъективным, мнением о популярности того или иного языка.
0
Goodkat #
>>результат как то совпал с моим личным, субъективным, мнением
Сопссно, так любые рейтинги и делаются — находится статистика совпадающая с «личным, субъективным мнением» и публикуется в виде рейтинга :)
0
splix #
Должно имхо очень коррелировать.
Там по каждому языку 80% это нубовские вопросы. А по мне так если язык привлекает новичков — значит он популярен. Вполне себе KPI.

Ну а вообще согласен что факторов очень много. Но такой рейтинг совпал с моими субъективными ощущениями популярности того или иного языка :)
0
metar #
В процессе изучения C/C++, Java (процесс продолжается) и Python мне ни разу не приходило в голову спросить на StackOverflow. Гораздо интереснее было самому разобраться с документацией, ну или на совсем уж крайний случай спросить на специфическом ресурсе или у более опытного коллеги.
+3
silentroach #
StackOverflow хороший специалист и в основном плохие ответы сразу же загоняются в минус, очень зря. Да и там можно не только спрашивать, но и отвечать, помогать людям, а вопросы бывают довольно интересными.
+2
silentroach #
хороший ресурс*
что-то у меня сегодня каша в голове О.о
+2
bbbb #
Насчет плохих ответов вы правы.
Но там есть свои приколы. Кто первый даст вменяемый ответ, тот собирает все плюсы… а кто-то другой составляющий полный развернутый ответ или уточняющий вопрос, уже много не наберет.

Я сам когда-то во время болезни сидел игрался этим стековерфло, очень часты ситуации
Вопрос: Чем в с++ сделать поиск по логу.
Мой ответ: boost::reg_exp
и почти все плюсы у меня, хотя по правильному стоило бы уточнитть, что он будет искать, есть ли у него производительность в приоритетах и тд.
Могу очень много примеров привести, быстрых и неточных ответов, но лидеров в плюсах.
0
splix #
А можно в начале написать «boost::reg_exp», запостить, а уже потом, пока он плюсы собирает, отредактировать с уточнениями :) но это хак, согласен
0
Paul #
Тем не менее, очень многие пользуются этим хаком.
0
bbbb #
Да, именно так потом и делал.

Просто мне надоело играться этим сайтом ради баллов, а в С++ очень много тонкостей и ньюансов, в которых было интересно разобраться и дать полный ответ с ссылками на стандарт.
+3
Thomas #
Переполнение стека? ))
+1
Zakus #
Многое уже давно спрошено, и такие ресурсы как стекОверфлов — являются хорошими базами знаний.
Мне стакОверфлоу не раз помогал, но это небыли мои вопросы, а просто при помощи гугла выходил на чужие с ответами.

И никто и не говорит — что во время изучения языка нужно по каждому поводу задавать вопросы.
Вопросы нужно задавать — когда действительно нигде ничего больше не удается найти.
+1
shifty #
А как вы доверяете статиститке популярности языков программирования на сайте langpop.com/?
0
shifty #
upd: вопрос интересен с «чисто» технической стороны
0
splix #
А вот это тоже интересно. Особенно если откинуть популярность на основе количества страницы в поисковике :) в нем я сомневаюсь, имхо слишком много искажений и исторически сложившегося мусора.
0
zeroed #
А еще есть google trends, вдруг кто не знает

www.google.com/trends

Тоже шикарная штука для инвестигейтов популярности =)_
0
Hanhe #
ну посмотрите, какой там тренд по запросу «java» =)
0
Goodkat #
www.google.com/trends?q=c%2C+c%2B%2B%2C+php%2C+java%2C+javascript%2C+c%23

C побеждает, но не как язык программирования, а как Гипатит-Ц, Мерседес Ц-Класс, канадский доллар, датский Ц-банк и инициал в чьём-то имени :)
0
thekvs #
Вот тут я немного игрался с динамикой по времени: ссылка
Если интересно, могу пересчитать на текущий момент.
0
Isis #
Я думаю тут ни о какой популярности речи быть не может…
Когда у меня проблема с javascript (jquery) я указываю тег «jquery» ну никак не «javascript».
Когда у меня проблема с php скриптом, я описываю главные функции работы скрипта в тегах, но никак не 'php'
0
splix #
Ну это вы зря, ктож тогда заметит ваш вопрос? там ведь как: человек выбирает тег в котором шарит, и переодически нажимает F5, выискивая вопросы ответить. Утрирую, но примерно так. А иначе только случайный человек попадет. Это как совет.

А начет измерения: то что вы не добавили нужный тег никак не повлияет на соотношение (если предположить что так поступают равномерно для всех языков). Вот если бы для вопроса о jquery вы указали бы тег c++, то тогда это сбило бы приборы. Но и тут проблема, т.к. посетели с высокой кармой имеют право перетагировать вопрос (и они этим пользуются), значит и это тоже не прошло бы.
0
Simplevolk #
А есть ли какие то статистике по России?
+1
veter #
Странно было бы посчитать Ruby (7798) в отрыве от Ruby-on-Rails (10452)
–1
splix #
Да, я с ним обсчитался, к сожалению. Он на 8м месте будет, если пересчитать.
Но код приведен, если видите ошибку, вы можете пересчитать сами.
0
veter #
Ну, пересчитать-то я могу, но Ваши подсчеты попали на главную страницу Хабра, а мои не попадут, оставшись в пределах моего компьютера. :) Поэтому люди и не узнают о закравшейся ошибке.
0
splix #
я проапдейтил :)
0
Scala #
> А что же на самом деле, что сейчас популярно у продвинутых программистов?

Довольно странная постановка вопроса… Я вот по большинству Java проектов общаюсь в мейл-листах, ну не ходят все разработчики Apache на SOF — выходит они не продвинутые?

Единственный полезный из подобных рейтингов — Indeed.com, отражающий рынок труда.
0
AirLight #
пора проводить всемирную перепись программистов, а заняться этим могут лишь профсоюзы
+1
Lionheart #
c#× 66393
stackoverflow (:
+1
texamus #
А вы знаете, что *всю* информацию сайта можно официально скачать по торрентам и датамайнить по самые не хочу:

blog.stackoverflow.com/category/cc-wiki-dump/

(до марта 2010 дампы имеются)
0
proxor #
Ну на самом деле из последних фрилансерских заказов у меня было 2 на C# и один на Java, причём язык и платформа были прописаны в ТЗ. Ещё часто хотят Delphi, но это по большей части студенты, которым нужен курсовик :) Ну и учитывать нужно популярность Delphi в нашей стране.
0
WhitePigeon #
Вообще, что значит «популярность языков программирования»? У Tiobe популярность идет по поисковым запросам, а у вас по тегам на stackoverflow, но называть это «истинной популярностью» и говорить, что язык А абстрактно популярней чем язык Б? Ну как-то странно…
0
ivlis #
На выборах не важно, как голосуют, — важно, как считают (С) И.В. Сталин

Если считать по количеству строк кода, то даже основные компоненты операционных систем написанные на C и производных по количеству строк кода обрулят весь этот ваш web2.0 с его жабаскриптом.
+1
web4_0 #
Я считал с помощью гугла по количеству документов в запросах вида I like Java или I love Java.
Получилось так:
Ruby
PHP
Python
Java
C++
C#
Basic
Pascal
Javascript
C
Delphi
Visual Basic
0
splix #
Ну кто же драгоценности не любит? конечно они будут на первом месте. Змей правда наоборот не любят, поэтому странно что им удалось пробиться на 3-е место. И с basic тоже не понятно, этож прилагательное, что угодно с ним может понравиться, поэтому basic должен быть гдето по соседству с рубинами.

А в остальном нормально, если это ретинг восхищемости языком. Потому что я не представляю человека, пусть он даже десятки лет пишет на яве, который заявил бы что она ему хотя бы нравится :) разве что если это все любители «ява игр»
0
web4_0 #
Ну ясно, что неточно, ибо и Руби — это имя, и Ява — остров. Но если вводить запрос в кавычках, например, «I love Python», то большинство запросов будут относиться как раз к языку пайтон, а не к животному питон.
0
JayDi #
На Фрилансе соотношение исполнителей на Delphi/C# для разработки ПО: 8 к 2 в пользу Delphi.
0
zloyreznic #

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.