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



Январь — отличное время для того, чтобы проанализировать прошедший год и заглянуть в новый.

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

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

Взглянем на тренды-2018 в программировании


Stack Overflow и GitHub обладают большим количеством информации о наиболее используемых языках программирования.

Схема от Stack Overflow, представленная ниже, демонстрирует самые популярные языки 2018 года. Как вы видите, JavaScript возглавляет список, и это неудивительно: он продолжает использоваться повсеместно как для фронтенд-, так и для бэкенд-разработок. Более того: JavaScript лидирует шестой год подряд.


Источник: Stack OverFlow

JavaScript на высоте и по данным GitHub (см. схему ниже). Мы видим, в организациях любого масштаба и в любом регионе мира у JavaScript больше всего контрибьюторов — как в публичных, так и в частных репозиториях.


Источник: GitHub Octoverse Report

По другим критериям превосходство также у JavaScript. В 2018 году этот язык стал первым не только по количеству контрибьюторов, но и по числу новых репозиториев на GitHub (см. схему ниже).


Топ языков программирования по количеству созданных репозиториев с 2008 по 2018 гг. Источник: GitHub Octoverse Report

Этот стремительный взлет произошел благодаря новым серверам JavaScript (например, Node.js, что был запущен в 2009 г.), которые позволяют программистам использовать один код как для клиента, так и для сервера.

А что же с другими языками? Python и C++ поднялись в списке, C — немного опустился, а Ruby рухнул с 5 на 10 место. Другой прорыв в прошлом году совершил TypeScript: в списке он поднялся с 10 до 7 пункта.

Как вышеописанные тренды повлияют на сферу программирования в 2019-м? Очевидно, что JavaScript останется преобладающим языком. Но есть и другие языки, которые развиваются гораздо быстрее.

Тренд-2019 #1: сможет ли Python догнать Java?


Если вы посмотрите на схему вверху, то увидите, что Python уже третий по популярности язык в мире. Но эту позицию он занял недавно: согласно данным от Stack Overflow, Python обошел PHP в 2017 году, а C# — в 2018-м (даты в выделенном авторском тексте не соответствуют данным на схеме ниже. — Прим. ред.).

Следующая схема иллюстрирует стремительный взлет Python.


Источник: Stack OverFlow

Что произошло?

Естественно, растущий интерес к искусственному интеллекту (ИИ) способствует развитию Python. И инженерам, судя по всему, нравится использовать этот язык для программирования. Согласно результатам последнего опроса членов IEEE, Python их фаворит.


Источник: IEEE Spectrum

По результатам опроса IEEE Python и в 2017 году занял первое место — с небольшим отрывом от C. Похоже, ему удается вытеснить R во многих сферах (R — специализированный язык для работы со статистикой и большими данными, критически необходимый для ИИ и приложений для машинного обучения).

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

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

Тренд-2019 #2: TypeScript в десятке самых популярных языков


Согласно последнему докладу GitHub Octoverse, сейчас TypeScript на 7 месте по популярности, в 2017 году он был на 10 месте (см. вторую схему в начале статьи). Как вы видите на картинке ниже, на данный момент это третий по счету самый быстроразвивающийся язык из всех.


Самые быстроразвивающиеся языки по мнению пользователей на 30 сентября 2018. Источник: доклад GitHub Octoverse

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

Интересно то, что вы можете кодировать с помощью TypeScript, а затем компилировать (конвертировать) ваш код для JavaScript. Таким образом, TypeScript позволяет обойти наиболее раздражающие недостатки JavaScript.

Тренд-2019 #3: Go упрощает программирование


Go в 2018 году первый раз попал в топ-10 по версии IEEE (см. выше рейтинг, опубликованный в журнале IEEE Spectrum). Кроме того, это пятый по счету самый быстроразвивающийся язык по данным IEEE, и седьмой по данным GitHub. Должно быть, он действительно особенный. Давайте узнаем почему.

Go — это язык программирования с открытым исходным кодом, разработанный компанией Google. Похожий по синтаксису на язык C, он, как и Python, проще остальных языков в плане чтения и написания. Вероятно, в этом и кроется причина стремительного роста популярности.

Кроме того, Go — язык с сильной типизацией (как и TypeScript). Вы можете использовать его для всех видов фронтенд- и бэкенд-приложений, а также для создания сопутствующих приложений, которые разбивают работу на множество потоков в ходе ее выполнения. И, что здорово, вы можете написанный в Go код компилировать в JavaScript.

Видимо, Google подумывает перевести свои продукты на работу с Go, что повысило бы популярность этого языка еще больше. Так что выбирайте для освоения Go, не прогадаете.



