Разработчики программного обеспечения пользуются огромным спросом в настоящее время. В некоторых компаниях даже стажеры-программисты получают высокую зарплату. ИТ-компании борются друг с другом за талантливые кадры.

А кадры, в свою очередь борются за место под солнцем. Успех тех и других будет зависеть от того, насколько хорошо у них получается держать руку на пульсе, быть в тренде, использовать перспективные технологии и языки программирования. Чтобы понять, на что ориентироваться и в каком направлении идти, разработчики ПО и их работодатели изучают различные исследования и рейтинги популярности – будь то бизнес-модели или те же технологии и языки программирования.

Однако некоторые игроки ИТ-рынка оказались предприимчивыми и создали проекты, посвященные ранжированию и трендам. К примеру, на этой неделе GitHub опубликовал собственный рейтинг 15 самых популярных языков программирования. Конечно же, популярность определялась по количеству pull-запросов на GitHub за последний год.

В настоящее время в GitHub представлены 5.8 миллиона активных пользователей, 331 тысяча организаций и 19.4 миллиона репозиториев.

No. 15 — TypeScript:


Язык своим появлением обязан компании Microsoft. Он создан как средство разработки веб-приложений, расширяющее возможности JavaScript. Основным разработчиком языка TypeScript является Андерс Хейлсберг который ранее участвовал в создании Turbo Pascal, Delphi и C#. В ближайшее время выйдет релиз TypeScript 2.0.

No. 14 — Swift:


Язык собственного приготовления – от компании Apple. Он был создан для iPhone-приложений в 2014 году. Однако Swift за столь короткий срок сумел завоевать популярность.

Такси-сервис Lyft переписал свое iPhone-приложение на этом языке и сообщил об «огромном скачке» в производительности.

А совсем недавно вышло новое приложение Swift Playgrounds – самый простой способ познакомиться с языком Swift. По крайней мере, в этом уверен Крейг Федериги, старший вице-президент компании Apple по программному обеспечению.

No. 13 — Scala:


Этот язык программирования вышел в свет в 2001 году. Его подхватили такие крупные компании, как Airbnb и Apple. По их мнению, на нем проще и быстрее писать приложения для их нужд, нежели на набившем оскомину языке Java.

Изначально Scala, поддерживающий объектно-ориентированную и функциональную парадигмы, был создан с расчетом на трансляцию в байт-код Java и .NET. Со временем также появился транслятор Scala в код JavaScript — Scala.js. Однако в мае 2016 года стало известно, что в рамках проекта Scala Native создается компилятор, обещающий ускорить выполнение приложений, написанных на этом языке.

No. 12 — Objective-C:


Изначальный С так понравился людям, что у него появились последователи. В частности, некоторые из них вдохновились на создание Objective-C, который предстал перед публикой в 1983 году. Конечно, в него были добавлены новые идеи и элементы языка Smalltalk, но буква С не зря венчает его название.

Особенно распространился Objective-C среди разработчиков под платформы Apple. Пока он удерживает эти позиции, но Swift грозится потеснить потомка С в скором времени.

No. 11 — Shell:


Это гадкий утенок среди прочих участников списка: Shell – не столько язык, сколько интерпретатор команд для выполнения тех или действий в операционных системах семейства UNIX. Его скрипты используются, например, для автоматизации обновления ПО. Он содержит стандартные конструкции для циклов, ветвления, объявления функций и так далее.

No. 10 — Go:


Был разработан внутри компании Google. Первоначальная разработка Go началась в сентябре 2007 года, а его непосредственным проектированием занимались Роберт Гризмер, Роб Пайк и Кен Томпсон. Официально язык был представлен в ноябре 2009 года.

Язык Go разрабатывался как язык системного программирования для создания высокоэффективных программ, работающих на современных распределённых системах и многоядерных процессорах. Он может рассматриваться как попытка создать замену языку Си.

При разработке уделялось особое внимание обеспечению высокоэффективной компиляции. Программы на Go компилируются в объектный код (хотя доступен и интерпретатор) и не требуют для исполнения виртуальной машины.

No. 9 — C:


Это язык, которому теперь пытаются найти замену. Язык Си был разработан Деннисом Ритчи в 1972 году в Bell Labs. Он является предшественником таких языков программирования как С++, Java, C#, JavaScript и Perl. По этой причине изучение этого языка ведет к понимаю и других языков. Язык С используется для разработки низкоуровневых приложений, так как считается ближе всего к аппаратному, уступая только ассемблеру.

No. 8 — C#:


С# принадлежит семье языков программирования Microsoft и был разработан в 2000 году и стал частью первого релиза .NET framework. Язык С# сочетает в себе надежность С++ с дополнительными возможностями Java. Поэтому если вы хорошо знаете Java, можно легко переключиться на С# и наоборот.

Язык С# позволяет разрабатывать практически любые приложения, которые связаны с Visual Studio IDE.

No. 7 — CSS:


