На Stack Overflow Jobs каждый может опубликовать собственную Developer Story, чтобы поделиться достижениями и поспособствовать карьерному росту. При публикации можно добавить к статье теги, соответствующие языкам и технологиям, с которыми вы бы хотели работать и с которыми бы не хотели:



Это даёт нам возможность изучить мнения сотен тысяч разработчиков. Есть много способов измерить популярность языка. Например, мы часто использовали для изучения трендов статистику визитов на Stack Overflow или просмотров вопросов. Но данные о тегах — уникальная возможность посмотреть, что людям не нравится, когда у них есть возможность сказать об этом в резюме.

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

Языки программирования


В качестве меры измерения посмотрим, как соотносится во всех резюме доля тегов Dislike по сравнению с тегами Like для каждого конкретного языка. То есть 50% означает, что тег не нравится в точности так же часто, как и нравится, в то время как 1% означает, на каждые 99 человек, кто поставил лайк, нашёлся один с отрицательной оценкой. (Для оценки средних значений мы применяли эмпирический метод Байеса, который я описывал в этой статье, а он рассчитывает доверительный интервал с уровнем доверия 95%).

Для начала посмотрим на список языков программирования (в отличие от платформ вроде Android или библиотек типа jQuery), у которых минимум 2000 упоминаний в Developer Stories.



В списке самых нелюбимых языков с большим отрывом лидируют Perl, Delphi и VBA. За ними следуют PHP, Objective-C, Coffeescript и Ruby. Наши разработчики были особенно рады видеть, что R — самый любимый язык программирования по соотношению лайков и дислайков.

Если вы читали какие-то из наших статей по росту и падению популярности конкретных языков, то могли обратить внимание, что наименьшее количество дислайков обычно сопутствует языкам, чья популярность быстро растёт, таким как R, Python, Typescript, Go и Rust (мы отдельно исследовали Python и R) и все они относятся к числу языков с наиболее единодушными оценками. Точно так же многие из языков с большой долей дислайков — Perl, Objective-C и Ruby — одновременно ранее были замечены среди языков, у которых количество тегов на сайте быстрее всего снижается.

Это можно проверить, сравнив размер и рост для каждого языка с процентом тех, кто ставит ему дислайк. На теплокарте оранжевый цвет соответствует языкам с наибольшим количеством дислайков. Чтобы наш анализ был совместим с последними несколькими статьями, ограничим статистику только странами с высоким доходом (такие как США, Великобритания, Германия и Канада), где популярность языков немного отличается от стран с низким доходом.



Обычно есть взаимосвязь между ростом популярности тега и долей дислайков для него. Почти все языки, если они не нравятся более чем 3% пользователям, одновременно демонстрируют снижение по трафику Stack Overflow (кроме сильно противоречивого VBA, который стабилен или слегка растёт). А все языки с самой большой долей положительных тегов — R, Rust, Typescript и Kotlin — одновременно принадлежат к числу самых быстрорастущих тегов (Typescript и Kotlin растут так быстро, что не поместились на диаграмму).

Из общей тенденции выбивается функциональный язык Clojure; почти никто не выражает к нему неприятие, но он находится среди наиболее быстро падающих по трафику (падение по количеству визитов на сайте с вопросами началось примерно в последний год). Ещё одно исключение — MATLAB, популярность которого тоже снижается, хотя никто не ставит ему дислайки. Это может указывать на ограничение данных для измерения настроений: хотя у любого веб-разработчика может быть мнение о PHP, C# или Ruby, но у людей вне сферы анализа данных нет причины выражать мнение насчёт MATLAB. (Вероятно, это тоже может быть причиной, почему R так редко получает дислайки).

Мы не обязательно предполагаем наличие причинно-следственной связи, когда нелюбовь части программистов к некоторым языкам ведёт к снижению популярности этих языков. Есть и другая вероятность: людям комфортнее ставить дислайк и проявлять нежелание работать с языком, которая уже теряет популярность. Возможно, проявляют такое нежелание люди, которые раньше писали на этом языке, но больше не хотят. То есть происходит естественный процесс, когда «заменённые» технологии попадают в поле Dislike в резюме.

Самые любимые и нелюбимые теги


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



Среди лидеров несколько технологий Microsoft, в частности, Internet Explorer и Visual Basic, а также общий тег “Microsoft” (“Apple” тоже попала в список, хотя её не так катастрофически ненавидят). У нас хорошие новости для большинства из тех, кто проявил неприятие работе с Flash. Более старые языки, такие как COBOL, Fortran и Pascal, тоже попали в список.

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

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



