×Закрыть

Рейтинг языков программирования — 2010

В опросе приняли участие 2394 человека (2019 из Украины). Основные результаты представлены ниже:

На каком языке начинали работать

На каком языке начинали работать

И что изменилось:

На каком языке пишут для работы сейчас

На каком языке пишут для работы сейчас

Первые выводы — Cobol наконец-то умер, популярность С# и Java приблизительно одинакова, за ним следует PHP и С/C++, затем скрипт-языки новой волны (Python и Ruby). Сообщество программистов на Objective-C уже превысило сообщество разработчиков на Delphi. Сегмент разработки на 1C все еще значимый (как раз та граница, которая отделяет маргинальные языки от мейнстрима).

А что люди думают о будущем?

Если бы сейчас начинали коммерческий проект и была свобода выбора...

Если бы сейчас начинали коммерческий проект и была свобода выбора...

О-о: видим что разрыв между С# и Java возрастает, а место третьего языка занимает Python вместо PHP. Готовимся к новому мейнстриму?

В опросе был вопрос — планируете ли Вы сменить язык разработки в ближайший год. Можно посчитать «индекс приверженности» к языку: каков процент разработчиков не планирует сменить основной язык разработки в следующем году.

Приверженность к языку

индекс приверженности

⅔ пользователей Delphi планируют сменить язык в течение ближайшего года (если у Вас есть проект на Delphi, то вам следует задуматься). Впрочем, половина пользователей PHP тоже думает куда-то сбежать. Куда — можно использовать вопрос о том, какой язык люди бы выбрали в новом проекте, для определения направления движения.

Итак, PHP-программисты выбрали бы:
45% — остаться на PHP
18% — Python
10% — Java
8% — Ruby
3% — другой
3% — C/C++,
а вот из Delphi хотят переходить в основном на Java и С#:
31% — остаться на Delphi
20% — Java
14% — C#
7% — Python и С/С++
по 5.5% — Ruby и PHP

Java-программисты в свою очередь после Java ориентируются в основном на Scala (5%), Python (5%) и С# (4%), а C#-программисты после С# — на Java (5%) и на тот-же Python (5%).

Теперь посмотрим на соотношение языка и опыта работы:

Опыт работы: C#, Java, C/C++

Опыт работы: C#, Java, C/C++

Как мы видим, после приобретения 5-ти лет опыта люди начинают уходить из активной разработки, ну, а те кто остался — в итоге «накапливаются» в последней колонке. Как и следовало ожидать, пользователи С/С++ заметно старше. Еще видно, что аудитория Java в последнее время также моложе аудитории C#: возможно это связанно с адаптацией Java в вузовские учебные программы в последние годы. Куда уходят люди после 5-ти лет — непонятно. Позиций в менеджменте на всех не хватит, следовательно, либо 5 лет назад возрос приток специалистов, либо это такая эмиграция.

Посмотрим на эти же тенденции в скрипт-языках:

Опыт работы: PHP, Python, Ruby

Опыт работы: PHP, Python, Ruby

Первое что можно сказать — представители этой категории программистов задерживаются в программировании заметно реже. Обращает на себя факт, что очень много «Ruby-стов» имеют именно пятилетний опыт работы — 5 лет назад как раз все о нем говорили?

Следующий вопрос —, а какие языки используются как дополнительные? Всего наши респонденты привели 68 языков, среди которых встречается даже APL, CPL и Cobol. Я отобрал только те, которые встречаются больше десяти раз:

Какие дополнительные языки используете для работы

Какие дополнительные языки используете для работы

Видим, что JavaScript нужен всем, а дальше цепочка лидеров все та же. Также обращает на себя внимание относительная распространенность Lua и Lisp.

Ну и наконец, на каких языках люди пишут «для себя»? Всего было приведено 45 языков, среди которых есть brainf*ck, Boo и Go. Те, которые встречаются больше десяти раз:

Языки для pet-projects

Языки для pet-project

