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

Для того, чтобы показать, какие языки программирования более востребованы или распространены на данный момент, ряд организаций ведут собственные рейтинги. Данные этих рейтингов берутся из ряда источников данных. Это форумы, предложения работы для программистов, упоминания в социальных сетях, опросы, репозитории кода. Такого рода рейтинги полезны для отслеживания трендов. В продолжении — несколько рейтингов, которые считаются наиболее авторитетными.

Рейтинг RedMonk


Эта аналитическая компания регулярно публикует собственный рейтинг языков программирования. Он строится на основе оценки сочетания популярности на GitHub, плюс активность обсуждений на Stack Overflow. Лидерами здесь являются JavaScript, Java, PHP и Python.

  • JavaScript
  • Java
  • PHP
  • Python
  • C#,
  • C++
  • Ruby
  • CSS
  • C
  • Objective-C
  • Shell
  • R
  • Perl
  • Scala
  • Go
  • Haskell
  • Swift
  • Matlab
  • Visual Basic
  • Clojure




IEEE Spectrum


IEEE Spectrum — это журнал, который издается Институтом инженеров электротехники и электроники (IEEE). Несколько дней назад этот журнал опубликовал свой рейтинг популярности языков программирования. Как видим, лидером здесь является Си, следом идут Java, Python и C++.

В этом рейтинге довольно необычным является выход R на пятое место. Объяснение здесь простое — этот язык востребован в системах обработки больших объемов данных. Соответственно, растет количество запросов на Stack Overflow. Следует учесть и то, что на GitHub появилось сразу 62 тысячи новых репозиториев. Много новых вакансий и упоминаний языка в научно-исследовательских публикациях.



Для создания своего рейтинга специалисты IEEE использовалис 12 различных метрик из 10 источников. Основное — это поиск результатов по запросу «название языка programming» на ряде популярных сайтов. Учитываются и материалы, которые выдаются в поисковой выдаче Google, данные Google Trends, упоминания в социальных сетях.

TIOBE


Компания TIOBE Software, публикуя свой рейтинг, отмечает рост популярности ассемблера. Согласно этому рейтингу язык поднялся на две позиции — с 12 на 10 место. Это объясняется бурным развитием сферы интернета вещей. Анализ данных проводится на основе результатов поисковой выдачи многих систем, включая Google, Google Blogs, Yahoo!, Wikipedia, MSN, YouTube, Bing, Amazon и Baidu.



Что все это значит?


Только то, что лучшего в мире языка программирования попросту не существует. Многие разработчики работают не с одним, а несколькими языками программирования, попутно изучая новые технологии. Кроме того, популярность и востребованность языка программирования во многом зависит от востребованности технологии, которая требует использования определенного языка. Сейчас трендом является Big Data, и, как видим, начинает расти значимость R. Еще мы видим, что однозначными лидерами всех трех рейтингов можно назвать С, Java и Python. Хотите учить какой-то из этих языков? Вряд ли прогадаете.

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

Другие наши публикации:
Поделиться с друзьями
-->

