Каким должен быть язык программирования? Анализ и критика Описание языка Компилятор
Отечественные разработки Cтатьи на компьютерные темы Компьютерный юмор Новости и прочее

Все языки эквивалентны. Но некоторые из них эквивалентнее других

Сайт tiobe.com регулярно нас знакомит с рейтингами языков программирования. Перед вами — рейтинг от декабря 2011 г.
Декабрь
2011
Декабрь
2010
Язык
программирования
Рейтинг
1 1 Java 17,561%
2 2 C 17,057%
3 3 C++ 8,252%
4 5 C# 8,205%
5 8 Objective-C 6,805%
6 4 PHP 6,001%
7 7 (Visual) Basic 4,757%
8 6 Python 3,492%
9 9 Perl 2,472%
10 12 JavaScript 2,199%
11 11 Ruby 1,494%
12 10 Delphi/Object Pascal 1,245%
13 13 Lisp 1,175%
14 23 PL/SQL 0,803%
15 14 Transact-SQL 0,746%
16 16 Pascal 0,734%
17 18 Ada 0,632%
18 35 Logo 0,619%
19 17 Assembly 0,563%
20 25 ABAP 0,560%
21 * Lua 0,550%
22 * MATLAB 0,536%
23 * RPG(OS/400) 0,532%
24 * R 0,522%
25 * NXT-G 0,512%
26 * C shell 0,493%
27 * VHDL 0,480%
28 * Fortran 0,477%
29 * Erlang 0,469%
30 * Scheme 0,456%
31 * SAS 0,417%
32 * Scratch 0,414%
33 * Prolog 0,403%
34 * Go 0,394%
35 * Visual Basic.NET 0,364%
36 * F# 0,358%
37 * COBOL 0,339%
38 * D 0,330%
39 * Forth 0,322%
40 * Haskell 0,310%
41 * Tcl 0,297%
42 * APL 0,287%
43 * ML 0,284%
44 * Ladder Logic 0,281%
45 * Groovy 0,273%
46 * SmallTalk 0,272%
47 * LabVIEW 0,262%
48 * Awk 0,258%
49 * PL/I 0,246%
50 * Q 0,245%

* — нет данных