Cascading Style Sheets (каскадные таблицы стилей) — формальный язык описания внешнего вида документа, написанного с использованием языка разметки.
Преимущественно используется как средство описания, оформления внешнего вида веб-страниц, написанных с помощью языков разметки HTML и XHTML, но может также применяться к любым XML-документам.


Указан рост популярности языка в процентах. Его место в рейтинге определяется числом pull-запросов пользователей. Рейтинг отражает популярность применения языков программирования в репозиториях.

No. 6 — C++:


Языку Си не хватало работы с объектами. Чтобы решить проблему, в 1986 году был разработан С++, который является одним из самых распространенных языков в мире. Google Chrome, Mozilla Firefox, Winamp и линейка продуктов Adobe были разработаны с помощью С++. Кроме того, некоторые современные игры и операционные системы были разработаны на С++ из-за быстрого процессинга и компиляции. Кроме того, разработчики С++ имеют огромный спрос на рынке труда.

No. 5 — PHP:


PHP — это один из наиболее широко используемых языков для разработки динамических веб сайтов. PHP был разработан в 1995 году и является языком сценариев на стороне сервера, что означает, что PHP код обрабатывается на сервера, а конечный результат пользователь получает в виде обычного HTML.

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

Однако недоброжелатели не дремлют: Джефф Этвуд. основатель Stack Exchange, как-то писал, что PHP – это даже не язык программирования, это куча не связанных друг с другом фрагментов функциональности.

No. 4 — Ruby:


Ruby — простой и читаемый язык программирования, ориентированный на разработку веб приложений. Разработанный Юкихиро Мацумто в 1995 году, фреймворк Ruby использовался для разработки Github, Scribd, Yammer, Shopify и Groupon. Ruby сочетает в себе некоторые возможности Lisp, Pearl и Eiffel. Ruby имеет хороший рынок труда и разработчики получают достойно.

No. 3 — Python:


Python — это другой высокоуровневый язык программирования и часто считается самым легким языком, благодаря своей простоте, читаемости и синтаксису. Python был разработан Гвидо Ван Россумом в 1991 году. Python не использовался так широко в прошлом, однако стал особенно популярным за последние годы благодаря инвестициям Google. В настоящее время некоторые весьма известные и надежные сайты работают на python, особенно pinterest.com, instagram.com и rdio.com. Как и PHP, Python можно использовать для разработки веб приложений.

No. 2 — Java:


Java был разработан Джеймсом Гослингом в 1990 году в компании Sun Microsystems. Java дополнительно увеличивает возможности языка С++. Особенность Java заключается в том, что это первый чисто объектно-ориентированный язык программирования. Java был разработан по принципу WORA (Write Once Run Anywhere или «написав код однажды, вы запустите его везде»). Речь идет про переносимость Java. Необходимо скомпилировать исходный код на Java всего лишь раз, а затем запустить на любой машине с установленным JVM (Java Virtual Machine) и затем использовать.

No. 1 — JavaScript:


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


Указан рост популярности языка в процентах. Его место в рейтинге определяется числом pull-запросов пользователей. Рейтинг отражает популярность применения языков программирования в репозиториях.

По данным GitHub, JavaScript, C# и Go показали двойной рост аудитории. А аудитория Swift и TypeScript выросла в 3,5 раза.


Индекс TIOBE распределил места немного по-другому: на первом месте оказался языка Java, далее следуют С, С++, С# и Python. А лидер рейтинга GitHub здесь занимает только 6-е место.

