![](https://habrastorage.org/webt/jn/xw/rc/jnxwrcd6lz6see3do_cb5ovewm4.png)
Январь — отличное время для того, чтобы проанализировать прошедший год и заглянуть в новый.
Программисты пытаются предположить, каким он будет: прикидывают, какими навыками было бы неплохо овладеть, в каких проектах можно поучаствовать. Недавно на Indorse шла беседа об ожидаемых трендах. В этом обсуждении родились любопытные мысли, которыми хотелось бы поделиться.
Ниже представлены языки, ставшие трендовыми в ушедшем году, а также новые тренды, которые помогут вам оставаться на гребне волны в 2019-м.
Взглянем на тренды-2018 в программировании
Stack Overflow и GitHub обладают большим количеством информации о наиболее используемых языках программирования.
Схема от Stack Overflow, представленная ниже, демонстрирует самые популярные языки 2018 года. Как вы видите, JavaScript возглавляет список, и это неудивительно: он продолжает использоваться повсеместно как для фронтенд-, так и для бэкенд-разработок. Более того: JavaScript лидирует шестой год подряд.
![](https://habrastorage.org/webt/z2/fo/zh/z2fozhweiut10zyz_qkxa7lomx8.png)
Источник: Stack OverFlow
JavaScript на высоте и по данным GitHub (см. схему ниже). Мы видим, в организациях любого масштаба и в любом регионе мира у JavaScript больше всего контрибьюторов — как в публичных, так и в частных репозиториях.
![](https://habrastorage.org/webt/3m/lw/q-/3mlwq-h075wowxcefqqd2vsr9vg.png)
Источник: GitHub Octoverse Report
По другим критериям превосходство также у JavaScript. В 2018 году этот язык стал первым не только по количеству контрибьюторов, но и по числу новых репозиториев на GitHub (см. схему ниже).
![](https://habrastorage.org/webt/9q/ip/b1/9qipb1jodsi0lylvvyx1ovt9i-o.png)
Топ языков программирования по количеству созданных репозиториев с 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.
![](https://habrastorage.org/webt/we/ud/wf/weudwfdm10cacagx0ltbhhgilws.png)
Источник: Stack OverFlow
Что произошло?
Естественно, растущий интерес к искусственному интеллекту (ИИ) способствует развитию Python. И инженерам, судя по всему, нравится использовать этот язык для программирования. Согласно результатам последнего опроса членов IEEE, Python их фаворит.
![](https://habrastorage.org/webt/k8/5e/9x/k85e9xws16niehm7gspxjxyic_k.png)
Источник: IEEE Spectrum
По результатам опроса IEEE Python и в 2017 году занял первое место — с небольшим отрывом от C. Похоже, ему удается вытеснить R во многих сферах (R — специализированный язык для работы со статистикой и большими данными, критически необходимый для ИИ и приложений для машинного обучения).
Вполне вероятно, что доступность библиотечных модулей Python для статистики и машинного обучения сделали его более привлекательным языком для машинного обучения, чем R. В целом с Python вы можете сделать гораздо больше, чем с R, который действительно создан лишь для работы со статистикой и большими данными. Например, вы можете использовать Python для создания игр, веб-сайтов, бизнес-приложений и др.
Так что, если вы подумываете о работе с ИИ и машинным обучением или уже работаете, используя R, Python — это язык, который обязательно нужно освоить в новом году.
Тренд-2019 #2: TypeScript в десятке самых популярных языков
Согласно последнему докладу GitHub Octoverse, сейчас TypeScript на 7 месте по популярности, в 2017 году он был на 10 месте (см. вторую схему в начале статьи). Как вы видите на картинке ниже, на данный момент это третий по счету самый быстроразвивающийся язык из всех.
![](https://habrastorage.org/webt/kb/8k/dp/kb8kdpx4mtw0u1bcvb1ie39jbtq.png)
Самые быстроразвивающиеся языки по мнению пользователей на 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, не прогадаете.
![](https://habrastorage.org/webt/zm/_6/1e/zm_61exjphtkdgsxpywutuzz_mk.png)
Вывод
Теперь вы знаете, на какие тренды в программировании обратить внимание в 2019 году. Все они — прекрасный выбор для тех, кто хочет освоить что-нибудь новое.
Python будет хорошим вариантом, если вы планируете заниматься статистическим анализом или машинным обучением на больших данных. Можно остановиться на TypeScript, чтобы с большей легкостью писать коды для JavaScript. Если вы привыкли кодировать с помощью C, то Go упростит вам жизнь, позволяя при необходимости компилировать код в JavaScript.
Удастся ли новым языкам, таким как Go и TypeScript, вытеснить JavaScript? Если это произойдет, то многие разработчики будут просто счастливы, но делать подобные прогнозы пока рано. Сейчас мы знаем точно только то, что с Python, TypeScript и Go в новом году мы будем встречаться чаще.
Комментарии (18)
APXEOLOG
18.01.2019 17:35JavaScript на высоте и по данным GitHub. В 2018 году этот язык стал первым не только по количеству контрибьюторов, но и по числу новых репозиториев на GitHub
Кто бы мог подуматьFengol
18.01.2019 18:07Реальность такова, что typescript уже должен стать дефакто. Не понимаю почему этого ещё не произошло. Энтерпрайз в любом случае за c#. Питон… Питон должен резко взлететь, так как его пропагандируют как скриптовый язык для набирающей популярность различной аналитики, ботов и нейросетей. То есть, как ЯП для приложений он не будет популярен. Все остальное — поровну и по различным причинам, но не в серьез. То есть, если какая-то крутая компания имеет 98% кода на c# и потом говорит что что-то написала на go от скуки, то к сожалению, найдутся такие, которые трактуют это как — весь мир спешит перейти на go. И масла в огонь как всегда подольют школы, которые только и рады что у них появятся новые клиенты, которым они будут хелпы пересказывать.
foal
18.01.2019 21:43-3Какой то у вас энтерпрайз прогресивный — С#… У нас только телеком на нём едет. Остальные на Java.
Scf
18.01.2019 18:19-1Да все просто с питоном — на западе его учат в качестве первого ЯП в школах и университетах.
berez
18.01.2019 20:37+1У нас его тоже активно пропагандируют в качестве первого. Утром сегодня обозрел книжные полки с компьютерной литературой в «Буквоеде» — в любой книжке по программированию для начинающих — питон.
VaalKIA
18.01.2019 22:16Тогда почему у нас учат, Pascal, а ни Паскаля, ни Дельфи на графике нет и подавно?
FForth
19.01.2019 09:59В более полной версии рейтинга IEEE (48 языков программирования)
spectrum.ieee.org/static/interactive-the-top-programming-languages-2018
Дельфи оказался на 31-м месте.
P.S. Можно в этом рейтинге и посмотреть данные по разным классификаторам.
OnYourLips
19.01.2019 14:39Потому что среднестатистический преподаватель знает только то, чему его учили 30 лет назад в советском вузе.
indestructable
18.01.2019 22:36+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.rustacean137
21.01.2019 10:57+1Тем не менее, это не сильная а слабая типизация, поскольку типы необъязательны.
onborodin
21.01.2019 11:12>Тем не менее, это не сильная а слабая типизация, поскольку типы необъязательны.
«Бомбы не убивают, поскольку взрывчатка в них необязательна»
Хорошо, добавим:
— сильная типизация, если проверка типов не выключена в конфигурации компилятора.
indestructable
21.01.2019 12:57Сильная типизация — это когда каждая переменная имеет свой тип во время выполнения, и попытка записать туда значение другого типа (без приведения типов) вызовет ошибку.
В Джаваскрипте типизация динамическая, тип переменной определяется типом текущего записанного туда значения.
Тайпскрипт добавляет в джаваскрипт аннотации типов, которые, тем не менее, не могут изменить динамическую природу языка. Там можно кастовать все в
any
и записывать что угодно во что угодно, даже включив все флаги компилятора.
Пишу это, потому что это важно понимать тем, кто изучает тайпскрипт, и хочет понять мотивацию, например, его системы типов.
Videoman
21.01.2019 14:10Сильная типизация — это когда каждая переменная имеет свой тип во время выполнения, и попытка записать туда значение другого типа (без приведения типов) вызовет ошибку.
Ну это же совсем не так. По вашему определению сильной типизации нет даже у С++, т.к на этапе выполнения там даже не возможно отделить код от данных, не то что понять где какие типы.
MSC6502
21.01.2019 10:57И > 325000 пользователей по всему миру платят за RAD Studio тысячи и десятки тысяч долларов, бедненькие, не знают про Питон и JS…
Edison
Ученный объявили неделю срачей, количество постов про Go увеличилось в два раза.