Какие выводы напрашиваются, глядя на эти данные?
  • Синтаксис в стиле C является доминирующим на данный момент. Этот стиль представлен в рейтинге языками Java, C (родоночальник стиля), C++, C#, Objective C, PHP, Perl, JavaScript. В сумме они занимают, по данным Tiobe, 68,552%. Это «конституционное» большинство.
  • «Старые» языки C и C++ (первый — в особенности) сохраняют и долго будут сохранять свои доли. Тут и громадный пласт унаследованного кода, наибольшего количества программистов, хорошо их знающих. Широчайший выбор компиляторов и других инструментов для разработчиков. И много других исторических факторов. Ещё относительно интересный вывод: несмотря на архаичность языков (в особенности это касается C), мало кто исключает из своего инструментария компиляторы этих языков. Эти языки — такие же стандарты де факто, как и процессоры x86.
  • «Новые» языки могут получить существенную популярность, если за ними стоят гиганты (например, C# с Microsoft за спиной) или группа гигантов, которые «дружат» против других гигантов (Java, с альянсом из Sun, IBM, Oracle — против Microsoft), но ... смотри ниже.
  • Поддержка софтверных гигантов не гарантирует языкам ни быстрого старта, ни значительной доли на рынке. Достаточно посмотреть на место языков Visual Basic.NET, F# (Microsoft), Go (Google).
  • Такие языки, как PHP, Phyton, Perl, Ruby имеют немалую долю на рынке, несмотря на отсутствие подталкивающего «локомотива» за спиной. Более того, их успех феноменален по той причине, что они были созданы одиночками. Но успех к этим языкам пришёл после того, как почин создателей был многократно умножен трудом множества энтузиастов.

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

        Он составлен на основе открытых вакансий на сайтах job.ru, rabota.ru, hh.ru и других. Это не первое исследование на такую тему, но оно единственное, которое учитывает факт существования 1С. Такое игнорирование 1С в других рейтингах нелогично хотя бы потому, что продукт аналогичного класса ABAP включен в рейтинги как Tiobe, так и в некоторые отечественные. Напомню, что ABAP — это внутренний язык программирования автоматизированных систем управления предприятиями SAP R/3.

        Нет оснований говорить о совершенства метода подсчёта востребованности языков программирования. Существование вакансий не является полным описанием ситуации. Но другой работающей методики в России пока нет.

        Теперь пояснения к таблице. Поскольку объявления о найме специалистов содержат, чаще всего, не одно требование к соискателям, то учёту подлежали следующие данные. Для колонки «Основной язык» учитывались те инструменты, которые стоят в объявлении первыми. Остальные инструменты учитывались для колонки «Дополнительный язык». На основе этих данных подсчитаны рейтинги «основной язык» и «дополнительный язык». В общий рейтинг попали данные по колонке «основной язык» и данные по колонке «дополнительный язык» с коэффициентом 0,5. Решение, возможно спорное, но дополнительные требования, как правила мягче и не всегда обязательны. Должны же отличаться весом «основной язык» и «дополнительный язык»!

        И последнее замечание: в рейтинг не вошли языки разметки вроде HTML в виду того, что они не являются полноценными языками программирования. Хотя языки SQL тоже таковыми не являются, но они достаточно развиты и они есть в рейтинге Tiobe.

  Язык
программирования
Как основной
язык
Как дополнит.
язык
Общий
рейтинг
1 30,56% 1,23% 22,13%
2 PHP 18,27% 3,70% 14,08%
3 C++ 12,96% 7,00% 11,25%
4 Java 9,97% 4,12% 8,28%
5 JavaScript 4,65% 16,87% 8,17%
6 Transact-SQL 2,99% 14,40% 6,27%
7 MySQL 0,33% 20,99% 6,27%
8 C# 6,31% 4,94% 5,92%
9 Delphi 4,32% 3,70% 4,14%
10 PL/SQL (Oracle) 1,99% 4,94% 2,84%
11 VisualBasic, VBA 0,33% 3,70% 1,30%
12 Objective-C 1,66% 0,00% 1,18%
13 Perl 0,66% 2,06% 1,07%
14 C 1,00% 1,23% 1,07%
15 Python 0,66% 1,65% 0,95%
16 PostgreSQL 0,00% 3,29% 0,95%
17 ABAP 0,66% 0,00% 0,47%
18 LotusScript 0,66% 0,00% 0,47%
19 Ruby 0,33% 0,82% 0,47%
20 VB.Net 0,33% 0,41% 0,36%
21 MATLAB 0,33% 0,41% 0,36%
22 Clarion 0,33% 0,00% 0,24%
23 ABL (4GL) 0,33% 0,00% 0,24%
  Остальные 1,00% 4,53% 3,31%


        А здесь какие выводы можно сделать?
  • 1C — это «наше всё». Если бы иностранцы вообще и Tiobe в частности познакомились с российкими реалиями, они бы немало удивились. Оказывается, не только Яндекс впереди Google, но язык 1С впереди C, C++ и Java вместе взятых. А ведь эти языки (подумать страшно!) — первая тройка мирового рейтинга.
  • «Победа» 1С, в зависимости от угла зрения, одним может навеять мысли о торжестве «русского» программирования. Другие увидят в этом гипертрофированность фискальной политики государства, благодаря чему здравствует 1С.
  • Чистый C опережает C++ в два раза на мировых площадках. Но в России всё наоборот: C++ опережает C просто на порядок!
  • Невероятная, по мировым меркам, популярность PHP. Список языков, которые в России популярнее, чем в остальном мире: упомянутый PHP, C++, JavaScript, Transact-SQL, MySQL, Delphi, PL/SQL.
  • Список аутсайдеров в глазах российских программистов: C (чистый, без ++: он главный аутсайдер!), C#, Objective-C, VisualBasic, Python, Perl, Ruby, Lisp.
  • Закомерность, не заметная в таблице, но имевшаяся при сборе данных: есть идущие в «связке» инструменты типа PHP, JavaScript, MySQL. Но есть «одиночки», среди которых самый «самодостаточный» — язык 1С.
  • Чем меньше город, тем скуднее выбор «блюд». Это вряд ли новость. Новость в том, что верхние строки рейтинга (1C, PHP) свои показатели в таких городах иногда удваивают. В то время как другие технологии вообще оказываются не нужны.
  • Популярность ABAP, LotusScript, Ruby, VB.Net, MATLAB, Clarion, ABL и остальных — в пределах статистической погрешности.
«Существуют три вида лжи: ложь, наглая ложь и статистика» — это фраза для тех, кто придал слишком серьёзное значение этому небольшому исследованию.

Смотри так же:

Что ещё почитать на эту тему

Опубликовано: 2012.09.25, последняя правка: 2015.01.23    06:32

ОценитеОценки посетителей
   ██████████████████████████████████████████ 10 (100%)
   ▌ 0
   ▌ 0
   ▌ 0

Отзывы

     2014/04/21 06:35, utkin          # 

Я против такого сравнения по следующей причине: языки имеют слишком различную направленность, рассмотрение их в одном котле не уместно. Например, для профессионалов фактически помимо основного универсального языка обязательно требуется знание одного из диалектов SQL. Это современные требования. Аналогично веб сфера требует знание более одного языка - PHP, JavaScript и пр.
Это также наглядно отражает графа "Как дополнительный язык". Я думаю корректным было бы сравнение в разрезе специализации - универсальные языки нужно сравнивать между собой, а не с языками БД и пр.

     2014/04/24 18:53, Автор сайта          # 

А кто нас, собственно, спрашивает, «за» мы или «против»? Работодатели кидают свои объявления в общий котёл. А мы из него вылавливаем подходящее, одновременно наматывая на ус, за что больше платят.

Рейтинг — он на то и рейтинг, что показывает сегодняшнюю температуру по больнице. Но некоторым прозорливым людям он даёт пищу для размышлений. Вопрос же, что лучше, а что хуже, тут даже не стоит. Медики давно говорят, что продукты без холестерина полезней, однако сильно это меняет наши прилавки?

     2015/01/23 22:08, rst256          # 

1C — это «наше всё».

Или как минимум стабильная з/п и надежда на пенсию.
Кажется большинство програмистов в России работают бухгалтерами, колымят делая сайты-визитки и по вечерам озверев от такой жизни фигачат вирусы на C++. Как хорошо, что я не работаю программистом :-)