Вывод


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

Python будет хорошим вариантом, если вы планируете заниматься статистическим анализом или машинным обучением на больших данных. Можно остановиться на TypeScript, чтобы с большей легкостью писать коды для JavaScript. Если вы привыкли кодировать с помощью C, то Go упростит вам жизнь, позволяя при необходимости компилировать код в JavaScript.

Удастся ли новым языкам, таким как Go и TypeScript, вытеснить JavaScript? Если это произойдет, то многие разработчики будут просто счастливы, но делать подобные прогнозы пока рано. Сейчас мы знаем точно только то, что с Python, TypeScript и Go в новом году мы будем встречаться чаще.

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


  1. Edison
    18.01.2019 15:15
    +2

    Ученный объявили неделю срачей, количество постов про Go увеличилось в два раза.


  1. APXEOLOG
    18.01.2019 17:35

    JavaScript на высоте и по данным GitHub. В 2018 году этот язык стал первым не только по количеству контрибьюторов, но и по числу новых репозиториев на GitHub

    Кто бы мог подумать

    image


  1. Fengol
    18.01.2019 18:07

    Реальность такова, что typescript уже должен стать дефакто. Не понимаю почему этого ещё не произошло. Энтерпрайз в любом случае за c#. Питон… Питон должен резко взлететь, так как его пропагандируют как скриптовый язык для набирающей популярность различной аналитики, ботов и нейросетей. То есть, как ЯП для приложений он не будет популярен. Все остальное — поровну и по различным причинам, но не в серьез. То есть, если какая-то крутая компания имеет 98% кода на c# и потом говорит что что-то написала на go от скуки, то к сожалению, найдутся такие, которые трактуют это как — весь мир спешит перейти на go. И масла в огонь как всегда подольют школы, которые только и рады что у них появятся новые клиенты, которым они будут хелпы пересказывать.


    1. foal
      18.01.2019 21:43
      -3

      Какой то у вас энтерпрайз прогресивный — С#… У нас только телеком на нём едет. Остальные на Java.


  1. Scf
    18.01.2019 18:19
    -1

    Да все просто с питоном — на западе его учат в качестве первого ЯП в школах и университетах.


    1. berez
      18.01.2019 20:37
      +1

      У нас его тоже активно пропагандируют в качестве первого. Утром сегодня обозрел книжные полки с компьютерной литературой в «Буквоеде» — в любой книжке по программированию для начинающих — питон.


    1. VaalKIA
      18.01.2019 22:16

      Тогда почему у нас учат, Pascal, а ни Паскаля, ни Дельфи на графике нет и подавно?


      1. FForth
        19.01.2019 09:59

        В более полной версии рейтинга IEEE (48 языков программирования)
        spectrum.ieee.org/static/interactive-the-top-programming-languages-2018
        Дельфи оказался на 31-м месте.

        P.S. Можно в этом рейтинге и посмотреть данные по разным классификаторам.


      1. OnYourLips
        19.01.2019 14:39

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


    1. apxi
      21.01.2019 12:40

      У нас тоже паскаль во всех универах преподавали.


  1. indestructable
    18.01.2019 22:36
    +1

    В Тайпскрипте нет сильной типизации, как и в Джаваскрипте.


    1. onborodin
      19.01.2019 22:00
      +1

      $ cat t.ts
      let some: number = 5
      function print(bar: string) {
      console.log(bar)
      }
      print(some as string)
      $ tsc t.ts
      t.ts:5:7 — error TS2352: Conversion of type 'number' to type 'string' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the
      expression to 'unknown' first.


      1. rustacean137
        21.01.2019 10:57
        +1

        Тем не менее, это не сильная а слабая типизация, поскольку типы необъязательны.


        1. onborodin
          21.01.2019 11:12

          >Тем не менее, это не сильная а слабая типизация, поскольку типы необъязательны.

          «Бомбы не убивают, поскольку взрывчатка в них необязательна»

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


          1. indestructable
            21.01.2019 12:57

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


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


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


            Пишу это, потому что это важно понимать тем, кто изучает тайпскрипт, и хочет понять мотивацию, например, его системы типов.


            1. Videoman
              21.01.2019 14:10

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


  1. freecoder_xx
    19.01.2019 11:45
    +1

    Реклама Go на фоне приведенных данных выглядит неуместно.


  1. MSC6502
    21.01.2019 10:57

    И > 325000 пользователей по всему миру платят за RAD Studio тысячи и десятки тысяч долларов, бедненькие, не знают про Питон и JS…