Особенных изменений нет (разве что исчез Fortran). Что еще интересно — у скольких из заполнивших анкету, есть свои проекты — по блогам ходит утверждение, что поддерживают свои проекты около 10% программистов, но среди заполнивших анкету их порядка 63%. Еще можно выделить группу языков, которые используются для open-source и развлечений гораздо больше, чем для работы. Это Haskell, Asm, Scala, Lua, JavaScript и Lisp. Ну, а меньше всего отношение хобби проектов к реальным, как и следовало ожидать, у 1С, C# и Java.

Кем производится выбор языка:

Кем производится выбор языка

Как видим, какого-то одного доминирующего способа выбора нет. Распределение по языкам более или менее однородно, за исключением 1С, где относительно велико число специализированных организаций. Также, результаты выбора языка программирования зависит от того, как он делался: заказчики чаще выбирают С# и Java (то-же самое с совместным решением и «зависит от проекта»), если выбор делается исполнителем то чаще выбираются С/С++ и PHP.

Есть ли какие-то различия в нашей аудитории в Украине и за рубежом?

Разницы между распределением опыта работы между респондентами из Украины и за ее пределами особой нет, а вот в использовании языков — есть, что иллюстрирует следующая диаграмма:

Использование языков

То есть зарубежные респонденты заметно больше пишут на Python, Ruby и С/С++ и заметно меньше — на Java, C# и PHP.

Ошибки:

  • перечень языков был взят из TIOBE-top20, однако порядка 5% респондентов указали, что их основного языка программирования нет в этом перечне. Это хоть и не сильно искажает общую картинку, но все-же довольно много. В следующий раз сделаем какой-то предварительный анализ набора языков.
  • Отсутствие четких объяснений в преамбуле анкеты привело к некоторой терминологической путанице, в частности:
    • JavaScript и ActionScript представляют собой реализацию одного и того же языка, однако Flex сообщество не идентифицирует свой язык как JavaScript.
    • Я не уверен, что DBase-подобные языки были поняты всем респондентами в нормативном значении (т. е. совместимыми с DBase: Clipper, Foxpro и т. д.)
    • Не было четко оговорено, что языки программирования это именно языки программирования, а не вспомогательные языки запросов или разметки. В дальнейшем сделаем отдельный список таких языков.

Ну не ошибается тот, кто ничего не делает, в следующей версии сделаем лучше.

Выводы

Суммарная таблица (рейтинг языков) следующая:

Название Индекс Доля рынка, % Рабочий язык сейчас Начали бы проект сейчас Как дополнительный В хобби-проектах Приверженность,%
С#122.7751557247939082.91
Java222.3350552252439582.97
PHP316.3136919744535152.57
C/C++414.9933925854436678.76
Python56.8615530943632079.36
Ruby63.718414314914182.14
Objective-C72.8765541246878.46
Delphi82.3954331179337.03
JavaScript91.94323119530958.13
Perl101.7239211685458.98
1C111.1927-01151.85
Groovy121.06--2414-
DBase13-1549218-
Basic14-1056814-
Lisp15-6184238-
Scala16-4462241-
Lua17-315124-
Haskell18-2202138-
Asm19-2410125-
Fortran20-1193-
Cobol21-0031-
  • Данные TIOBE не совпадают с нашими, но дают похожие кластеры для первых 5-ти языков, в «хвосте» же видим уже довольно большую разницу — язык о котором говорят это не обязательно тот, который используется. К примеру рейтинг Erlang или Scala в TIOBE заметно ниже чем у Tcl и Фортран, но в соотвествии с нашими данными, с использованием дело обстоит наоборот.
  • Самые массовые языки программирования: C#, Java, C/C++, PHP. Pythоn близок к тому, чтобы стать следующий мейнстримом в веб-программировании; Scala рассматривается как серьезный претендент на роль следующего основного языка в инфраструктуре JVM. В мире. NET, F# используется гораздо меньше.
  • Популярное

60 комментариев

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.
ды начинай сходу программировать на macromadia flash прочти книгу
Макар Д. — Секреты разработки игр в Macromedia Flash MX
скачать эту книгу можеш по ссылке
depositfiles.com/...files/fgaclzmrh
+исходники к учебнику

depositfiles.com/...files/88qpg0dy0

Как мы видим, после приобретения 5-ти лет опыта люди начинают уходить из активной разработки, ну, а те кто остался — в итоге «накапливаются» в последней колонке. Куда уходят люди после 5-ти лет — непонятно.