Чистый C опережает C++ в два раза на мировых площадках. Но в России всё наоборот: C++ опережает C просто на порядок!

А может для С поиск производился только по латинской "C"?

     2015/01/25 14:52, Автор сайта          # 

Как хорошо, что я не работаю программистом

А кем Вы работаете?

А может для С поиск производился только по латинской «C»?

Поиск производился по разделу «ИТ» с выбором региона «вся Россия», а далее — ручной подсчёт.

     2016/05/05 14:39, utkin          # 

Года уже староваты. Обновите табличку (или добавьте новую), если имеется такая возможность.

     2016/05/05 14:52, Автор сайта          # 

Когда-то было не жаль времени, чтобы подготовить эти цифры. А сейчас хочется тратить время на другое

     2021/08/29 00:24, Бурановский дедушка          # 

Рейтинг популярности языков программирования
Место   Язык     	Баллы
===== ==== =====
1 Python 100
2 Java 95,4
3 C 94,7
4 C++ 92,4
5 JavaScript 88,1
6 С# 82,4
7 R 81,7
8 Go 77,7
9 HTML 75,4
10 Swift 70,4
11 Arduino 68,4
12 Matlab 68,3
13 PHP 68
14 Dart 67,7
15 SQL 65
16 Ruby 63,6
17 Rust 63,1
18 Assembly 62,8
19 Kotlin 58,5
20 Julia 58,3
21 Scala 55,4
22 Visual Basic 55,1
23 Shell 54,5
24 Processing 50,6
25 Fortran 45,2
26 Objective-C 44,4
27 Lua 43,3
28 Cuda 41,3
29 Verilog 40,3
30 SAS 39,4
31 Ada 38,8
32 VHDL 38,5
33 Delphi 37,8
34 Scheme 37,4
35 Perl 37,2
36 D 36,6
37 LabView 35,8
38 Haskell 35,4
39 Clojure 32,6
40 Lisp 30,4
41 Elixir 29,2
42 TCL 27,6
43 Apache Groovy 27
44 F# 22,2
45 Cobol 21,2
46 ABAP 20
47 Erlang 18,3
48 Forth 18,2
49 Prolog 16,3
50 LadderLogic 14,3
51 J 12,8
52 Ocaml 12,5
53 CoffeeScript 8,6
54 Eiffel 8,5
55 Racket 0
Источник: IEEE Spectrum

     2021/08/29 11:37, Gudleifr          # 

Я нарисовал картинку: https://i.servimg.com/u/f58/19/65/89/34/jasyki10.jpg
Все названия языков — условные, это названия целых групп.