Комментарии (97)


  1. FluffyMan
    03.08.2016 14:22

    Странно в рейтингах языков программирования видеть языки разметки (*ML) и SQL.


    1. mird
      03.08.2016 14:25
      -4

      Эээ. С какого боку SQL — язык разметки?


      1. ozerothik
        03.08.2016 14:31
        +7

        Языков разметки (*список языков) и (отдельной) SQL.


        1. mird
          03.08.2016 14:32
          +9

          Хорошо. Чем вас смущает SQL среди языков программирования?


          1. m0Ray
            04.08.2016 10:47
            +2

            Меня вот тоже смущает. Без расширения PL/SQL это язык структурированных запросов, не описывающий алгоритмы.


            1. mird
              04.08.2016 17:46

              Что вы имеете ввиду под «не описывающий алгоритмы»? То есть по вашему, на sql не возможно написать программу которая будет получать на вход список целых чисел и выдавать на выходе эти же числа но в порядке возрастания (алгоритм сортировки)?


            1. lair
              04.08.2016 17:48
              +1

              А описание алгоритмов — обязательное свойство языка программирования? Скажем, языки пятого поколения (типа пролога) никакие алгоритмы не описывают — только ограничения. Чем SQL от них отличается (в этом аспекте)?


              (собственно, SQL, как и многие другие DSL, часто относят к языкам четвертого поколения)


            1. Idot
              04.08.2016 18:55
              +1

              Ни чистый Prolog, ни чистые Функциональные Языки Программирования — тоже не описывают алгоритмы, в принципе! Что им тем не менее не мешает являться языками программирования. Потому что все они как и SQL — декларативные языки программирования.


            1. inversed
              05.08.2016 21:27

              С введением Cyclic Tag System в стандарт 1999-го года язык SQL стал Тюринг-полным. Вот тут, во второй части заметки приведен код, который отображает множество Мандельброта.

              Так что чистый SQL все же является языком программирования (хоть и декларативным).


            1. Cubicmeter
              05.08.2016 21:40

              «Составление структурированных запросов» иначе называют «программирование баз данных». Поэтому не надо смущаться.


    1. claygod
      03.08.2016 14:29
      -5

      Разве SQL язык разметки?

      Википедия о SQL
      SQL (??s?kju??l; англ. structured query language — «язык структурированных запросов») — формальный непроцедурный язык программирования, применяемый для создания, модификации и управления данными в произвольной реляционной базе данных, управляемой соответствующей системой управления базами данных (СУБД). SQL основывается на исчислении кортежей.


      1. vtrushin
        03.08.2016 14:39
        +5

        Тогда было бы двоеточие. "… языки разметки: (*ML) и SQL."


        1. mird
          03.08.2016 14:43
          -8

          Если как минимум два человека поняли неправильно что сказал автор, наверное фраза построена криво.


          1. ComradeAndrew
            03.08.2016 19:02
            +22

            Либо два человека поняли криво.


          1. SomeSQL
            03.08.2016 20:01
            +8

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


            1. Source
              04.08.2016 13:18

              По-моему такое уточнение *ML вообще с другими языками ассоциируется: https://ru.wikipedia.org/wiki/ML, которые тоже в этих рейтингах фигурируют )))


              1. FluffyMan
                04.08.2016 15:16

                * это как-бы wildcard. То есть там не может быть ML, там будет «любой символ»ML. Прекратите уже) Зашел и удивился какую ветку комментарием тут посвятили моему выражению.


    1. deniskreshikhin
      03.08.2016 19:16

      Не все языки программирования являются языками программирования общего назначения.


    1. Idot
      04.08.2016 07:40
      +3

      SQL — не язык разметки, а декларативный язык программирования. Почему Вам странно его видеть в языках программирования?


  1. Bojczuk
    03.08.2016 14:31
    +6

    Для меня самым главным показателем популярности языка является выдача поиска рекрутингового сайта по моему региону.


  1. pengyou
    03.08.2016 14:33
    -1

    Где же habralang?


    1. pengyou
      05.08.2016 09:26

      Видимо, нету.


  1. Suvitruf
    03.08.2016 14:48

    JavaScript, как я понимаю, включает node.js?


    1. Bringoff
      03.08.2016 14:51
      +11

      Видимо, node.js — это не язык, а технология.


      1. Suvitruf
        03.08.2016 15:03
        -19

        Но, всё же, я разграничиваю node.js и js.


        1. Fen1kz
          03.08.2016 15:12
          +20

          Простите, пожалуйста, не знал что Вы их разграничиваете. Уже пишу гневное письмо авторам, дескать, ребята, вы накосячили, Suvitruf же разграничивает. Прослежу чтобы поправили!


          1. pengyou
            03.08.2016 15:15

            Обычно после такого начинают петь про то, что в 21-м веке язык неотделим от компилятора, рантайма и стандартной библиотеки, и всё это вместе только и можно называть языком.


            1. NeoCode
              03.08.2016 15:41
              -1

              Язык это язык, компилятор это компилятор. Вот c++/msvc и c++/gcc — это тоже два разных языка? На самом деле там конечно есть специфические языковые расширения, так что про них можно сказать что это «два разных языка» даже в большей степени чем про js и nodejs… но все-же это рейтинг именно языков, уж не знаю насколько сие полезно — но интересно.
              А если уж вводить рейтинг библиотек/фреймворков, то возможно будет совсем другой расклад. Много ли вы знаете библиотек/фреймворков на Си? Зато на php их сотни если не тысячи:)


              1. tangro
                03.08.2016 15:42
                +1

                Много ли вы знаете библиотек/фреймворков на Си? Зато на php их сотни если не тысячи:)

                Поверьте, на Си их в разы\десятки раз больше.


                1. handicraftsman
                  04.08.2016 17:52

                  Фреймворки для чего только не пишут. Даже для ассемблера где-то на гитхабе видел


                1. raidhon
                  05.08.2016 21:40

                  Особенно если учесть что сам PHP написан на С как и большая часть скриптовых языков, компиляторов и ещё черт знает чего.
                  Думаю тут будет разница в сотни.


              1. Idot
                04.08.2016 08:37
                +2

                Обычно да, но в случае Delphi… изначально был язык Object Pascal версии Borland, но затем они его перекроили настолько, что разница между обычным Object Pascal что был в Borland Pascal и тем что стало в Borland Delphi потянула на новый язык.


                1. bentall
                  04.08.2016 12:14
                  -1

                  Маркетинговый ход производителей Delphi, после того, как их покинули все, кто стоял у истоков. Неумный. Borland Pascal и так был стандартом de facto для объектного паскаля, за исключением маков, где как-то есть традиция think different


                  1. Idot
                    04.08.2016 12:53

                    В Boralnd Pascal язык именуемый Object Pascal заметно отличался своей работе с классами от того что в Delphi, не считая появившейся поддержки Event-Driven-Programming.

                    PS возможно я не прав, имхо, Delphi отличается от Pascal больше, чем Modula объявленная Виртом дальнейшим развитием Паскаля.


                    1. bentall
                      04.08.2016 23:23

                      Хм. Всегда считал обработчики событий в Дельфи (ну или Лазарусе) реализованными на уровне не языка, но фреймворка (VCL/LCL). Это не Qt-шные сигнал-слоты, которые потребовали либо специального прекомпилятора, либо чёрной Boost-магии, либо новейшей серой магии из арсенала Modern C++. А в дельфях/лазаре обработчик — это просто наполненная некими действиями реализации процедуры заглушки родительского объекта. ООП-полиморфизм как он есть в самом своём наиклассическом применении (в TurboVision действительно не так, там, ЕМНИП, один обработчик событий на весь обект, а события различаются в операторе выбора, но язык-то тут причём, просто разная архитектура фреймворков).

                      Что до изменения объектной модели — да, изменили. Как раз при переходе от TurboPascal к Borland ObjectPascal, е.м.н.и.п. В Delphi язык переименовали сильно позже. При том, что тот же язык реализован во вполне живом FreePascal, и тогда ещё живых Virtual и TMT Pascal.

                      Вот по этому я и написал про не слишком умный маркетинговый ход.


                      1. MacIn
                        04.08.2016 23:29
                        +1

                        Хм. Всегда считал обработчики событий в Дельфи (ну или Лазарусе) реализованными на уровне не языка, но фреймворка (VCL/LCL).

                        И да и нет.
                        Вот обработчик сообщения:
                        procedure CMStart(var Msg: TMessage); message CM_START;
                        Привязка кода сообщения к обработчику есть в языке. Да, черной ассемблерной магии там под капотом — тоже выше крыши.

                        Опять же, если говорить об отличиях, важных шагом вперед является рефлексия и возможность доступа к полям во время выполнения. Не говоря о самих properties.


                        1. bentall
                          05.08.2016 00:07

                          Что до ключевого слова message, да, забыл про него: Pointers to message methods are stored in a special table. Property вроде уже в TP7 как минимум были. Новая объектная система с поддержкой RTTI — да, серьёзное изменения, и если бы язык переименовали вместе с её, вопросов бы было намного меньше.


                          1. MacIn
                            05.08.2016 00:58

                            Property вроде уже в TP7 как минимум были.

                            Нет.


                1. stychos
                  06.08.2016 00:51

                  Он ещё успел трубо-паскалем поназываться.


              1. Jef239
                05.08.2016 21:28

                Будете смеяться — RatFor. Язык реализовывался при помощи препроцессора фортрана-66. При этом отличия от фортрана-66 — сильные, ратфор ближе к Си, чем к фортрану.


            1. tangro
              03.08.2016 15:41

              Уж и операционку сюда записывайте и всё железо, чего уж там. А на самом деле это можно назвать средой выполнения, а язык — это язык.


          1. Suvitruf
            03.08.2016 15:53

            Я ни к чему не призывал, просто высказал мнение. Или это запрещено? К чему этот сарказм?


    1. napa3um
      03.08.2016 15:46
      -3

      Node.js, как я понимаю, включает в себя JavaScript.


      1. Neuronix
        04.08.2016 10:47

        Да, а stdlib включает в себя C


        1. napa3um
          04.08.2016 10:51

          Нет, спецификация языка Си включает в себя в том числе спецификацию стандартной библиотеки. А Node.JS — это платформа, которая в себя включает интерпретатор языка JS.


          1. MacIn
            04.08.2016 21:53

            Нет, спецификация языка Си включает в себя в том числе спецификацию стандартной библиотеки

            Что входит в эту стандартную библиотеку?


            1. napa3um
              05.08.2016 06:24
              +1

              https://ru.m.wikipedia.org/wiki/Стандартная_библиотека_языка_Си

              https://ru.m.wikipedia.org/wiki/Stdlib.h

              А к чему этот вопрос?


              1. MacIn
                05.08.2016 18:22

                Просто любопытство. Не знал, что стандартная библиотека в таком составе входит в спецификацию.


    1. Free_ze
      03.08.2016 15:55

      Очевидно, раз там еще и иконка мобильника есть (т.е. PhoneGap/Cordova тоже там)


  1. azsx
    03.08.2016 16:16
    +3

    Pascal уже 12! Надо немного подождать…


  1. umren
    03.08.2016 16:16
    +1

    Какой смысл в таких абстрактных рейтингах?

    Думается мне, надо выбирать язык под задачу которой вы хотите заниматься, а там вам уже никакой рейтинг не поможет, обычно выбор весьма скромен и упирается в пару языков, где специалист уже сам разберется.

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


    1. pengyou
      03.08.2016 16:20
      +1

      Так ведь и получаются рейтинги — видишь хороший язык, хочешь его изучить и поднять его рейтинг, потом смотришь в вакансии, смотришь в глаза менеджеру с табличой "bus factor" и в итоге выбираешь один из паршивых языков, который был вытолкнут рынком в топы ещё на рубеже веков, прибавляя и укрепляя его вес в рейтинге.


      1. iCpu
        04.08.2016 06:14
        +1

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

        > в итоге выбираешь один из паршивых языков, который был вытолкнут рынком в топы ещё на рубеже веков
        Который был тогда популярен и точно так же выталкивал другие языки, созданные ещё до вашего рождения. Ничто не меняется, это рынок, и в нём идёт борьба за клиентов. И все евангелисты, пропагандирующие Rust или GoLang, они именно промывают вам мозги, какой у них хороший товар, с ним ваша пи… производительность вырастет аж в полтора раза. Я сейчас не касаюсь качества тех или иных ЯП. Я пишу о том, что 10-15 лет назад такие же молодые и красивые, как вы сегодня, покупали блестящий delphi или FoxPro, а евангелисты того времени писали, насколько удобнее вот эта фишка, как круто поддерживается вот эта платформа и сколько % приростёт всё туда же. А в итоге выяснялось, что под лаком оказывался убитый хлам. А сегодня они вынуждены тащить этот выброшенный всеми хлам, потому что нет у них ресурсов на перезапуск. И ведь посмотрите, те же FoxPro или MFC, они были разработаны флагмоном, и их это не спасло. Нет оснований считать, что через 5 лет точно так же не будут выброшены ваши любимые ЯП в пользу новых блестяшек, а вы останетесь у разбитого mysql.


      1. Gorthauer87
        04.08.2016 10:52
        +1

        Новые нишы постоянно рождаются, туда может вообще любой самый непопулярный язык пролезть и обрести известность. Тот же R же как-то пролез через этот самый барьер.


        1. pengyou
          04.08.2016 17:42

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


          1. Gorthauer87
            04.08.2016 20:04

            Не так уж это и страшно. К тому же у одной компании может быть множество проектов на разных языках


      1. MacIn
        04.08.2016 21:54
        -1

        видишь хороший язык, хочешь его изучить и поднять его рейтинг, потом смотришь в вакансии, смотришь в глаза менеджеру с табличой «bus factor» и в итоге выбираешь один из паршивых языков, который был вытолкнут рынком в топы

        «Хороший» он хороший потому что вам нравится по ряду причин (субъективный фактор), или потому что он устоялся, под него написано множество библиотек, можно легко найти документацию?


        1. pengyou
          05.08.2016 09:25

          Чтобы стать по-вашему-хорошим языком нужно попасть в замкнутый круг, потому что пользователи по-вашему-хороших на сегодня языков в свое время пришли в эти языки и использовали их даже в том состоянии, которое вы бы не назвали по-вашему-хорошим. И на тот момент, возможно, у людей даже не было выбора (взять хотя бы историю Питона), и со временем (которого уже нет у новых языков) те языки заматерели и обросли компонентами и сообществом. Но время изменилось и современное ИТ в ловушке — никто уже не будет отказываться от старого, хотя его косяки за всё время использования уже всем очевидны, но новое тоже использовать страшно. Получается, что каждый новый проект на старом языке это акт отрицательного отбора по критериям не технологий, а бизнеса (по-вашему-хороший).


          1. MacIn
            05.08.2016 18:28

            Чтобы стать по-вашему-хорошим языком нужно попасть в замкнутый круг, потому что пользователи по-вашему-хороших на сегодня языков в свое время пришли в эти языки и использовали их даже в том состоянии, которое вы бы не назвали по-вашему-хорошим

            Я говорю о том, что язык можно и нужно рассматривать как инструмент в конкретный момент времени, а не просто некоторую идею. Если инструмент позволяет решить задачу быстро и дешево, его вполне можно назвать хорошим. На данный момент, естественно. По аналогии — если у нас есть, например, перфоратор, но нет электричества, то ручная дрель будет более хорошим инструментом. Когда же распространенность электроинструмента приведет к тому, что электричество появится и в этой точке, перфоратор станет более хорошим инструментом, потому что позволит решить задачу быстрее.

            Но время изменилось и современное ИТ в ловушке — никто уже не будет отказываться от старого, хотя его косяки за всё время использования уже всем очевидны, но новое тоже использовать страшно.

            Потенциальная выгода от нового может быть неочевидна, или вовсе не существовать. Да, новое должно «проибиться», и пробьется если только имеет конкурентные преимущества.


            1. pengyou
              07.08.2016 14:57

              Отрицательный отбор слышали?


              1. MacIn
                08.08.2016 15:39

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


    1. Shamov
      04.08.2016 11:03
      +1

      Я тоже очень долго удивлялся, не понимая, зачем нужны такие рейтинги. Но недавно мне в комментариях всё объяснили. Дело в том, что на рынке труда существует одна острая проблема. Разработчики хотят получать слишком много денег, потому что не чувствуют страха не найти работу. Традиционно эта проблема решается привлечением в отрасль новых специалистов. Чем выше будет конкуренция за рабочие места, тем ниже будут ожидания по зарплате. А чтобы повысить конкуренцию среди разработчиков на каком-то конкретном языке, нужно просто заказать где-нибудь исследование популярности языков по такой методике, которая покажет, что наиболее популярным является заданный язык. Как выясняется, в мире полно людей, которые хотят просто программировать. Им неважно, какие именно задачи. Лично мне кажется, что это какая-то абсурдная мотивация. Типа, как хотеть купить машину, чтобы просто ездить. Неважно, куда именно. Просто ездить и всё.


      1. iCpu
        04.08.2016 11:25
        +1

        Отчасти верно, привлечение масс, да, но, скажите, разве число высококлассных специалистов за последние годы достигло хотя бы половины от открытых вакансий? Увы и ах. Рождённые летать…

        > в мире полно людей, которые хотят просто программировать
        В мире полно людей, которые хотят просто рисовать. Их на девиантарте можно найти. В мире полно людей, которые хотят просто петь. Их на тытубе и вконтакте навалом. В мире полно людей, которые хотят просто ездить. Некоторые из них — исплючительно по говнам бездорожья. В мире полно людей, которые хотят просто смотреть сериальчики. Абсурдная мотивация, они сумашедшие, не иначе.


        1. Shamov
          04.08.2016 14:06
          +1

          Про высококлассных речь не идёт. Они вне основной конкуренции.Точнее, если среди них и может быть конкуренция, то уж точно не по цене. Это как luxury-сегмент рынка. Если тебе действительно нужен высококлассный специалист и тебе повезло его найти, то тебе, по большому счёту, без разницы сколько он стоит. Всё равно он своим трудом заработает тебе несравнимо больше. Есть даже более точная аналогия, чем luxury-сегмент. Это заводы по сжижению природного газа. Так сложилось, что они очень круто автоматизированы. Для обслуживания завода, напоминающего своими размерами город средних размеров, достаточно нескольких десятков человек. Годовая выручка на таком заводе генерируется в объёме нескольких миллиардов долларов. И в расчёте на одного работника получается порядка 50 млн. в год. Владельцу завода абсолютно безразлично, какая зарплата будет у сотрудников. Если нужный ему специалист захочет получать 200 тыс. в год, то ради бога. Захочет получать 300 тыс. — тоже не проблема. Проще всего, если он сам назовёт комфортную сумму и всё. Заранее известно, что она будет исчезающе мала в сравнении с выручкой в расчёте на человека.


          1. iCpu
            04.08.2016 19:52

            Маленькое «НО!», увеличение количества происходит на всех уровнях. Значит, если бы вы были правы, появился бы переизбыток, что сразу бы привело к понижению мобильности разработчиков. На деле этого нет.

            Почему? Видимо, программировать — не мешки ворочить, кроме спины тут нужна ещё и голова. И в неё желательно не только есть, но и читать. И думать, о ужас!


            1. Shamov
              04.08.2016 21:36
              +1

              Представьте, что производство автомобилей Ролс-Ройс Фантом вырастет в два раза. Появится ли переизбыток на рынке? Упадут ли цены на авто представительского класса? А затем представьте, что в те же самые два раза вырастет производство Форд Фокусов. Появится ли переизбыток в этом случае? Упадут ли цены на авто в эконом сегменте? Какой из этого можно сделать вывод? А такой, что увеличение количества на разных уровнях имеет разные последствия.

              Применительно к разработчикам можно сказать следующее. Существенное увеличение высококлассных специалистов, — например, разработчиков компиляторов, — приводит к тому, что появляются новые языки программирования, которые в чём-то лучше старых. Другими словами, происходит прогресс и развитие отрасли. А вот увеличение числа веб-разработчиков и разработчиков мобильных приложений приводит лишь к тому, что цены на разработку в этом секторе снижаются. Двоим приходится работать за зарплату одного и делать вдвое больше работы: два сайта для двух заказчиков вместо одного сайта для одного крупного заказчика. И работать приходится в два раза быстрее, поэтому они оба вынуждены использовать стандартные фреймворки, чтобы было хотя бы минимальное разделение труда. Каждый из этих разработчиков ощущает себя очень эффективным. Хотя общая эффективность всей системы остаётся прежней. Просто система растёт и внутри неё происходит перераспределение ресурсов. Никакого реального прогресса и развития всей системы не происходит. Число нужных сайтов более-менее постоянно. Просто они чаще переделываются. При этом отдельные разработчики ощущают то, что они активно развиваются. Можно сказать, что в их случае происходит «развитие на месте» (аналог «бега на месте»). Тратится куча усилий на приобретение новых актуальных навыков, однако ранее приобретённые навыки утрачивают актуальность примерно с той же скоростью.


  1. alek0585
    03.08.2016 16:30

    А где мой любимый HTML?


    1. Miraage
      03.08.2016 17:18
      +2

      JSON еще скажите.


      1. Suvitruf
        03.08.2016 17:21
        +1

        А что, xml вон есть.


        1. bentall
          04.08.2016 12:33
          +1

          Ну, в инфрастуктуру XML входит вполне тьюринг-полный функциональный язык XSLT, например


      1. alek0585
        03.08.2016 19:06

        JSON это JavaScript Object Notation
        HTML это HyperText Markup *Language*

        А насчет XML – где вы видели программиста по xml? А вот программист по html называется верстальщик. Ну правда еще CSS надо знать. Но сам по себе CSS не имеет ценности, он специально для HTML и используется только с ним.


        1. umren
          03.08.2016 21:17
          +1

          где вы видели программиста по xml?


          Каждый день программирую на xml и Java :)


        1. DeLuxis
          04.08.2016 08:05
          +1

          Есть реализация терминального ПО, которая в качестве описания логики и экранов использует xml. Тьюринг-полная схема.
          :D


          1. Idot
            04.08.2016 09:10

            А можно чуть подробнее как такое возможно?


            1. DeLuxis
              04.08.2016 09:52

              Есть теги if, else, then, set-value. Есть экраны со своими id, между ними можно переходить в зависимости от логики.
              Есть математические теги.
              Есть void экран, который можно использовать как функцию.
              У компании Soft-logic это сделано.


              1. pengyou
                04.08.2016 09:59

                Правильно называется такое чудо не xml, а xml-based language.


                1. DeLuxis
                  04.08.2016 10:03

                  Спасибо, буду знать.


              1. Idot
                04.08.2016 10:54

                Спасибо! Не ожидал!


            1. napa3um
              04.08.2016 11:23

              XML может выражать любые иерархические («деревянные») данные, даже AST ( https://ru.wikipedia.org/wiki/Абстрактное_синтаксическое_дерево ).


            1. MacIn
              04.08.2016 22:05

              И чисто в CSS возможно, как оказалось. Есть игры на CSS.
              https://www.google.com/search?site=&source=hp&q=css+game


        1. scottKey
          04.08.2016 12:21

          Есть вакансии в банках где программисты только на xml пишут логику преобразования данных под выдачу из БД. Естественно используя возможности других программных продуктов.


  1. handicraftsman
    03.08.2016 18:37
    +3

    Странно — 2017 год ещё не наступил, а рейтинги на 2016 уже имеются


  1. unixwz
    03.08.2016 19:44
    +1

    Приятно видеть Си на 1 месте у IEEE Spectrum


  1. SECL
    04.08.2016 07:28
    -1

    JS и Python ожидаемо.


  1. AndreyDmitriev
    04.08.2016 11:06

    Вот смотрю я на эти рейтинги, и одна мысль не даёт мне покоя — вместе с развитием языков растёт их сложность. Приятно видеть Си в лидерах, но С++ и С# тоже там, и я плохо представляю, как нынешнее поколение программистов может постичь все премудрости современных языков. Я вот о чём. В школе мы вообще не изучали языки — у нас был предмет «Основы информатики», там изучались основы логики, а единственным программируемым устройством у меня был калькулятор Электроника МК61. В институте была стандартная программа — сначала Фортран, затем Паскаль. В то время Вирт был моей настольной книгой. Курсе на четвёртом я начал самостоятельно изучать Си (я вообще физик по образованию, Си в стандартной программе не было) и место на столе заняла книга Кернигана и Ричи.После Паскаля это было невообразимо круто. Потом была Модула-2, и ассемблер PDP-11. На пятом курсе я сделал подход к С++, но Бъёрн Страуструп оказался тяжеловат. Я попробовал написать пару оконных приложений для Windows 3.11 и уже в то время это оказалось сложновато, ибо количество кода, необходимое для самых простых вещей зашкаливало все разумные пределы. В конце девяностых судьба связала меня с Дельфи — знание Паскаля помогло, а интуитивно-понятная среда позволяла клепать Windows приложения как на конвейере, ну и мозаика ООП наконец-то сложилась. В какой-то момент я упирался в производительность, и пришлось изучить x86 ассемблер и досконально разобраться в MMX. Тогдашнее расширение MMX ещё можно было удержать в голове, но может ли кто-нибудь похвастаться, что он досконально знает все современные SIMD расширения? Дальше был интересный период — я перешёл на LabVIEW и пятнадцать лет программировал на нём, пройдя от версии 5.1 до 2016. LabVIEW образца 2000 года был прост как пять копеек, но LabVIEW 2016 несоизмеримо сложнее. И вот теперь я изучаю C# 6.0, у меня на столе Альбахари и Михаелис с Липпертом, и это просто взрывает мой немолодой уже мозг (и это я ещё до Рихтера не дошёл). Для тех, кто много лет «рос» вместе с языком начиная с начала двухтысячных, каждая следующая версия воспринимается достаточно легко — примерно как для меня LabVIEW, который я знаю вдоль и поперёк. Однако для тех, кто начинает изучать язык сегодня, этот процесс похож на попытку вскочить в поезд на ходу, причём поезд движется всё быстрее и быстрее. Возможно именно простота Си и удерживает его в десятке лидеров. И процесс усложнения высокоуровневых языков не останавливается, постоянно удлинняя процесс изучения, и ведь когда-нибудь наступит момент, когда от момента изучения до момента свободного владения несколькими языками просто жизни не хватит. Сегодня программирование начинают изучать ещё со школьной скамьи, чуть ли не с первого класса, это стало более чем доступно, есть прекрасные наборы Lego EV3, о которых я даже и мечтать не мог, но если не случится какой-нибудь революции, то в какой момент нас настигнет «кризис сложности языков». Или я неправ?


    1. Idot
      04.08.2016 11:29

      C удерживает в лидерах, то что самые быстрые языки это Assembler, Forth и C. Из которых C легче всего освоить, да и компиляторов Forth я ни разу в живую не видел (ни под DOS, ни под Windows).


    1. iCpu
      04.08.2016 11:48
      +1

      Оглянитесь на любую другую научно-прикладную область. Как справляются физики? Химики? Химия уже не так проста, как во времена Ломоносова и Менделеева, сегодня < и далее по тексту > Берут и справляются. То, что люди выводили через мучения десятилетиями, ими получается в готовом виде. У них свои методы работы. То, что раньше приходилось держать в уме, сегодня выводится и проверяется с помощью компьютеров. У них свои казусы, свои формулы, над которыми они будут биться. Упёрлись ли они в «кризис»? Да, во многих областях упёрлись, но это не значит, что они отступили.

      Упрёмся ли в стену? Уже упёрлись, новые языки и методологии не решают первостепенных проблем. Конец? Нет, преддверие смены парадигмы. Увеличение роли ИИ в написании приложений, автоматическая оптимизация, генерирование программного кода из текстового описания задачи. Квантовые и оптические компьютеры, графеновые источники питания и сверхпроводники. У нас есть масса технологий, которые могут выстрелить. И будет новая итерация, и тогда я буду писать «ну вот, теоретические возможности оптического вычислителя практически достигнуты, достигнута огромная сложность. Не уж то стена?» И тогда уже мне какой-нибудь дерзкий молокосос будет писать, что, мол, чего ты боишься, ничего страшного, осваиваем же субатомные технологии, скоро получим новые стабильные виды атомов, и на них построим ещё какую-нибудь фигню.


      1. AndreyDmitriev
        04.08.2016 13:43

        В принципе согласен, вы правы. Ещё такой момент — технический прогресс, он как бы «рывками» развивается, резкие прорывы сменяются периодами плавного наращивания знаний для следующего «прорыва». Изобретение транзистора, затем процессора были примерно такими прорывами. ИИ безусловно будет одним из следующих, но вот конкретно в данный исторический момент имеющаяся база программно-аппаратных средств ещё совсем не готова к созданию ИИ, как мне кажется.Сменится как минимум пара-тройка поколений программистов, прежде чем что-то радикально изменится.


    1. perfect_genius
      04.08.2016 14:58

      Революция рано или поздно случится, не сомневайтесь. Бывают люди, которые никак не хотят привыкать к плохому и потихоньку пилят своё решение у себя в пещере. Кто-нибудь из-таких обязательно выйдет на свет и изменит мир.


    1. MacIn
      04.08.2016 22:08
      -1

      Я попробовал написать пару оконных приложений для Windows 3.11 и уже в то время это оказалось сложновато, ибо количество кода, необходимое для самых простых вещей зашкаливало все разумные пределы

      Оно на чистом Си действительно занимает много места, никакого ООП.

      но если не случится какой-нибудь революции, то в какой момент нас настигнет «кризис сложности языков». Или я неправ?

      В принципе, появление GO — как раз ответ на такой кризис.


  1. ncuxomozg
    04.08.2016 12:14
    +1

    Я один кто пропустил тот момент, когда github стал индексом популярности? Явно не хватает статистики с других источников, скажем, специализированных для конкретного языка. Есть же cpan, rubygems, PyPI, %укажи свой%. Я более чем уверен, что далеко не все проекты дублируются в github.


    1. iCpu
      04.08.2016 12:21

      То же справедливо и для других ЯП. Этот показатель — один из лучших за неимением иных. Хотя, например, можно было бы включить в рейтинг статистику codegaming, на котором все программируют на удобных для себя ЯП (или для учёбы).


    1. stepik777
      05.08.2016 01:46

      По количеству пакетов в репозиториях разных языков есть такой рейтинг: http://www.modulecounts.com/


  1. sugadu
    04.08.2016 12:14
    +1

    По вакансиям бы кто сделал рейтинг.


    1. Alexey2005
      04.08.2016 22:46

      Он сильно зависит от региона. Например, злые языки утверждают, что в России программирование можно обнаружить всего в четырёх городах, за пределами которых имеется только 1C и немного PHP.
      Тем не менее, многие рекрутинговые ресурсы предоставляют такой рейтинг. Например вот по UK.


  1. Hayter
    05.08.2016 21:40
    -1

    По итогам рейтингов Java первая и это радует. До python руки не дойдут никак, но рейтинги мотивируют.


  1. lany
    09.08.2016 10:56

    По количеству проектов на GitHub несколько странно судить. Сравните средний размер библиотек на Java и на JavaScript. У JavaScript гранулярность гораздо выше. Вон пресловутый Azer Koculu имеет больше сотни JS-репозиториев. Типичный выглядит как-то так.