Ну так раскройте тему, кто знает, куда уходят люди и почему?

Я за асемблер. Или даже за APL. Хотя пишу больше на бесике (.нет експресс). Ну и пробовал разные другие — паскаль, си, джаву и прочие. Но главное логика программы.

очень люблю C# и пишу на нем программы, а также второй язык это PHP который для меня то же как родной))

«Куда уходят люди после 5-ти лет — непонятно. »

На пенсию)

А я начинаю с PHP и Html!

Странно конечно что слили в один. На мой взгляд схожесть синтаксиса не является достаточным основанием для того чтобы считать как один. обидно: (

> JavaScript и ActionScript представляют собой реализацию одного и того же языка, однако Flex сообщество не идентифицирует свой язык как JavaScript.

Очень странный подход кстати, во первых они реализуют разные версии ECMA, и достаточно сильно отлицаются, а во вторых еще большее различие в стандартных библиотеках и фреймворках.

Не верю что actionscript никто не использует

в опросе javascript/actionscript обьединены

Интересный обзор, спасибо!

ПС Так и знал что C# рулит;-)

ха! все таки програмирование на делфи рулит, но конечно же после С++.

Меня удивляет популярность языка C#.

Это язык который не имеет будущего.

Очень аргументированное заявление... про первые самодвижущиеся кареты тоже так говорили, да и не только про них:

32 причины почему Linux не имеет будущего: stoplinux.org.ru/...Linux_suks.html

Google: App Store не имеет будущего

www.iphones.ru/iNotes/31248

У русского языка нет будущего:

forum.fraza.ua/...p?1,56461,56467

и т. д.

> половина пользователей PHP тоже думает куда-то сбежать
Тоже хочу попробовать сделать проект на Java. Только тут такое разнообразие серверов, фраймворков...

Что посоветуете после Zend Framework’а? С быстрым стартом, чтоб пару небольших сайтиков сделать

ну на java проекты маленьких сайтиков делать дорого получается — все таки в основном java используют для большиз проектов. Из наиболее близкого в java-мире: grails довольно простой и похож на Zend. Там, groovу (язык на основе java). Из собственно java-фреймворков, народ wiket более или менее хвалит.

Спасибо за ответ. Не большие это на первое время, пока изучаю.
Какие фреймворки, технологии всё же предпочтительнее?
А Play (www.playframework.org) пробовали?

Какие фреймворки, технологии всё же предпочтительнее?

Spring, Stripes, Hibernate (Если не требуется супер-производительность), Freemarker (Если не требуется супер-производительность)

А Play (www.playframework.org) пробовали?

ИМХО, просто вау-эффект, «А вот у нас, тоже есть что-то похожее на РоР». По моему все гуано полезет когда такой проект продлится более 0, 5 года, а просто пробовать прикольно.

Нет. //У нас в текущиз разработках сейчас RIA (gwt и flash).

Из собственно java-фреймворков, народ wiket более или менее хвалит.
wiket — довольно маргинальная штука, не встречал ни одного жывого человека который бы им пользовался, да и ajax и javascript, на сегодня, это «маст хев».
Я с этим фреймворком знаком чисто теоретически, поэтому буду рад аргументам опровергающим мои утверждения.
ну на java проекты маленьких сайтиков делать дорого получается — все таки в основном java используют для большиз проектов. Из наиболее близкого в java-мире: grails довольно простой и похож на Zend. Там, groovу (язык на основе java).
От тут только одна проблема: дешевый и адекватный хостинг под java. С grails — эта проблема усугубляется поскольку, groovу еще год назад был не адекватен в плане производительности, как сейчас не знаю.

Да, сейчас он лучше Php н очень хуже Java. С хостингом — принято dedicated сервер брать (сейчас еще виртуалки появились) и самим настраивать.

Статья почти 10-летней давности -, но кажется до сих пор интересная. Не только о Пайтоне.

www.tundraware.com/...-Is-Middleware

"Есть ли какие-то различия в нашей аудитории в Украине и за рубежом? "Не хватало графы Вижуал бейсик. Он как раз на 5-м месте за рубежом:)