Точка отсчета — "машинный язык" <0,0>. От неё можно идти вдоль двух осей: по абсциссе — интерпретаторы, "языки, понимающие, что пользователь хотел сказать"; по ординате — компиляторы, "языки, лучше пользователя знающие, что он хотел сказать". Единичный компилятор — C <0,1>. Единичный интерпретатор — FORTH <1,0>. BASIC <1,1> — это объединение интерпретатора и компилятора для удобного решения сиюминутной задачи программирования. Если мы хотим вылезти за пределы этого единичного квадрата, имеет смысл считать BASIC новой точкой отсчета, новым "машинным языком".

Прямой же выход за пределы квадрата: например ещё более "знающий" компилятор (C++) <0,2> или ещё более мощный BASIC (MS Visual Studio со всеми её "бейсиками#" в единообразном обезьяннике) — лишь плодят трудности в понимании языков, а не увеличивают возможности программирования.

"Теоретические" языки я вынес в другую плоскость, начиная с Машины Тьюринга <-1,-1>, Algol <-1,1>, Lisp <1,-1>, Машины пятого поколения <2,-1>...

Можно проследить, как "один язык", в зависимости от реализации может попасть в разные квадраты. Например Pascal изначально был в группе Algol, хоть как-то реализованный (UCSD, Turbo) — уже C, а с правильным обезьянником — Delphi — перерос в супер-бейсик MS VS. Или изначальные C и FORTH, пострадавшие от ANSI, немного поползли за пределы квадрата.

     2021/08/30 00:24, Автор сайта          # 

Странная у Вас схема. По идее компиляторы и интерпретаторы — это разные способы одного и того же действия: преобразования исходного кода в исполняемый и собственно исполнение. То есть это рисуется на одной оси: слева компиляторы, справа — интерпретаторы или наоборот. Где-то посредине — jit-компиляция. Это как отрицательные и положительные числа: они на одной оси. Но никак не на перпендикулярных осях.

Сами языки не накладывают каких-то ограничений на способ преобразования исходного кода и исполнения. Для тех же Си и Паскаля есть и компиляторы, и интерпретаторы. Единственное ограничение со стороны интерпретируемых языков — это наличие в них функции eval. То есть интерпретация кода на лету. Но в Clipper наличие такой функции не мешало получать файл *.exe. Видимо, компилятор встраивался в исполняемый код. Так что идея изобразить всё это на двухмерной системе координат видится неудачной.

Когда-то Япония распиарила свой проект создания машин пятого поколения. Но, несмотря на гигантские вложения, всё закончилось пшиком. Одна из причин — ставка на язык Пролог.

     2021/08/30 00:42, Gudleifr          # 

Сами языки не накладывают каких-то ограничений на способ преобразования исходного кода и исполнения.

Разумеется, они — лишь выражают идею компиляции или интерпретации в удобной форме.

Добавить свой отзыв

Написать автору можно на электронную почту mail(аt)compiler.su

Авторизация

Регистрация

Выслать пароль

Карта сайта


Содержание

Каким должен быть язык программирования?

●  Изобретение очередного велосипеда?

●  Все языки эквивалентны. Но некоторые из них эквивалентнее других

●  Признаки устаревшего языка

●  Лень — двигатель прогресса

●  О наименовании проекта и языка программирования

Анализ и критика

Описание языка

Компилятор

Отечественные разработки

Cтатьи на компьютерные темы

Компьютерный юмор

Новости и прочее




Последние отзывы

2021/09/11 16:46 ••• Gudleifr
Изобретение очередного велосипеда?

2021/09/01 23:42 ••• Gudleifr
Философия языка

2021/08/31 22:04 ••• Gudleifr
Должна ли программа быть удобочитаемой?

2021/08/30 00:42 ••• Gudleifr
Все языки эквивалентны. Но некоторые из них эквивалентнее других

2021/08/19 20:52 ••• Gudleifr
В защиту PL/1

2021/08/19 20:34 ••• Gudleifr
Каким должен быть язык программирования?

2021/08/11 11:24 ••• Gudleifr
Почему обречён язык Форт

2021/08/07 13:43 ••• Anatoly
Компилятор

2021/08/07 13:30 ••• Anatoly
Многоязыковое программирование

2021/06/16 13:10 ••• Александр Коновалов aka Маздайщик
Не поминайте всуе PL/1

2021/05/19 23:15 ••• Денис Будяк
Энтузиасты-разработчики компиляторов и их проекты

2021/04/25 08:41 ••• kt
Некошерный «goto»

2021/04/19 17:01 ••• Клихальт
О наименовании проекта и языка программирования

2021/04/04 18:29 ••• kt
Переключатель

2021/04/02 19:32 ••• Александр Коновалов aka Маздайщик
Циклы