Поделиться с друзьями
-->

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


  1. qrck13
    17.09.2016 18:34
    +13

    Почему самый костыльный и ужасный язык занял позицию #1?


    1. xtala
      17.09.2016 18:47
      +11

      Да не такой уж он костыльный и ужасный. Готовить его надо уметь и повар хороший нужен. А на первом месте наверное потому, что веб становится де-факто самой большой программной экосферой из всех существующих.


    1. maaGames
      17.09.2016 18:54
      +27

      Потому что это не «популярность», а «количество коммитов». А это не одно и то же.
      Не говоря о том. что многие разработчики С++ и прочих старых языков не бросаются переводить все проекты на github из VCS, которыми пользовались до этого кучу лет.


    1. lnroma
      17.09.2016 20:23
      -11

      Как рас потому что на нём много пишут кода ( в смысле объёма )


    1. ivan386
      17.09.2016 20:29
      -8

      Я недавно worker'ы осваивал а их на локальной машине не потестить не поднимая вебсервер. Такого количества комитов в один день я ещё никогда не делал.


      1. samizdam
        19.09.2016 07:41

        Почему же?


        1. ivan386
          19.09.2016 13:55

          Что именно?


          gravity.svg:28 Uncaught SecurityError: Failed to construct 'Worker': Script at 'file:///C:/.../worker.js' cannot be accessed from origin 'null'.

          1. Пишем код
          2. Commit
          3. Push
          4. Тест на сервере
          5. Исправляем, дописываем
          6. GoTo 2


          1. samizdam
            19.09.2016 14:23
            +1

            Я к тому, что не проблема поднять локально вебсервер средствами docket / vagrant. Это сэкономит время отладки и избавит от мусорных коммитов в origin.


            1. ivan386
              19.09.2016 15:07

              Это не выглядит как что то простое. Я попробовал поискать простой веб сервер но тот что мне попался вместо открытия файла заставлял браузер скачивать. Я забил и тестил на rawgit.


              Согдасен это не является хорошей практикой но так случилось.


              1. gearbox
                19.09.2016 20:26
                +1

                если стек js — express, там для статики пять строчек. Либо node-static — https://learn.javascript.ru/screencast/webpack во второй части (простая сборка, простой конфиг) Можно использовать встроенный php сервер http://php.net/manual/en/features.commandline.webserver.php В общем как бы варианты есть.


              1. Nicklasos
                20.09.2016 12:12
                +1

                Просто устанавливаем php и в консольке выполняем команду php -S localhost:8000 для запуска локального веб сервера.
                Для https можно установить ngrok и запустить его командой ngrok http 8000 и у вас локальный https веб сервер без всяких проблем.
                Думаю у node.js в пакетах где-то тоже должен быть простой веб сервер.


              1. Alexeyslav
                21.09.2016 10:11

                Так вестимо, браузер настраивать надо. Это поведение зависит от того как ответит сервер, значением в поле тип контента — если он на всё будет отвечать «двоичные данные» то у браузера не останется иного варианта как просто скачивать содержимое как неизвестного типа. Нужно добиться настройкой сервера чтобы тот отвечал на изображение соответственно, тогда браузер откроет его как изображение. Расширение файла роли не играет — имени файла так вообще может не быть.


    1. EmmGold
      17.09.2016 20:37
      +14

      Вероятно часто исправляют исправления на исправления. Поэтому и используется много, и коммитов много.


    1. gnemod
      17.09.2016 21:00
      -1

      Да он костыльный и ужасный с точки зрения тех кто программирует на «правильных» языках типа Java или C#, но тем не менее почему то программировать на нем мне гораздо приятнее чем на C, C++, C#, Swift (даже не знаю почему, может я люблю говнокодить). А с последними расширениями ECMA он убьет и typescript и займет весомую часть в разработках серверного бакэнда


      1. qrck13
        17.09.2016 21:01
        +5

        Я бы сказал что в JS — порог вхождения заметно ниже. Не нужно много и долго изучать примудрости Computer Science, что бы стать более менее «средним» разработчиком на JS


        1. gnemod
          18.09.2016 01:25
          -12

          А может не нужны все эти премудрости Computer Science? Когда посредственный программист 1С (iOS, React подставь что хочешь) зарабатывает в полтора раза больше embedded программиста, спрашивается зачем нужны все эти знания архитектуры процессора, математики, паттернов проектирования.


          1. qrck13
            18.09.2016 01:44
            +5

            > А может не нужны все эти премудрости Computer Science? Когда посредственный программист 1С (iOS, React подставь что хочешь) зарабатывает в полтора раза больше embedded программиста, спрашивается зачем нужны все эти знания архитектуры процессора, математики, паттернов проектирования.

            1. Причем здесь embedded?

            2. Я в жизни не видел ни одного посредственного (как вы выразились) 1С / React / etc программиста, котрый получал бы больше квалифицированного разработчика. Любые большие проекты требуют квалификации и опыта, и «посредственные разработчики» просто не способны в них участвовать. А на мелкой халтуре, для которой годиться React, много не заработать.

            3. Если вы пошли в разработчики ПО только ради денег — долго вы в профессии не удержитесь


            1. gnemod
              18.09.2016 01:58
              -3

              1. Embedded имхо требует знания наибольших знаний в области Computer Science
              2. Че прям React только для мелкой халтуры годится? Клиентские и серверные javascript фрэймворки еще только начали свой путь развития, и глядя на то что уже есть я думаю что кроме javascript уже ничего не надо изучать:) А серьезно WEB разработкой я всего лишь пару лет назад занялся
              3. Да чет 20 лет уж там, может и правда пора на покой. Я думаю немного тех кто по молодости может оценить сколько принесет денег та или иная профессия и те или иные скилы. Интересно а ради чего пошли в профессию вы?


              1. qrck13
                18.09.2016 02:53
                +4

                > 1. Embedded имхо требует знания наибольших знаний в области Computer Science

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

                > 2. Че прям React только для мелкой халтуры годится?

                Сам я с ним не сталкивался, но все что читал — говорит о том, что когда нужно что-то аппаратно или OS специфичное, то React уже не годен, и приходится писать все нативно. А React — да, больше для приложений типа «webview на весь экран»

                > Клиентские и серверные javascript фрэймворки еще только начали свой путь развития, и глядя на то что уже есть я думаю что кроме javascript уже ничего не надо изучать:)

                Существует очень много областей, где javascript/веб приложения — не применимы. Конечно если ваша цель — упростить себе жизнь, то конечно, стоит выбрать что проще, и только этим и заниматься :)

                > Интересно а ради чего пошли в профессию вы?

                Я пошел не в профессию. Я просто занялся тем, что нравилось, оказалось за это еще деньги платят и не малые.


      1. Nagg
        17.09.2016 21:33
        +8

        займет весомую часть в разработках серверного бакэнда

        Всегда вспоминаю:
        https://twitter.com/phillip_webb/status/758824415547109376



    1. lookid
      17.09.2016 21:50
      +11

      Потомучто ядро линукс 1 штука, джава 1 штука, какой-нибудь хибернейт 1 штука. И 100 плагинов для джейквери.


      1. Odrin
        19.09.2016 18:35
        +1

        Ну Вы еще скажите, что не тащите тонну Java библиотек в любом, более-менее большом, проекте.


    1. Throwable
      19.09.2016 19:06

      Если Вы заметите, в IT подобное часто бывает. Применительно практически к любым технологиям: всегда найдется более изящный, но менее аналог.



  1. A-Stahl
    17.09.2016 18:34
    +22

    Ну и что нам теперь с этим(и всеми остальными) рейтингом делать?
    Пользы я не вижу. Смеяться тоже не над чем. Расскажите, что хорошее можно извлечь из этого набора чисел?


    1. semenyakinVS
      17.09.2016 22:29
      +6

      Ну как же… А похоливарить на выходных? По-моему стоит вообще подобный блог на хабре сделать — «Холивар». Тогда стало бы ясно куда определять всякие посты вроде «Java vs C++ — кто самый мощный?» или «Самые популярные языки по версии оскоровского комитета». Желающие могли бы подписываться и отписываться. Все довольны.


    1. tema_sun
      17.09.2016 22:50
      +19

      Ну, например, теперь стало ясно, что цсс круче си-шарпа.


  1. xtala
    17.09.2016 18:40

    Еще не заходя в публикацию я знал, что на первом месте будет Javascript. Может оставить заявку на «Битву экстрасенсов»? Типа: «А, сейчас наши участники попытаются определить на каком языке написана эта всепожирающая память утилита для разгадывания гороскопов, что таинственным образом появилась на сайте vasyan.ucoz.ru! » :)


  1. Nagg
    17.09.2016 19:06
    +1

    Как-то уж сильно статистика гитхаба с Tiobe расходится по Си.


    1. svboobnov
      18.09.2016 16:53

      Гитхаб же считает пулл-запросы, а Тиобе — количество вопросов в поисковиках + количество вакансий ну, и что-то ещё.


    1. lohmatiyy
      20.09.2016 16:22

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


  1. nxrighthere
    17.09.2016 19:21
    +2

    Разве CSS уместен в этом рейтинге?


    1. Sirikid
      17.09.2016 19:43
      +2

      Очень старая шутка, CSS это "_формальный язык_ описания внешнего вида документа", поэтому он является языком программирования.


      1. SerafimArts
        19.09.2016 05:37

        А если взять препроцессоры (диалекты), вроде Sass, то там и до уровня shell не далеко =) Циклы, условия, переменные — всё есть.


      1. nolane
        20.09.2016 16:22

        Вас слова "формальный язык" ввели в заблуждение или что?


    1. zezic
      20.09.2016 16:20

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


  1. Terras
    17.09.2016 19:24
    +18

    Все очень просто:

    Бекенд для веба можно писать на: c#, java, python, ruby, php, js
    Фронт пишется исключительно на js

    Отсюда и получаем, что JS топ-1. Ибо это монополист во фронте сейчас.


    1. Infthi
      17.09.2016 22:38

      Не исключительно. У нас вот GWT например.


      1. sleeply4cat
        18.09.2016 12:08
        +2

        А расскажите, как у него со скоростью и вообще с нагрузкой на сервер?


    1. kryvichh
      20.09.2016 16:23

      Мир стал бы очень скучен, если весь фронтенд сводился бы только к Вебу. Да и есть другие языки, кроме перечисленных, на которых можно писать программы и с фронтендом, и с бэкендом, для Windows и Mac. Вот пример — FL Studio написанный полностью от «задницы» до «передницы» в Delphi: https://www.youtube.com/watch?v=c43Y-FMFDDQ


  1. kma21
    13.01.2017 18:22

    у моего отца как раз есть зарядка от одного из постояльцев этого форума (Алекс Сорока). отцу нравится, действительно позволяет некие АКБ реанимировать.


    1. PerlPower
      18.09.2016 04:28
      +7

      Он сидит в наших сердцах, причем весьма крепко.


    1. jakshi
      20.09.2016 16:22
      +1

      Верное замечание.

      Справедливости ради стоит сказать что язык программирования Pearl существует: https://en.wikipedia.org/wiki/PEARL_(programming_language)

      Но на становление Ruby никоим образом не повлиял.

      Когда зная Ruby я начал учить Perl — с удивлением обнаружил множество схожих концепций и даже конструкций в этих двух языках.


  1. TimsTims
    17.09.2016 20:06

    А как считали тех, кто пользуется сразу несколькими «языками»?

    Те, кто юзают PHP — часто пишут сайты целиком, в т.ч. фронтэндовую часть. Значит юзают также CSS, JS и HTML(о боже, где же он тут в рейтинге? неужели html теряет популярность?). Собственно вопрос — как посчитали таких людей?

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


    1. A-Stahl
      17.09.2016 20:16
      +1

      >А как считали тех
      Так считали не людей, а языки.


      1. TimsTims
        17.09.2016 21:39

        Ок. По количеству файлов измененных?


        1. Aivendil
          17.09.2016 22:55

          Во вступлении статьи.

          Конечно же, популярность определялась по количеству pull-запросов на GitHub за последний год.


    1. Areso
      18.09.2016 11:56
      +1

      Что самое интересное, несколько моих проектов Github'ом распознаются как HTML, хотя там HTML'a 10 строчек и несколько сотен строчек JS.


      1. easimonenko
        18.09.2016 19:50

        Аналогично, а markdown там вообще похоже не учитывается.


      1. DarkEld3r
        19.09.2016 11:13
        +1

        Вроде, можно на это повлиять: https://help.github.com/articles/my-repository-is-marked-as-the-wrong-language/ и дальше по ссылкам.


    1. bano-notit
      20.09.2016 16:20

      И действительно. Всё же мне кажется что можно было считать именно по людям. То есть, в каждом проекте несколько языков. Тот который больше, на том и написан проект. У человека много проектов, если большее количество по предыдущему правилу написаны на плюсах, то считать, что человек пишет больше всего на плюсах. И уже считать количество людей. Мне кажется, что так будет интересней и более точно. НО! Так теряется объективность за год, и мы не узнаем какой язык именно в этом году более интенсивно используется и так мы получается ещё считаем некропользователей.


  1. robert_ayrapetyan
    17.09.2016 20:23
    +8

    >Это язык, которому теперь пытаются найти замену
    Эээ… кто и зачем пытается найти замену С?


    1. VioletGiraffe
      18.09.2016 16:27
      -1

      Зачем? Например, затем, что на С крайне сложно писать надёжный и безопасный код. А делать это быстро так и вообще невозможно.
      Не хочу начинать холивар, но скажу, что откровенно не понимаю, кто и зачем использует язык С в 2016 году. Не считая legacy для какого-нибудь Z80, под который нет компилятора С++, конечно.


      1. semenyakinVS
        18.09.2016 18:45
        +2

        Как плюсовик скажу так… Подозреваю, что минимум для кросскомпиляторного кода. В С нет проблем с декорированием имён и прочими радостями статического и динамического связывания С++-библиотек. Насколько я знаю, по этой причине часто используется бриджинг через С интерфейсов middleware-библиотек.

        Помимо этого (в этом уже не так уверен) — под С намного проще делать компилятор и потому компиляторы под С по логике должны выходить раньше С++-компиляторов под всякие зверинцы новых микроконтроллеров. Поэтому С отгрызает часть сегмента Java и вполне себе ничего чувствует себя в этой области.

        Люди, пишущие на С, поправьте меня если где-то не прав.


        1. VioletGiraffe
          18.09.2016 19:18

          Вы имеете в виду возможность линковать вместе объектные файлы, собранные под одну платформу разными компиляторами?


          1. semenyakinVS
            18.09.2016 20:10

            Ага. Эту проблему наследуют статические библиотеки (что весьма логично). С динамическими библиотеками немного другая специфика. Классы ограниченно описываются в рамках ABI операционных систем, что требует осторожности при работе с ними. В рамках ABI, кажется (см. первую ссылку ниже почему «кажется»), стандартизировано представление таблицы виртуальных функций, за счёт чего можно взаимодействовать с DLL, собранными другим компилятором через абстрактные классы-интерфейсы, но это может влиять на производительность из-за виртуальности.

            Ссылки:
            1. Пространный пост по поводу ABI из блога Алёны С++ (ссылка).
            2. О vtalbe в одном из вариантов ABI (ссылка).

            В общем, есть некоторые проблемы.


          1. semenyakinVS
            18.09.2016 20:14

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


      1. gnemod
        18.09.2016 21:06
        -1

        Ну как минимум C более применим если у вас допустим 16к оперативной памяти и где-нибудь 32к для исполняемого кода, применять ассемблер это получить непереносимый код, применять C++ тогда забудьте об операторах new т.к. ваша оперативная память на вес золота и вам необходимо только ручное управление управление памятью, кроме того обычно компилятор C дает более компактный и быстрый код


        1. VioletGiraffe
          18.09.2016 21:07
          +1

          Идея понятна, хотя у меня не было проблемы писать на С++ с наследованием и виртуальными функциями под STM32 F1, там тоже памяти не мегабайты.


          1. gnemod
            18.09.2016 21:27

            Просто нужно учитывать больше факторов при кодинге на С++ под мелкие контроллеры, например:
            1. Фрагментация HEAP
            2. Применение объектов в условиях жесткого реалтайма, когда все ресурсы контроллера расписаны по наносекундам (те вызов new и delete)
            3. Контроль занимаемой памяти классами особенно с полиморфизмом и наследованием

            вообщем появляется много новых нюансов, но если железо не высокотиражное и его ресурсы заложены с запасом то конечно и С++ годится


      1. robert_ayrapetyan
        18.09.2016 22:06

        Ядра всех ОС, движки топ 5 популярных БД, самые высокопроизводительные веб-серверы, движки практически всего 3д-софта, бытовая техника, начинка любого современного автомобиля, NASA…
        Из этого следует, что на С писали (и пишут) самый надежный и безопасный код в мире.


        1. VioletGiraffe
          18.09.2016 22:24

          М-м… нет, не следует. Это всего лишь ваше предположение.


        1. Yuuri
          19.09.2016 01:54
          +1

          Пишут. Вопрос только, какой ценой, и сколько человекоэпох было отдано на отладку этих ядер и движков?
          В перечисленных вами задачах в первую очередь важны скорость и/или близость к железу, в чём С действительно идеален, но это практически противоречит надёжности. Факторы надёжности — это, например, проверки операций (прощай, скорость), строгие системы типов (прощайте, низкоуровневые оптимизации), строгие спецификации (прощай, бесплатная переносимость на любой утюг). Ну правда, как можно назвать эталоном надёжности слаботипизированный язык, у которого стандарт состоит из UB чуть менее, чем наполовину?


      1. Alexeyslav
        20.09.2016 11:32
        -1

        А кто и на чём будет писать низкоуровневые оптимизированные по быстродействию функции/библиотеки для высокоуровневых языков? Именно для этого и используется.


        1. VioletGiraffe
          20.09.2016 11:58
          +1

          На ограниченном подмножестве С++, например.


  1. Yuuri
    17.09.2016 20:31
    +16

    сочетает в себе надежность С++
    нервный смешок
    Java был разработан Джеймсом Гослингом в 1990 году в компании Sun Microsystems.
    Не знаю, кому верить, но Википедия говорит, что разработка только началась в 1991, а вышел на свет язык вообще в 1995.
    Особенность Java заключается в том, что это первый чисто объектно-ориентированный язык программирования.
    А это уже совсем неправда. Во-первых, Java не совсем чиста – как минимум, в ней есть примитивные типы, которые не являются объектами. Во-вторых, гораздо более расово чистый в этом отношении Smalltalk был уже в 80-х.


    1. BalinTomsk
      18.09.2016 14:54
      -8

      Yuuri сочетает в себе надежность С++

      — нервный смешок

      на каких языках написаны 99% ОС и прикладноашем компэте ПО на вашем компютере? Это и будет ответом на ваш смешок


      1. Arenim
        18.09.2016 15:19
        +5

        1. VioletGiraffe
          18.09.2016 16:38

          ИМХО только потому, что во время написания тех ОС С++ ещё не был достаточно развит и допилен.


          1. codemax
            20.09.2016 16:22

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


            1. VioletGiraffe
              20.09.2016 16:29
              +1

              Вы считаете, что не случилось, а я считаю, что с 2003 года язык полностью юзабелен, а с 2011 — прекрасен. На С++ 11 за вечер пишутся вещи, которые на С++03 я вообще не взялся бы писать.


              1. Arenim
                25.09.2016 00:05

                интересно. А можно пример вещи, которая «пишется за вечер на с++11 и не пишется на с++03»?


                1. VioletGiraffe
                  25.09.2016 00:24

                  1. Всё, где нужны лямбды и std::function.
                  2. Многопоточность. Здесь важен не столько класс std::thread, как те же самые лямбды и function.


                  1. Arenim
                    25.09.2016 01:00

                    гм. Вы сейчас сказали «лямбды — это круто». Никто собственно и не спорит, но примера-то и нету, так как «все, где нужны...» — не пример, как и слишком абстрактное «многопоточность» тож.


                    1. VioletGiraffe
                      25.09.2016 09:38

                      Лямбды — это не просто круто. Они позволяют делать то, что без них неоправданно сложно и в написании, и в применении.
                      Сигналы / слоты.
                      Пул потоков.
                      Блокирующая очередь, через которую N потоков последовательно сцепляются в конвейер.

                      См. Threading https://github.com/VioletGiraffe/cpputils


  1. Alexey2005
    17.09.2016 20:32
    +1

    Удивительно, что Python настолько популярен. Трудно вообще найти такую нишу, в которой он был бы лучшим. Чтоб можно было сказать: да, вот эти вот задачи эффективнее всего делать на Python, другие языки заставят провозиться дольше и потратить больше ресурсов.
    Практически всегда критерий его выбора субъективен, в стиле «конечно, на %language_name% было бы быстрее и проще, но я его не знаю, да и синтаксис очень не нравится».


    1. keydon2
      17.09.2016 20:40

      Затраты на обучение тоже затраты.
      Питон не знаю.


    1. Vlad_IT
      17.09.2016 20:55
      +2

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


    1. MikeLP
      17.09.2016 21:02
      +6

      Ну давайте, расскажите чем Python хуже PHP.
      Поверьте, звучать это будет одинаково:

      Удивительно, что PHP настолько популярен. Трудно вообще найти такую нишу, в которой он был бы лучшим. Чтоб можно было сказать: да, вот эти вот задачи эффективнее всего делать на PHP, другие языки заставят провозиться дольше и потратить больше ресурсов.


      или

      Удивительно, что Ruby настолько популярен. Трудно вообще найти такую нишу, в которой он был бы лучшим. Чтоб можно было сказать: да, вот эти вот задачи эффективнее всего делать на Ruby, другие языки заставят провозиться дольше и потратить больше ресурсов.


      и так далее…


    1. robert_ayrapetyan
      17.09.2016 21:05
      +4

      Python доминирует в нише бекенда и сервисов, где не требуется высокая производительность, поэтому его можно поставить в ряд с Ruby, PHP и JavaScript (SS). Любая попытка выбрать лучший из этих языков закончится «сравнением оппонента с Гитлером».

      Я выбрал Python для себя потому, что он позволяет решать бизнес задачи, не думая ни о чем, кроме бизнес-логики, его синтаксис «чище» чем у вышеозначеных конкурентов, меньше всякой мишуры. В совокупности со знаниями C\C++ это позволяет реализовать систему\архитектуру любой сложности в короткие сроки и под любые нужды. Можно заменить слово Python на Ruby\PHP\JS(SS), но я выбрал именно Python, просто вот с первого знакомства, ни разу не возникло желания возвращаться на PHP\JS или пробовать Ruby. И да, «конечно, на %language_name% было бы быстрее и проще» — это не про Python точно.


    1. ShashkovS
      17.09.2016 21:10
      +2

      Ну, ок. Давайте спорить приводить примеры. Может быть, я просто сильно не в теме.
      Всё примеры моих реальных задач, которые я решаю питоном (но не стал бы даже браться за них, скажем, на плюсах).

      Задача 1. есть html с задачами (оформленными единообразно) и excel-файл с их сложностями. Нужно добавить сложности в html (типа «Задача 13.7» -> «Задача 13.7 [***]»);

      Задача 2. прочитать данные из гугль-таблички, после чего разослать e-mail'ы в зависимости от данных там;

      Задача 3. Есть TeX-файл с условиями задач. Сконвертировать его в html, используемые картинки сконверировать в png, разложить по папкам, залить по FTP на сайт;

      Задача 4. Есть excel с таблицей-плюсником (пустой). Есть отсканированный лист. Распознать плюсы и внести назад в excel;

      Задача 5. Есть старая программа, работающая под DOS. Она генерит крупные отчёты достаточно сложного формата (руками делать заново сложно). Нужно сгенерить всевозможные отчёты, эмулируя действия пользователя;

      Задача 6. Нужно пройти по пачке страниц в интернете и вытащить из них некую информацию.


      1. mezastel
        18.09.2016 00:32
        +3

        На плюсах проблема с либами и их юзабельностью. А вот на C# все вышеописанные задачи решаются. Ну разве что распознать, но для этого и в Питоне нужна сторонняя либа.


      1. lagranzh
        18.09.2016 04:13
        +2

        перл же


        1. equand
          19.09.2016 14:14
          +1

          Зато пять лет спустя глядя на Ваш перл-скрипт Вы уйдете в запой… А питоновый скрипт написать для запоя надо умудриться.


      1. sleeply4cat
        18.09.2016 12:11

        А как решается №5? Остальные, в принципе, на чём угодно можно, хоть на джаве.


        1. maxim_0_o
          18.09.2016 20:26

          Решить-то их можно на чем угодно. Вопрос в количестве потраченного времени и в объеме кода. И что-то мне подсказывает, что Java и C# уступят по этим критериям питону для этих задач. Тут следует обратить внимание, что в приведенных задачах не требуется слишком высокая производительность, что и служит знаком к использованию питона.


    1. Dark_Daiver
      18.09.2016 07:42
      +1

      Как минимум быстрое прототипирование в области scientific computing/machine learning/data mining, благо есть целая прорва либ (scipy/sympy/sklearn/pandas/theano/tensorflow/xgboost/opencv/etc) которые так или иначе увязанны вместе при помощи NumPy


  1. m1ld
    17.09.2016 20:59
    +2

    Не совсем в тему, но на опубликованной странице также есть рейтинг самых популярных репозиториев. Нашел для себя кладезь знаний https://github.com/open-source-society/computer-science.


  1. TWayne
    17.09.2016 21:03

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


  1. lenar
    17.09.2016 21:11
    +2

    Автор не в курсе, что JS — это уже далеко не только фронтендовый язык?


  1. Trueteller
    17.09.2016 21:21
    +3

    Характеристики языков — огонь.
    Многие тезисы как минимум спорны, стилистика описания разных языков сильно различается, да и еще и пунктуация хромает.

    JavaScript, C# и Go показали двойной рост аудитории. А аудитория Swift и TypeScript выросла в 3,5 раза

    Это в сравнении с каким периодом? Как мог C# вырасти в 2 раза за последний год-два?


    1. zapolnoch
      17.09.2016 21:39
      +3

      Может за счет Xamarin?


    1. Antelle
      17.09.2016 21:41
      +3

      Microsoft же пилят кроссплатформенный C# последний год-два, конечно % растёт.


      1. m1ld
        17.09.2016 21:57

        Если вы об этом https://blogs.msdn.microsoft.com/dotnet/2016/04/01/net-at-build-2016-open-cross-platform-and-free/? То меня дата публикации как-то настораживает.


        1. Antelle
          17.09.2016 22:09
          +2

          Xamarin ещё. Вцелом C# становится приятнее на разных платформах, наверное поэтому его больше появляется на github. Напомню, что статистика именно по коду на гитхабе, а не вообще о языке.


      1. Trueteller
        17.09.2016 22:20
        +1

        Да, скорее всего это именно за счет кода, выложенного самим Microsoft на github. Ну и того толчка, что это дало C# open source.


        1. Antelle
          17.09.2016 22:26
          +1

          Ага. Если посмотреть в тренды по C#: powershell, roslyn, kestrel, .net core, bot builder — появились и сами проекты, и всякое разное для них, ms стали активно работать с продивжением языка в open source (что не может не радовать).


    1. KirillFormado
      20.09.2016 16:24

      На вскидку еще могут быть open-source игры на Unity ну и моды для игр. Из того что знаю, много модов для Kerbal Space Program лежит на github-e


  1. VaalKIA
    17.09.2016 21:52
    +1

    А нет метрики: «количество новых проектов» на каком-то языке? Мне кажется, именно это было бы достоверным показателем популярности.


  1. shalaev
    17.09.2016 21:57

    некоторые весьма известные и надежные сайты работают на python, особенно pinterest.com, instagram.com и rdio.com
    последний — особенно надежный


  1. VGrabko
    18.09.2016 00:00
    +4

    У Go нет интерпретатора. go run просто компилирует во временную деректорию и запускает готовый бинарник


  1. asvechkar
    18.09.2016 00:29

    Небольшое дополнение к п.6 о создателе языка C++: https://geektimes.ru/post/77210/


  1. Error1024
    18.09.2016 00:33
    +10

    В статье куча странных мест:

    Кроме того, некоторые современные игры и операционные системы были разработаны на С++ из-за быстрого процессинга и компиляции.

    Это у C++ компиляция быстрая???

    Язык С# позволяет разрабатывать практически любые приложения, которые связаны с Visual Studio IDE.

    Эээ, это вообще про что?

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

    Есть куча таких сайтов.


    1. sugadu
      20.09.2016 16:21

      Есть куча таких сайтов.

      Дайте, пожалуйста, ссылки на самые популярные, интересно глянуть.


  1. rie
    18.09.2016 02:41
    -7

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


    Люди пишут полнейший говнокод выдавая это за ИННОВАЦИЮ и НОВЫЕ ПАРАДИГМЫ, каждый день делая ЕЩЕ ОДНУ ПРИНЦИПИАЛЬНО НУВУЮ либу для веба, и пользуются в своих проектах таким же говном.


    Вся суть.


    1. ankh1989
      18.09.2016 11:34

      Насчёт мыльного пузыря не знаю, но "твориться" пишется без "ь".


    1. spyderDFX
      20.09.2016 09:10

      Руби.

      P.S. Haters gonna hate


  1. DevMan
    18.09.2016 13:10
    +8

    Он был создан для iPhone-приложений
    Ruby — простой и читаемый язык программирования, ориентированный на разработку веб приложений
    фреймворк Ruby использовался для разработки Github, Scribd, Yammer, Shopify и Groupon
    Особенность Java заключается в том, что это первый чисто объектно-ориентированный язык программирования
    и множество других перлов.

    image


    1. tmn4jq
      18.09.2016 18:14
      +2

      Pearl'ов

      Ruby сочетает в себе некоторые возможности Lisp, Pearl и Eiffel


  1. loz
    20.09.2016 01:57

    >Особенность Java заключается в том, что это первый чисто объектно-ориентированный язык программирования

    Ахаха, спасибо, понравилось описание языков. Захожу на хабр и сразу вспоминаю почему я сюда не захожу)


  1. thims
    20.09.2016 16:20
    +1

    Язык С# позволяет разрабатывать практически любые приложения, которые связаны с Visual Studio IDE.

    Это как понимать??