TIOBE как-то очень по-своему составляет список языков. Как верно отметили, Actionscript и Javascript нельзя считать одним языком разработки. (Ллучше б не спорили чей язык круче, а думали как создавать проекты так, чтобы половина проектов не отправлялась в шлак еще до завершения).

а что за язык C\C++? это _разные_ языки программирования. И статистику по ним нужно собирать отдельно. Тот же TIOBE собирает статистику по этим языкам отдельно.

В этой классификации правильного решения нет — как не сделаешь, приблизительно 50% будут недовольны;) могу только сказать, что тема уже обсуждалась

А как быть с «embedded» C++: без использования исключений, STL, RTTI, с использованием сишных библиотек? Это Си или Си++?

Ranking Programming Languages by Size of Community (StackOverFlow) and Number of Projects at (GitHub) http://www.readwriteweb.com/ha...Tier One: C#, Java, PHP, C++, Objective C, JavaScript, Python, C, Ruby, Perl and ShellTier Two: Scala, Actionscript, HaskellTier Three: R, Assembly, Visual Basic, Coldfusion, F##, Groovy, ASP, Clojure, Erlang, Lua, Scheme, Common Lisp, Emacs Lisp

Спасибо. тоже интересно.

Как раз только что читал о зарубежных трендах: Традиционые языки: http://regulargeek.com/2010/08.../Веб и скриптовые: http://regulargeek.com/2010/08.../И вот такой пост: 9 Programming Languages To Watch In 2011http://java.dzone.com/news/9-p...

о, последнюю ссылку в линкдаммп запустим. Спасибо!

Delphi быстрыми темпами умирает. А ведь ещё 10 лет назад это была величайшая среда разработки. Можно сказать, что. NET убил Delphi. Я очень рад, что 5 лет назад почувствовал ситуацию и перешёл с Delphi на. NET/C#.

.net никого не убивал. Просто Borland (и/или другие владельцы) устали, отстали, не заполнив нишу плотно.
Также упустили Хейлсберга, который родил C#.

+ Pascal все-таки не такой прямой и логичный как C# оказался (хотя я с Pascal и Delphi начинал).

Во-первых, спасибо за очень интересную статью и статистику.Во-вторых, есть ли возможность выложить сырые данные например в формате CSV? Мне например было бы интересно исследовать статистику по Ruby гораздо подробнее. Вас напрягать по таким мелочам не хочется, а импортировать в локальную БД и построить несколько SELECTов и графиков вполне реально.

да — сейчас очищу от IP и на github выложу — здесь скажу

Стаття непогана, про Python усе доречно, але робити такий висновок: > в «хвосте» же видим уже довольно большую разницу — язык о котором говорят это не обязательно тот, который используется. К примеру рейтинг Erlang или Scala в TIOBE заметно ниже чем у Tcl и Фортран, но в соотвествии с нашими данными, с использованием дело обстоит наоборот.на такої незначної виборці (до того ж невеликої її «хвостової» частини) абсолютно недоречно і у професійних статистиків викликало би шок (до речі, мої бакалаврська та магістерська були пов’язані саме з стохастичними/статистичними моделями, то ж я знаю що кажу). До того ж, у TIOBE статистика всесвітня, і природньо, що вона відрізняється від украінської, навіть якщо б ви опитали усіх українських програмістів.

Численных данных в хвосте у нас как-рах не приведено. по этой причине. Там, где говориться именно о статистических различиях, проверенно что они значимы;)

Судя по активному использованию C#, никсовые платформы не в фаворе среди наших аутсорсеров. А еще удивляет такая привязанность к текущему языку, почти никто не учит новые языки параллельно, несмотря на то, что платформы зачастую предоставляют отличные возможности для этого. Мне кажется, что джавистам полезно было бы Clojure или Scala учить, любителям C# стоит попробовать F#, плюсовикам с хаскелем или окамлем побаловаться.Хотя, может все эти люди прочитали «Teach Yourself Programming in 10 Years».:) P.S. Почему-то вспомнилось — http://abstrusegoose.com/249

Есть люди, которые используют C# в никсах (Mono). И ты их даже знаешь. Правда, в основном или для каких-нибудь домашних проектов, или мелкого фриланса... А для домашних проектов даже 1С используют, и что совсем удивительно — таких не один и не два набралось, а больше десяти.