Git может стать головной болью для многих разработчиков (как определённо он является для меня!), но люди редко признают это в своих резюме, и это один из самых однозначно лайкнутых тегов в наших Developer Stories. В список попал R, но здесь это не единственный тег из сферы data science. Машинное обучение получило одобрение 23 тыс. человек и очень редко попадало в категорию неодобряемых технологий. Теги вроде Python-3.X, CSS3 и HTML5 могут указывать на то, что разработчики редко указывают свою нелюбовь к конкретной версии технологии (даже если указывают). И конечно, jQuery популярен как всегда на Stack Overflow.

Сеть с полярными тегами


Мы можем поместить эти теги на одной картинке, объединив их в сеть. В недавней статье Юлия Силге показала, как построить сеть технологий, которая представляет всю индустрию программного обеспечения. Если обозначить цветом уровень нелюбви к каждой технологии, то можно определить, какие части экосистемы вызывают больше противоречий, чем другие.



Если наложить теги на области экосистемы, то эта сеть показывает, какие типы тегов склонны к противоречиям. Есть кластеры таких тегов, связанных с Microsoft (с ядрами вокруг C# и .NET), PHP (вместе с WordPress и Drupal) и мобильной разработкой (в частности, Objective-C). Внизу кластера операционных систем (справа внизу) можно увидеть, что у систем вроде OS X, а особенно Windows есть недоброжелатели, а у Linux, Ubuntu и Unix нет.

Конкуренты


Если кто-то любит определённый тег, существуют ли другие теги, которому он с большей вероятностью выразит нелюбовь?

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



Так выявляются некоторые «конкуренты в софтверной экосистеме: Linux и OS X против Windows, Git против SVN, vim против emacs и (к моему удивлению) R против SAS. По большей мере эти пары представляют собой не «противоположные» технологии, а разные подходы к решению одних и тех же проблем. Многие из них указывают на переход от популярной в прошлом технологии к более современной (Git заменяет SVN, JSON заменяет XML, C# заменяет VB). Это имеет смысл в том смысле, как люди составляют резюме; для разработчиков типично указывать, что они не хотят работать с чем-то, что считают устаревшим.

Вывод


Мне не интересно участвовать в каких то «войнах языков программирования» и я не сужу пользователей, которые указывают, с какими технологиями не желают работать. Большая поляризация мнений о технологиях Microsoft часто подталкивает меня поделиться личным опытом. Я всю жизнь работал на Mac и UNIX и почти весь опыт программирования в университете и аспирантуре был на Python и R. Несмотря на это, я с удовольствием присоединился к компании со стеком .NET, и рад, что сделал это — потому что мне нравились и коллеги, и продукт, и данные. Не могу сказать за других, но лично я рад, что определился в том, какую работу мне интересно делать, а не в том, чего хотел бы избежать.

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


  1. Headmaster11
    02.11.2017 12:16

    Тоже не хочу разводить холивары, но чем людям так Ruby не нравится? Может кто-нибудь пояснить?


    1. stepmex
      02.11.2017 12:44
      +2

      Я думаю тут уместна цитат: «Существует два типа языков программирования: те которые все обсирают, и те на которых никто не пишет».


      1. mediaman
        02.11.2017 13:09

        выше вон появился пост с позитивными трендами


      1. Ilya81
        03.11.2017 13:25
        -1

        Вторые (с некоторым преувеличением) — это вероятно какие-нибудь Erlang или Clojure? В целом вещи часто очень хорошие, но для 99% задач этого мало — нужны типовые toolkit'ы, нужна среда разработки, средства сборки и ещё много чего. Такие, как я их называю, экспериментальные языки программирования, чаще всего хотя б по одному из таких пунктов очень слабы.

        И немножко поподражаю root'овому сообщению ветки — а чем людям так Objective-C не нравится — по мне один из лучших языков программирования, особенно по мне он очень хорошо сохранился с такой ношей обратной совместимости.


    1. printercu
      02.11.2017 13:10

      Может быть разработчики PHP и Ruby дизлайкают друг-друга?)


      Почитать бы эти developer stories, но они, видимо, видны только автору или работодателям.


      1. Levhav
        03.11.2017 01:55

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


    1. acmnu
      02.11.2017 13:21

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


      1. printercu
        02.11.2017 13:49

        Например, "все есть объект" без исключений, в отличии от других ОО-языков. Модель наследования очень гибкая (самая гибкая?). Развитые возможности метапрограммирования. Но это все не оценят люди, знакомые с языком поверхностно.


        Мог бы предположить, что дизлайкают за отсутствие статической типизации и проверки типов, но по результатам всем нравятся JS и Python. И bash :) Сейчас только обратил внимание.


        Вообще, в предыдущих исследованиях SO вроде показали, что большая часть (с отрывом) аудитории — разработчики JS и SQL :) Так что столько дизлайков в сторону бэкенд языков, ничего могут и не значить кроме того, что они просто кому-то не нравятся в интернете.


        1. VolCh
          02.11.2017 23:06

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


          1. printercu
            03.11.2017 11:59

            Если плохо пользоваться шаблонами с++, можно столкнуться с бОльшими трудностями. Метапрограммирование в том или ином виде есть в большинстве языков с меньшим количеством негативных оценок. В руби, благодаря модели наследования, можно получить гораздо более предсказуемое и отлаживаемое поведение. А из-за гибкого синтаксиса, самые разные DSL можно реализовать без библиотек, только с использованием языка.


            1. Antervis
              03.11.2017 12:46

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


              1. printercu
                03.11.2017 16:02

                Я не пытаюсь сравнивать с с++, это просто пример, где метапрограммирование еще больше "уменьшает предсказуемость поведения просматриваемого в данный момент кода".


      1. Ilya81
        03.11.2017 13:46

        Сейчас это хочется сказать про C#. Конечно, в плане лямбд и LINQ он не 100%-й первопроходец, но значительной степенью с него началось их массовое использование, а ещё и как задел на будущее для абстракций рекурсий. 6 лет назад анонсировали async/await — тогда казалось круто, а нынче относительно ReactiveCocoa, — какой убожество. А позднейшие spoonful of syntactics sugar не сильно могут «подсластить» сие отставание.


        1. SZolotov
          03.11.2017 16:30

          Открыл первую попавшуюся статью, а там:

          Для .NET разработчиков все это может показаться очень знакомым. ReactiveCocoa, на самом деле, Objective-C версия Reactive Extensions (Rx) для .NET.

          Так вот, на шарпе вся эта реактивщина лет 8 точно. Отставание? Не, не слышал…


    1. Angrynik
      02.11.2017 13:33

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


    1. barkalov
      02.11.2017 13:36

      Рискну опять нахватать минусов, но поделюсь своим опытом:

      Последний ruby-разработчик, который нанимал меня на проект (я front-end разраб), сказал: «мы клиентский javascript пишем на coffee или на ES5, не хочу усложнять и добавлять в стек babel — он тормозит». Я подумал-подумал, и отказался.

      Ну это так, частный случай. А вот общее наблюдение, которое случалось не один раз: проблема руби в том, что в руби всё идеально и «по линейке»! Но только до тех пор, пока ты в уютных рамках рельс. А «внешний мир» — он совсем не такой безоблачный, и мне, как frontend-разработчику бывало очень сложно донести это руби-команде. Взять тот же snake_case, который чужд и в js, и в разметке, и в стилях. В ангуляре очень «здорово» такие поля_объектов иметь. И пробуй объясни, что это jbuilder должен отдавать вражеский camelCase. С названиями файлов та же ситуация.

      Или вот, отсутствие фигурных скобок и табы — крутая идея. Только она не всегда хорошо работает. В sass есть проблемы с разбиением длинных строк. И порой, под возмущенные возгласы, приходилось коммитить старый добрый scss (точнее, новый добрый — потому что во всём остальном мире, кроме руби-сообщества, именно scss — стандарт!).

      Кроме того, веб стремительно меняется — в ходу clientside MV* (angular, vue, polymer, etc), что конфликтует с изначальной идеей рельсового server-side MVC, и делает некоторую часть rails-boilerplate всё менее полезной. Например, хелпер-функции для пагинации, humanize, i18n — какой от них толк в динамическом ангуляре? Представьте, если они уже написаны и используются — у вас уйдет немало сил, чтобы убедить backend-команду, что это всё теперь нужно выбросить.

      Но, надо отдать должное, руби (рельсы) — очень крутая экосистема. Сижу сейчас на Sequelize ORM (на node.js) и с большой тоской вспоминаю activerecord — тут рельсы вне конкуренции.


      1. printercu
        02.11.2017 13:58

        Правильные бэкенд разработчики будут рады выбросить humanize, i18n и что-бы фронтендеры сами с локализацией развлекались.


        Про sass-scss тоже обобщение. Во всех проектах, где учавствовал, только scss использовали, про sass даже не обсуждали.


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


        1. barkalov
          02.11.2017 14:30

          Ну, как сказать. Мне кажется, snake_case, как и блоки без фигурных скобок (.rb, .yaml .haml, .sass) — у руби в крови. И именно потому, что это там настолько хорошо и естественно работает — любая попытка нарушить правила воспринимается как вредительство.


          1. printercu
            02.11.2017 15:23

            Sass, yaml, haml и coffee вдохновлены python'ом. В спецификации yaml так и сказано: YAML's indentation based block scoping is similar to Python's .... А то, что они реализованы впервые были на руби, говорит о другом.


      1. divanikus
        02.11.2017 15:05
        +1

        Я не веб-разработчик и использую в основном чистый ruby для шелл-скриптинга и chef/puppet. И знаете, нравится гораздо больше чем все остальное, чем python или bash. Гораздо удобнее, писать легко и лаконично что ли. Единственное что в нем не очень — скорость. Парсер данных, например для json-файла размером в гигов 20, на нем написать конечно легко и просто, но работает он раза в два (субъективно) медленнее чем тоже самое на Perl. Правда на Perl писать немного сложнее. Зато всякие cli утилиты на Ruby пишутся просто влёт, спасибо Rake, Thor и иже с ними.


        1. Dessloch
          02.11.2017 16:30

          Не пробовали Ruby-скрипты компилировать Crystal-lang'ом?


          1. divanikus
            02.11.2017 21:51

            Пробовал. С нахрапу не получилось. Все-таки Crystal не 100% ruby-совместимый, а только лишь inspired by.


      1. Kroid
        02.11.2017 18:09

        И пробуй объясни, что это jbuilder должен отдавать вражеский camelCase.
        А кто мешает на фронте превращать при получении ответа все snake_case в camelCase, а при отправке запроса — camelCase в snake_case? Браузер, андроид, айос, виндовс фон, какие-то внешние системы — и каждый будет еще указывать беку, какой стайл-гайд для названий ему использовать.


        1. barkalov
          02.11.2017 19:00

          Никто не мешает, просто jbuilder endpoint — он один и всегда в определенном месте, а entrypoint'ов в ангуляре — много (и они могут быть где угодно). Как-то из соображений естественности хочется, что водораздел был минимальной длинны, т.е. проходил по jbuilder'у.

          Наличие того же ангуляра в стеке подразумевает, что куча кода написана именно на js-фронте. Почему бы API не быть в таком случае ангуляр-френдли.


          1. Kroid
            04.11.2017 00:59

            Это типа шутка такая? В ангуляре есть интерcепторы, через них подобные штуки и делаются: обработка параметров перед отправкой запроса и после получения, обновление индикатора загрузки и тд. В итоге всего в двух местах нужно код написать. А в том же jbuilder, раз уж его упомянули — нужно в каждом описывать поля. Или, если с импортом jbuilder'ов друг в друга — то в одном на каждую сущность :)


            1. barkalov
              05.11.2017 10:21

              Я интерсепторы не использовал (за намётку — спасибо), яжjsпрограммист — просто врапнул методы сервиса $http в свои.
              Но как быть с полями форм? Ванильный сабмит ведь пойдет мимо интерсептора. Или нет?

              Я в своём первом комментарии как раз об этом и говорил:

              Другие стеки:
              — Парни, нужен camelCase в json.
              — Сильно нужен?
              — Очень.
              — Ок.

              Rails:
              — Парни, нужен camelCase в json.
              — Это типа шутка такая?


              1. Kroid
                05.11.2017 19:12

                Про шутку я писал в ответ на "а entrypoint'ов в ангуляре — много", а не на "нужен camelCase в json". Это почти самое первое, до чего доходит любой программист — повторяющийся код вынести и вызывать его по мере надобности, а не повторять его, как индус, которому платят за количество строк.

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


    1. lightman
      03.11.2017 09:08

      Лично я заочно не люблю Ruby (когда в глаза его не видел и не писал на нём) за что он отбирает фокус внимания разработчиков от моего любимого Python и способствует размыванию усилий сообщества, что опять же лично я считаю одним из главных зол в IT индустрии. Один язык, одна платформа, одна нация, один фюрер.


      1. printercu
        03.11.2017 10:27

        Такими я представляю себе значимую часть их developer stories :)


    1. OnYourLips
      03.11.2017 10:36

      Типизация и огромное количество магии.
      Например, повсеместно используется изменение класса (не объекта) в рантайме, добавление и изменение методов.
      По тем же причинам, просто менее выраженным, многие не любят питон.

      Замечу, что это одновременно и плюс и минус, всё зависит от проекта.
      Если мне надо что-то «на коленке» сделать, то я возьму руби. Но для проекта побольше обязательно выберу другой язык со статической типизацией.


      1. printercu
        03.11.2017 11:38

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


    1. psFitz
      03.11.2017 12:20

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


      1. Terras
        03.11.2017 13:06

        да фиг его знает.

        Чем живет PHP — понятно. Самый очевидный выбор, много готовых CMS, много фреймов, много готовых решений для малого и среднего коммерса. Это никуда не уйдет.

        Чем живет Python — понятно. Один из самых простых языков для изучения, язык общего назначения, тестирование, devops, веб, дата-анализ. Мб. в каждом из направлений не так много людей, но в куче набегает порядком.

        Ruby — Да у него прикольная парадигма разработки, и весьма удобный веб-фреймворк. Но какого-то очевидного преимущества над Php/Python — он не имеет. Поэтому и видим тенденцию, что после хайпа, он начал сходить на нет.


    1. calg0n
      03.11.2017 17:05
      -1

      Да просто руби такое авно как и похапэ.
      image


  1. Terras
    02.11.2017 13:49
    +1

    По статье сразу видно, что автор писал на python/R =)


    1. domix32
      02.11.2017 14:31

      Просветите неосведомленного куда смотреть


      1. Singaporian
        02.11.2017 22:23

        на статью :-)


      1. Terras
        03.11.2017 02:30
        +1

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


        1. domix32
          03.11.2017 02:39

          А я думал это про какой-то особенный авторский стиль.


  1. aquamakc
    02.11.2017 14:22

    Я вообще тащусь с подобных тем. Не непосредственно с данного поста, а вообще с холиваров «нравится/не нравится язык программирования». Ниразу не видел спора на тему «мне молоток нравится больше, чем микроскоп». Особенно, если учесть, что одним и тем-же разработчиком порой в одном и том-же проекте приходится пользоваться и тем и другим.


    1. domix32
      02.11.2017 14:32

      Одно дело когда ты выбираешь, что ты ХОЧЕШЬ использовать, и другое, когда ПРИХОДИТСЯ пользоваться.


    1. F0iL
      02.11.2017 14:41

      Учитывая, что многие языки имеют сильно пересекающуюся сферу использования (например C# и Java в плане для энтерпрайзного бэкенда, C# и Delphi для разработки под win-десктоп, C++ и Rust для системного программирования и высокопроизводительного кода, либо вообще живут на базе одной платформы и библиотек, как Java/Scala/Kotlin/Groovy), то это больше похоже на спор «молоток из Икеи лучше молотка из Леруа Мерлен» :)


      1. aquamakc
        02.11.2017 14:49

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


  1. heleo
    02.11.2017 14:40

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

    А вот сеть с полярными тегами очень занимательная вышла.


  1. olku
    02.11.2017 15:02

    Любопытно, что backend хейтит frontend больше чем frontend — backend


    1. Aquahawk
      02.11.2017 15:08

      а перл хейтят все


    1. Free_ze
      02.11.2017 15:16

      Это логично, ибо фронтовые запросы количественно лидируют.


    1. VolCh
      02.11.2017 23:35

      Бэкендерам чаще приходится возиться с фронтом, чем наоборот.


  1. Ivan22
    02.11.2017 15:39

    и (к моему удивлению) R против SAS

    че там удивляться. SAS махровый мамонт из 70-х, все кто на нем пишут, не любят все новое, типа R. Ну и алаверды.
    p.s. Это я вам сам как мамонт знающий SAS говорю.


  1. Viacheslav01
    02.11.2017 18:21

    Просто хипстерам пригорает, вот они и прут дизлайкать старичков. А тем кто пишет рабочие продукты на старичках, не досух ходить дизлайкать хипстерские языки.
    Ну а сравнение в одном ряду (выше): C# vs Delphi и C++ vs Rust только подтверждает это.


    1. F0iL
      02.11.2017 18:53

      Не вижу причины для пригорания у «хипстеров» (что за глупость вообще их так называть?), вот честно, новые инструменты часто действительно улучшают процесс разработки и ее результат, как самый простой пример: C++ до стандарта 11 года и после (особенно с core guidelines) отличается очень сильно сам от себя (осталось дождаться появления концептов, модулей, ranges и корутин), и реально, распробовав все современные прелести, копание в легаси-коде, написанном десяток лет назад вызывает большую тоску (благо, есть возможность постепенно переписывать и рефакторить), на Go отлично пишутся утилитки и мелкие сервисы, Rust многообещающ и несет в себе отличные идеи, и т.д.
      Языки выше в один ряд я поставил только по сферам их применения, а вовсе не по «равноценности» или «равноприятности».


      1. ls18
        03.11.2017 08:07

        Обновления языка != миллионам различных frontend фреймворкам. Сравнение не корректно.


        1. F0iL
          03.11.2017 11:56

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


        1. Slowz
          03.11.2017 12:40

          Извините, а где вы в комментарии увидели frontend-фреймворки?


    1. Antervis
      02.11.2017 21:33
      +1

      Дело в разном «профиле» использования тех или иных яп. Большинство программирующих на каком-нибудь delphi в основном занимаются поддержкой старых проектов и приятного в этом мало. Новые языки (скажем, rust/go) всегда привлекали оптимистичных энтузиастов. Однако молодые инфраструктуры этих языков ставят под сомнение коммерческую выгоду их использования в новых крупных проектах: специалисты на них в среднем менее опытные, дорогие и меньше представлены на рынке.


      1. broken
        03.11.2017 10:32

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


        1. Antervis
          03.11.2017 10:42

          судя по Salary and Experience by Language (2017) rust/go/clojure предлагают самое высокое соотношение зп/стаж. А вот с точки зрения работодателя выгоднее яп с самым низким соотношением.


          1. broken
            03.11.2017 11:03

            Самое высокое — самое высокое. А я говорю о количестве спроса. Пусть там 1-2 компании платят хоть миллиард. А надо, чтобы платили много и вакансий было много. Хоть это и не очевидно, но я именно это имел ввиду. На hh сложно найти вакансии на Rust, например. Даже так, именно по Rust вообще ни одной не видел за прошедший год, было лишь «если у вас опыт на rust/go/scala, это очень большой плюс», а вакансия в итоге все равно какая-нибудь плюсовая. В итоге имеем вакансии только на плюсах, поэтому и изучать смысла особо пока rust нет, если хочешь его применять именно при устройстве на работу. А если уже работаешь и разрешается че-нить такое делать, то люди и в исследовательских целях и в реально нужных используют rust, и много кто так уже делает даже в россии (из крутых — касперский, яндекс, mail.ru — это точно).


            1. Whuthering
              03.11.2017 12:35

              было лишь «если у вас опыт на rust/go/scala, это очень большой плюс»

              это обычно означает «у нас большой проект преимущественно на плюсах, но некоторые его части мы уже делаем на rust/go, подходит отлично, нам нравится, и мы собираемся дальше двигаться в этом направлении, правда, нормального разработчика на rust/go найти сложно, поэтому мы возьмем плюсиста и сами научим его чему надо».


              1. broken
                03.11.2017 12:55

                Кто знает. Лично я на конференциях по Rust не видел, чтобы об этом кто-либо говорил так, как вы сейчас. Говорили лишь, что мелкие проектики на нем пишут или в исследовательских целях, типа если взлетит, то будут и дальше дописывать на нем.


  1. siversky
    02.11.2017 19:44

    А мне Pascal нравится. За 11 лет работы, много всяких вкусностей создал для работодателей и для себя лично. И главное — быстро, просто и понятно.


    1. Dessloch
      02.11.2017 19:49

      Для себя написал пару программулек на Lazarus. Конечно догадываюсь почему Delphi попала в немилость. Основная причина-не кроссплатформенность.


      1. diversenok
        02.11.2017 22:14

        Скорее цена лицензии. Кроссплатформенность-то уже имеется: Linux, OS X, iOS и Android.


      1. africaunite
        02.11.2017 22:34

        Delphi попала в немилость только по причине стратегических\маркетинговых ошибок компании Borland (включая сюда появление C# и .net, в первую очередь, как ни странно).


      1. Hazactam
        03.11.2017 20:01

        Делфи уже как бы давно кроосс-платформенный :)


    1. evseev
      02.11.2017 19:59

      А на каких языках вы еще пишите, что вам Pascal нравится?


      1. Ivan22
        03.11.2017 09:57
        -1

        BASIC и КУМИР


      1. siversky
        03.11.2017 12:25

        Приходилось на Java, PHP, Python, C, C++. Всё зависило от задачи.


  1. PerlPower
    02.11.2017 20:17

    О мертвых принято говорить либо хорошо, либо ничего. Приятно осознавать, что Perl еще не умер.


  1. Aqel
    02.11.2017 21:46

    Для меня Delphi лучше, чем C++ Главное — как реализовываешь программу…


    1. Kopilov
      02.11.2017 23:56

      А для меня одного из проектов в моём отделе — VBA :)
      И я спокойно на нём пишу, когда надо.


      1. Aqel
        03.11.2017 06:50

        … тоже писал на нем недолго (после BASIC для ZX), но Delphi оказался интересней, вот JavaScript думаю подучить ибо тоже нравится… :)


        1. Ivan22
          03.11.2017 09:58

          Delphi eще к Office не прикрутили. Поэтому только VBA — только хардкор


          1. siversky
            03.11.2017 12:27

            Если речь про экспорт из базы данных в Excel или генерацию документов в Word, то всё легко делается через ActiveX (через который, кстати можно на Delphi даже модули для AutoCAD делать и не только)


        1. lightman
          03.11.2017 11:28

          Прямо какой-то слёт SEOшников


          1. Aqel
            03.11.2017 11:47
            -1

            Сам то чьих будешь?


  1. samizdam
    02.11.2017 23:19

    Для разгона вентилятора было бы неплохо дополнить перевод альтернативным голосованием для пользователей хабра =)


  1. evgenWebm
    02.11.2017 23:59

    А я программирую чтобы на кушать заработать, а не чтобы меряться пиписькой с кемто.
    Лучше, хуже… ошибочное понятие.
    Есть полезный инструмент и бесполезный.
    И каждый решает под задачу, какой ему нужен инструмент.


    1. Free_ze
      03.11.2017 00:37

      А кто-то хочет вкладывать душу в свое занятие и делать свою работу максимально хорошо.


      1. Viacheslav01
        03.11.2017 00:59

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


        1. Free_ze
          03.11.2017 08:22

          Тот, кто считает продакшн отличным полигоном для модных штучек — ненормальный человек.


        1. Free_ze
          03.11.2017 12:49

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


      1. evgenWebm
        03.11.2017 02:21

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


        1. Free_ze
          03.11.2017 08:25

          Почему же? Он в курсе, что от этого пострадает проект.


          1. evgenWebm
            03.11.2017 14:21

            Тогда такого надо гнать ссаными тряпками.


  1. nexus478
    03.11.2017 00:52
    +1

    Майкрософт прямо монополист в сфере ненавистных технологий.


    1. Viacheslav01
      03.11.2017 01:07

      Даже вернулся перечитал список, МС там не особо представлен :)


      1. Antervis
        03.11.2017 06:24

        в списке «самых нелюбимых тэгов» один — microsoft, и еще 11 из 20 — технологии microsoft


      1. Vadem
        03.11.2017 12:51

        internet-explorer
        visual-basic
        asp-classic
        microsoft
        webforms
        vb6
        asp
        sharepoint
        ms-access
        iis
        vbscript
        Это всё тэги так или иначе относящиеся к microsoft.
        Справедливости ради надо сказать, что половина там — это старые технологии(vb, asp, webforms).


        1. Hazactam
          03.11.2017 20:07

          Что подтверждает:

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


    1. Konachan700
      03.11.2017 20:45

      А то!
      Вон в том же VBA есть волшебные штуки: goto, on error resume next (само по себе дичь, но оно еще и допустимо глобально), месседжбокс при любой ошибке или опечатке в коде, одновременно поддержка и ООП, и функциональщины, можно строго типизировать, а можно везде variant лепить… Надо быть очень терпеливым, чтобы ковырять чужой код на VBA. Для отладки нужно вообще быть просветленным.
      Но как инструмент VBA незаменим и довольно важен. Вот и хейтят.


      1. Free_ze
        03.11.2017 21:21

        VBA незаменим

        А как же .NET?


  1. daemonhk
    03.11.2017 06:40

    Не объективно совсем, если сравнивать количество разработчиков в каждом языке. Ясен пень что на R пишут единицы, а PHP ненавидит большинство.

    P.S. Perl вообще жив?


    1. komandakycto
      03.11.2017 07:58

      Помоему PHP ненавидят только те, кто на нем не пишет и продолжают поддерживать эту идею. Только PHP7 никто не обсырает, потому что эти самые обсыратели его не видели похоже.


      1. VolCh
        03.11.2017 19:10

        Скорее те, кто вынужден время от времени копаться в PHP-коде, который написан в <5.3 стиле.


      1. Viacheslav01
        04.11.2017 22:01

        php стоит ненавидить только за new this


    1. Ananiev_Genrih
      03.11.2017 13:32

      В сфере Data Science и статистики на R пишут единицы десятков миллионов


  1. alex6999
    03.11.2017 08:16

    В Америке еще лет 15 назад, небыло ни одной вакансии на дельфи. Тут в опросе явно наши постарались.


    Странно что нет моего любимого языка c++ builder. Это язык на котором я пишу для себя. К сожалению


    1. Whuthering
      03.11.2017 12:30

      C++ Builder — это все-таки не отдельный язык, а C++ среда разработки и сложившиеся подходы (типа библиотеки VCL).
      Сам по себе язык C++ живет и здравствует, а конкретно с C++ Builder та же проблема, что и с Delphi (особенно учитывая, что это творения одной и той же компании) — из-за странного маркетинга и стратегии его создатели упустили свою долю рынка.


      1. Free_ze
        03.11.2017 12:56

        C++ Builder — это все-таки не отдельный язык, а C++ среда разработки и сложившиеся подходы

        Наверняка речь шла о C++ с некоторым набором расширений или диалекте C++. Например, там есть свойства.


  1. evetrov
    03.11.2017 11:59

    Интересно, а в статистике учитывается количество голосовавших?
    к примеру сообщество (а соответственно и ненавистников) php которому уже больше 20 лет гораздо больше, чем у swift.

    По критерию количества ненавистников естесственно в топ попадут наиболее старые языки.Не все правда старые языки настолько ненавистны, но вот по новым языкам выборка 100% не репрезентативна.


  1. ncix
    03.11.2017 12:02

    Писал на множестве языков, не люблю regexp (да, да "ниасилил"). Люблю SQL но терпеть не могу его реализацию T-SQL. Все остальные хороши по-своему.


    1. KvanTTT
      03.11.2017 12:21

      Чем реализация T-SQL не угодила? И чем она принципиально хуже других реализаций: PL/SQL, MySQL? Там тоже огромное количество дополнительных команд.


      1. ncix
        03.11.2017 14:00

        Нет for select например


        1. Taragolis
          03.11.2017 15:31

          Правильней сказать, что синтаксис курсора несколько иной:
          MS SQL, Oracle, PostgreSQL


          1. ncix
            03.11.2017 16:28

            В Firebird/Interbase, например, не нужно вообще явно курсор объявлять
            https://firebirdsql.org/refdocs/langrefupd21-psql-forselect.html


            1. Taragolis
              03.11.2017 16:50

              Ну, да… А на функционал это как-то влияет?


              1. ncix
                03.11.2017 17:20

                Как-то влияет, но я именно про язык, про синтаксис и семантику. Понятно что можно и на SQL машину Тьюринга написать


                1. Taragolis
                  03.11.2017 18:07

                  Я бы не стал сейчас углублять в написание машины Тьюринга на SQL, лучше сфокусироваться на возможностях\обходных путях того или иного синтаксиса ну и самое главное это возможности самой (О)РСУБД.


    1. siversky
      03.11.2017 12:30

      Мне порой кажется, что regexp и стал причиной появления brainfuck :)


  1. T-362
    03.11.2017 12:31

    Немного неожиданно в самых не любимых тегах среди всяких монументальных вещей видеть банальную ЦМСку joomla. Хотя не скажу что я их не понимаю, скорее наоборот, у меня самого от джумлы до сих пор прямо вьетнамские флешбеки.


  1. slav1k
    03.11.2017 16:58

    Странно, что у Жабы так мало хейтеров. )
    По моим ощущениям ей как раз место в том разрыве между VBА и PHP.
    Видимо сказывается то, что адептов она хорошо кормит, а прочие с ней редко сталкиваются.


    1. aquamakc
      03.11.2017 17:18

      Java вообще ничего общего с VBA и PHP не имеет. Это две три параллельные вселенные.


      1. VolCh
        03.11.2017 19:12

        Есть мнение, что PHP 5+ упорно идёт к интерепретируемой Java


      1. slav1k
        04.11.2017 00:13

        Я имел ввиду первый график, у которого разрыв как раз между VBA и PHP, а не назначение этих трех.


    1. Terras
      03.11.2017 18:04

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


      1. aquamakc
        04.11.2017 13:07

        Лично мне в жаве очень не нравится отсутствие беззнаковых типов. Особенно это напрягает при работе с байтами, когда во всех cи-образных языках это 0...255, в жаве -127...127.


  1. kxl
    04.11.2017 08:37

    Так тут ещё 1С-ники не прибегали…


    1. slav1k
      04.11.2017 13:25

      Им некогда, они деньги зарабатывают.)


  1. WTYPMAH
    06.11.2017 16:37

    Два года назад сделал ставку 100$, что в течении 5-ти лет R обгонит Python по популярности и использованию. Спасибо за графики — пока R идет в нужным темпом :)