Индекс привязанности не отменяет параллельное изучение других языков (более того — как правило в ответе на вопрос о pet projects по несколько языков) — так что как раз учат (но не переходят).

посмею предположить, что больше половины использующих С#, пишут веб проекты, а не под виндоуз.

Эээ, а веб-проекты на C# запускаются в сферическом вакууме? Или таки под IIS?

> Эээ, а веб-проекты на C# запускаются в сферическом вакууме? Или таки под IIS? Веб-проекты на C# можно запускать не только под IIS, но и под xsp.http://www.mono-project.com/AS...

Я бы с большим удовольствием поверил в существование крупных проектов на C#, которые разрабатываются в Украине и деплоятся на mono под линуксом, но я таких проектов еще не видел. Может и единичные случаи есть, но они явно погоды не делают.

а я не только видел, но и учавствовал в таком. Крутится в некоторых городах большой проект для МТС, написанный на винде, и запущен под mono, вот насколько хоршо крутится сказать не могу, но то что живет — это факт

Сначала завис над графиком, где у кучи людей больше десяти лет опыта работы на сишарпе. Типа, как это? Потом понял, что это просто десять+ лет опыта, а сейчас — сишарп.Потом написано: > Обращает на себя факт, что очень много «Ruby-стов» имеют именно пятилетний опыт работы — 5 лет назад как раз все о нем говорили? Понятно-то, что пять лет назад подавляющее большинство из них на Руби не писало.

Не факт: люди меняют оснонвной язык разработки нечасто. Но вобще — замеание верное, спасибо. надо будет что- то по миграции в следующей версии спросить.

Что именно не факт? Что 10 лет назад C# не существовало?:) Или что 5 лет назад вышла первая версия RoR, а 99, 9% программистов на Ruby — это RoR (или другие, более поздние, веб-фреймворки)?

первая бета была, ROR (и шумиха вокруг него) тоже ровно пять лет назад. Объясняться детальнее с человеком, говорящим в таком тоне — лень. Извините если что;)

Что конкретно не понравилось в моëм тоне? Я серьëзно спрашиваю, что именно не факт? Да, шумиха вокруг рора была ровно 5 лет назад. Какое количество людей среди читателей DOU резко начали писать на нëм?;) Я спрашиваю, потому что меня слегка смущает «negative attitude» в общем. На, на мой взгляд, верный комментарий следует ответ «не факт». А что именно не факт — непонятно. По-моему, факт, что на C# 10 лет опыта нет ни у кого, и что на Ruby 5 лет опыта у единиц, которых можно назвать поимëнно, скорее всего.

Перечитайте диалог. Понятно что ’не-факт’ относился к последнему утверждению (про RoR), про С# вы вроде сами поняли;) Я бы скорее поставил на то, что большинстов программмистов на Руби с пятилетним опытом перешли на него как-ра 5 лет назад. (Из-за того что там пик был гораздо выше ’естественной’ миграции.)

Ага, а большинство питонеров с пятилетним опытом перешло на него как раз пять лет назад из-за выхода джанги 0.91.

отрадно, что не смотря на довольно скромное (думаю это временно) использование Python как рабочего языка, он популярен в хобби-проектах и как язык для новых проектов. Ну и не в последнюю очередь из-за отсутсвия развития, Java уже проигрывает C# как инструмент массового программирования.

Он популярен в хобби-проектах только потому, что на нём быстро писать :)
А для хобби много времени не уделишь.
Когда мой проект переростёт из хобби в не хобби, прийдётся всё-же переписывать с Python на С,

ибо критична производительность(мат вычисления)

К тому же, у python есть слабые места, среди которых для меня:
1. GIL.

2. Написал бы кто компилятор... :)

Разрулить эти 2 проблемы — и получим мэйнстрим на десятки лет вперёд

Прям и не знаю что и сказать.
По-моему делфи как был — так и есть — быстро и красиво ( и плевать что код огромный).
Да и 1С как-то обошли. Учитывая то, что на каждом предприятии есть бухгалтерия и по-любому есть 1С — не верится, что учет ведётся на С#.

Подписаться на комментарии