8 самых востребованных языков программирования в 2023 году
В мире существует более 200 языков программирования, но только несколько десятков используются большинством разработчиков. Рассказываем, какие языки программирования были самыми востребованными в 2022 году и какие наметились тренды на рынке на 2023 год.
Как проводилось исследование
Рекрутинговый сервис DevJobsScanner выпустил исследование 12 млн вакансий для разработчиков по всему миру, которые появились на сайте в период с октября 2021 года до конца ноября 2022 года. По итогам эксперты компании проанализировали, каких специалистов работодатели искали чаще всего. При этом в сообщении DevJobsScanner отмечается, что это исследование показывает не столько результаты 2022 года, сколько тренд на 2023 год.
Всю информацию о вакансиях DevJobsScanner считывал только из заголовков. То есть вакансия с заголовком «Java-разработчик» считалась как вакансия для программиста на Java. Если в заголовке вакансии указано «бэкенд-разработчик» без точного названия стека, то в исследовании она не учитывалась.
Если в заголовке вакансии указывалась отдельная ключевая технология, то эксперты записывали ее в материнский стек — например, «React-разработчик» в исследовании записывался как JS-программист, а «Django-разработчик» — как Python-программист.
JavaScript/TypeScript
JavaScript — самый востребованный язык программирования не только в исследовании DevJobsScanner, но и среди множества других рейтингов. Появление TypeScript (усовершенствованного JS с безопасностью типов) тоже увеличило количество разработчиков, которые ежедневно в своей работе используют JavaScript.
С октября 2021 года по ноябрь 2022 года в DevJobsScanner опубликовано 801 тыс. вакансий, для которых явно требовался JavaScript или TypeScript в качестве основного языка программирования. Это около 31% от всего количества вакансий, где в заголовке указывался главный стек разработки.
Ключевые слова, по которым DevJobsScanner собирали вакансии: JavaScript, TypeScript, React, Angular, Vue, Node.
Продолжайте учиться: На Хекслете есть несколько больших профессий, интенсивов и треков для джуниоров, мидлов и даже сеньоров: они позволят не только узнать новые технологии, но и прокачать уже существующие навыки
Python
Python стал вторым наиболее востребованным языком программирования в 2022 году. Аналитики считают, что универсальность — от написания скриптов, до запуска серверов или анализа данных, стала ключом к достижению этой вехи. Кроме того, у Python одно из самых больших сообществ разработчиков в мире.
В период с октября 2021 года по ноябрь 2022 года в DevJobsScanner опубликовано 515 тыс. вакансий, для которых явно требуется Python в качестве языка основного программирования. Это 20% от всех опубликованных вакансий на DevJobsScanner с явным указанием языка программирования.
В тройке лидеров — Java. Этот язык очень популярен с момента его создания в 1995 году, и остается в тройке лидеров даже несмотря на то, что его популярность с годами немного начинает снижаться. При этом на Java и Spring уже написано огромное количество кода, поэтому этот язык программирования продолжает активно использоваться крупнейшими корпорациями. Кроме того, в этом году даже наметился тренд на рост популярности Java.
Всего за 14 месяцев на DevJobsScanner опубликовано 443 тыс. вакансий, где ищут Java-разработчика. Это 17% от всех вакансий на сервисе.
C Sharp
C# — это мультипарадигменный объектно-ориентированный язык программирования общего назначения, созданный главным образом для устранения некоторых недостатков C++. Как язык общего назначения, C# имеет широкий спектр вариантов использования, но чаще всего он используется при работе с платформой .NET. Кроме того, C# также широко используется в игровой среде Unity для написания скриптов.
За 14 месяцев на DevJobsScanner было опубликовано 305 тыс. вакансий, в которых явно искали C#-разработчика. Это 12% от всех опубликованных вакансий на сайте.
Язык PHP, который 27 лет назад появился как простой «инструмент для создания персональной домашней страницы», с тех пор проделал невероятный путь. PHP является пятым наиболее востребованным языком программирования в 2022 году.
В период проведения исследования на DevJobsScanner опубликовано 226 тыс. вакансий для PHP-разработчика. Это около 10% от всех вакансий, а это значит, что одно из десяти рабочих мест требует хорошего знания PHP.
Прошло 50 лет с момента появления языка программирования C и 37 лет выпуска C++, который долгое время назывался «C с классами». В течение этого длительного периода C/C++ поддерживал свою популярность благодаря регулярным дополнениям и улучшениям.
Современный C++ включает в себя как объектно-ориентированные, так и функциональные возможности. Это также облегчает все низкоуровневые процессы, для которых и нужен C/C++. При этом C/C+ используется практически во всех сферах, где можно писать код — начиная с видеоигр, заканчивая работой космических станций.
С октября 2021 по ноябрь 2022 года на DevJobsScanner опубликовано 213 тыс. вакансий, где ищут разработчиков на C/C++. Это 8% от всех опубликованных вакансий.
На DevJobsScanner за 14 месяцев опубликовано 125 тыс. вакансий разработчиков на Ruby. Это 5% от всех вакансий, которые опубликованы на этом сайте. При этом огромное количество вакансий на Ruby опубликовано в крупных корпорациях, таких как Twitter, Crunchbase или Github.
Чаще всего разработчиков на Ruby ищут для работы с фреймворком Ruby on Rails.
Go — молодой язык, созданный компанией Google всего 12 лет назад. Мы писали большой текст про Go и его перспективы тут. При этом в графике ниже видно, что популярность Go постепенно растет и, скорее всего, по итогам 2023 года он войдет в пятерку самых используемых языков программирования в мире.
С конца 2021 года по конец 2022 года на DevJobsScanner опубликовано 53 тыс. вакансий Go-разработчиков. Это 2% от всех вакансий программистов.
Итоги
JavaScript является абсолютным лидером на рынке труда для разработчиков, занимая практически треть от всех вакансий. То есть одна из трех вакансий сейчас, которые есть на рынке — это JS-программисты.
Python и Java занимают второе и третье место по популярности. При этом существует интересный тренд, что Java за последние годы начинает расти и, вероятно, в будущем сможет обогнать Python по количеству вакансий.
Пять перспективных языков программирования со светлым будущим
Если разделять языки программирования по популярности, то они делятся на три эшелона. Первый эшелон включает мейнстрим-языки, такие как Java, JavaScript, Python, Ruby, PHP, C#, C++ и Objective-C. Несмотря на то, что некоторые из ведущих языков возможно увядают, вам лучше знать один или несколько из них, если вы хотите иметь возможность легко найти работу.
Языки второго эшелона пытаются пробиться в мейнстрим, но ещё не добились этого. Они доказали свою состоятельность путем создания сильных сообществ, но они до сих пор не используются большинством консервативных IT-компаний. Scala, Go, Swift, Clojure и Haskell — языки, которые я бы отнёс ко второму эшелону. Некоторые компании используют эти языки для отдельных сервисов, но широкое применение встречается редко (за исключением Swift, который начинает обгонять Objective-C в качестве основного языка для iOS). Go и Swift имеют хорошие шансы на переход из второго эшелона в первый в течение ближайших двух-трёх лет.
Большинство языков в первом эшелоне прочно укоренились на своих позициях. Поэтому выпадение языка с лидирующих позиций занимает ощутимое время, а для языка второго эшелона очень трудно пробиться в первый.
Перспективные языки из данной статьи относятся к третьему эшелону, и они только начинают свой путь наверх. Некоторые языки пребывают в третьем эшелоне на протяжении многих лет, не получая популярности, в то время как другие врываются на сцену всего за пару лет. Как, например, языки, про которые пойдёт речь в статье.
Перспективные языки: почему эти пять?
Пять языков программирования, о которых пойдёт речь, весьма новы (не исключено, что о каком-то вы услышите впервые), и они явно имеют отличные шансы пробиться во второй эшелон в ближайшие 2-3 года. Может быть, когда-нибудь один из этих языков сможет потеснить и языки первого эшелона.
Вот почему эти пять языков были выбраны для этого списка:
Elm набирает популярность в сообществе JavaScript, в первую очередь среди тех, кто предпочитает функциональное программирование, которое находится на подъеме. Как и TypeScript или Dart, Elm транспилируется в JavaScript.
Rust является языком системного программирования, предназначенным в основном для ниш, где применяют С и С++. Поэтому удивительно видеть, что популярность этого языка быстрее растёт среди веб-разработчиков. Этот факт становится более осмысленным, когда вы выясняете, что язык был создан в Mozilla, которая хотела дать лучший вариант веб-разработчикам, которые вынуждены писать низкоуровневый код, и при этом более производительный, чем PHP, Ruby, Python или JavaScript. Rust был также признан лучшим в номинации ”сама любимая технология” по результатам опроса разработчиков, проведённом StackOverflow в 2016 году (это означает, что большинство пользователей хотели бы продолжать использовать этот язык).
Kotlin существует уже около пяти лет, но только в этом году он достиг production-ready версии 1.0. Несмотря на то, что он ещё не достиг популярности Scala, Groovy или Clojure — три самых популярных и зрелых (не считая Java) языков под JVM — он выделяется из множества других JVM-языков и, кажется, готов занять свое место среди лидеров этой группы. Язык возник в JetBrains (создатель популярной IntelliJ IDEA IDE). Так что он продуман с упором на производительность труда разработчиков.
Crystal — ещё один язык, который надеется принести производительность программ на уровне C в высокоуровневый мир веб-разработчиков. Crystal нацелен на Ruby-сообщество, т.к. его синтаксис подобен, а порой идентичен, Ruby. И без того большое количество стартапов на Ruby продолжает расти, и Crystal может сыграть ключевую роль, помогая поднять производительность этих приложений на следующий уровень.
Elixir также черпал вдохновение из экосистемы Ruby, но вместо того, чтобы пытаться принести C-подобные преимущества, он ориентирован на создание высокодоступных, отзывчивых систем, т.е. на то, с чем Rails имеет проблемы по мнению критиков. Elixir достигает этих преимуществ при помощи Erlang VM, которая имеет прочную репутацию, основанную на 25 годах успешного применения в телекоммуникационной отрасли. Phoenix (веб-фреймворк для Elixir), наряду с большой и цветущей экосистемой, придаёт этому языку дополнительную привлекательность.
Теперь взгляните, как четыре из этих пяти языков карабкаются по лестнице популярности (на основе данных StackOverflow и GitHub):
Каждый из этих языков может похвастаться увлечённым сообществом и собственной еженедельной новостной рассылкой. Если вы подумываете об изучении молодого языка с захватывающими возможностями для будущего, прочитайте краткие презентации для каждого из этих пяти языков, написанные опытными энтузиастами и лидерами соответствующих экосистем.
Elm — функциональный язык программирования, ориентированный на удобство и простоту использования, который компилируется в высокопроизводительный JavaScript-код. Вы можете использовать его, в том числе и совместно с JavaScript, для создания пользовательских интерфейсов в интернете. Основными преимуществами Elm по сравнению с JavaScript являются надёжность, лёгкость в поддержке и нацеленность на удовольствие от программирования. Более конкретно:
- Нет runtime-исключений: Elm-код имеет репутацию никогда не выбрасывающего исключений во время выполнения. Совсем не то, что «undefined is not a function.»
- Легендарно любезный компилятор: компилятор Elm часто хвалят за наиболее полезные сообщения об ошибках среди конкурентов. «Если он компилируется, то, как правило, всё просто работает» — это распространённое мнение, даже после серьёзного рефакторинга. Это делает большие проекты на Elm гораздо легче в поддержке, чем соразмерные проекты на JS.
- Семантическое версионирование: elm-package обеспечивает соблюдение семантических версий автоматически. Если автор пакета пытается сделать ломающие API изменения, не поднимая основной номер версии, elm-package обнаружит это и откажет в публикации новой версии пакета. Ни один другой известный менеджер пакетов не обеспечивает соблюдение семантического версионирования настолько надёжно.
- Быстрый и функциональный: Elm является чистым функциональным языком, который гарантирует отсутствие мутаций и побочных эффектов. Это не только обеспечивает прекрасную масштабируемость Elm-кода, но также помогает ему рендерить UI приложения быстрее, чем React, Angular или Ember.
- Мощные инструменты:elm-format форматирует исходный код в соответствии со стандартом сообщества. Нет больше споров по конвенциям оформления кода. Просто нажимаете кнопку “Сохранить” в вашем редакторе и ваш код становится красивым. elm-test поставляется с “батарейками” для поддержки как модульного, так и случайного тестирования. elm-css позволяет писать Elm-код, который компилируется в css-файл, так что вы можете разделять код между приложением и таблицами стилей, чтобы гарантировать, что ваши константы никогда не рассинхронизируются.
Elm код также может взаимодействовать с JavaScript. То есть вы можете вводить его в малых дозах в ваш JS код, и вы всё ещё можете использовать огромную экосистему JS и не изобретать колесо.
Посмотрите guide.elm-lang.org, чтобы начать, Elm in Action для более глубокого ознакомления и How to Use Elm at Work, если вам интересно, как можно было бы использовать Elm на работе.
Этот раздел написал Richard Feldman — автор Elm in Action и создатель elm-css , CSS-препроцессора для Elm.
Rust является языком системного программирования, который сочетает в себе эффективность C и контроль над памятью с функциональными возможностями, такими как сильная статическая типизация и вывод типов.
Основными целями при проектировании языка были:
- Безопасность: Многие C-подобные языки открывают путь к ошибкам в результате ручного управления памятью (например, висячие указатели или двойные освобождения). Rust перенимает передовые практики современного C++, такие как RAII и смарт-указатели и делает их применение обязательным, систематически гарантируя, что чистый код на Rust безопасен по памяти.
- Скорость: Почти все языки работают медленнее, чем C, поскольку они обеспечивают абстракции, которые упрощают разработку программного обеспечения. Но это даётся ценой существенного увеличения накладных расходов во время выполнения (например, сборка мусора и динамическая диспетчеризация). Rust фокусируется на «абстракциях нулевой стоимости”, т.е. таких методах упрощения программирования, которые не требуют дополнительных затрат во время выполнения. Например, Rust управляет памятью во время компиляции и использует статическую диспетчеризацию для дженериков (по аналогии с шаблонами C++, но более безопасно по отношению к типам).
- Конкурентность: Конкурентный код в системных языках часто хрупок и подвержен ошибкам, учитывая нетривиальность многопоточного программирования. Rust пытается смягчить эти проблемы путем предоставления гарантий на уровне типа какие значения могут быть разделены между потоками и как именно.
Rust также имеет несколько отличительных особенностей:
- Проверка владения:прославленная возможность Rust — инструмент статического анализа, который считывает код и прекращает компиляцию, если он может привести к ошибке памяти. Это работает путем закрепления понятия, что значения либо принадлежат одному месту, либо используются во многих местах, и последующего анализа того, как владение значением меняется во время выполнения программы. Проверка владения также исключает состояние гонки в конкурентном коде, используя тот же набор правил.
- Композиция вместо наследования: Вместо того, чтобы использовать систему наследования классов подобно C++ или Java, Rust использует трейты или компонуемые интерфейсы для поддержки модульного программирования. Вместо того, чтобы указывать, что конкретный тип является частью иерархии классов, программист может описать тип на основе его возможностей, например, говоря о том, что тип должен быть Printable и Hashable вместо наследования от класса PrintableHashable.
- Крутые инструменты: Любой C/C++ ветеран знает боль установки зависимостей, компиляции кода на нескольких платформах и борьбы с тайнами конфигурации CMake. Rust экономит бесконечные часы, проведенные в криках на GCC, предоставляя разумный менеджер пакетов и кросс-платформенные API.
Для получения дополнительной информации, ознакомьтесь с The Rust Book и Rust by Example.
Этот раздел написал Will Crichton — аспирант Стэнфордского университета, который специализируется на параллельных и конкурентных системах, визуальных вычислениях и архитектуре компиляторов и языков программирования. Он часто пишет о Rust в своем блоге.
Kotlin
Kotlin представляет собой статически типизированный язык, который ориентирован на JVM и JavaScript. Kotlin родился из потребности JetBrains, которая искала новый язык для разработки своего набора инструментов (который был в основном написан на Java). Что-то, что позволило бы им использовать существующую кодовую базу и в то же время решить некоторые проблемы, которые возникали из-за Java. И именно решения этих распространенных недочётов, встречающихся при написании программного обеспечения, определили большую часть характеристик Kotlin.
- Лаконичность: уменьшить количество шаблонного кода, необходимого для выражения определенных конструкций.
- Универсальность: создать язык, который подходит для любого типа промышленного применения, будь то веб, мобильная разработка, desktop или серверные приложения.
- Безопасность: пусть язык сам обрабатывает некоторые из распространенных ошибок, связанные с такими вопросами, как null reference exceptions.
- Взаимодействие: разрешить языку взаимодействие с существующими базами кода на Java, библиотеками и фреймворками, что обеспечивает возможность постепенного внедрения и использования результатов уже вложенных инвестиций.
- Инструменты: JetBrains делает инструменты и делает их, исходя из убеждения, что многие рутинные задачи можно автоматизировать и привести к более эффективной и продуктивной разработке. Таким образом, язык должен легко позволять применять вспомогательные инструменты.
Kotlin был и всегда будет нацелен на прагматизм — выискивая распространённые проблемы, с которыми мы часто сталкиваемся при написании кода, и пытаясь помочь в их решении. Это проходит красной нитью через различные языковые особенности, такие как:
- Null-safe по умолчанию: типы Kotlin по умолчанию не обнуляемы, что позволяет избежать назойливых исключений, связанных с пустыми ссылками/указателями.
- Делегация первого класса: возможность делегировать функциональность члена класса внешней функции, что облегчает повторное использование и улучшает композицию.
- Соглашения: ряд соглашений, которые позволяют писать выразительный код, открывая путь к созданию сильно типизированного DSL, который улучшает читабельность и упрощает рефакторинг.
Kotlin 1.0 был выпущен в феврале 2016 года, спустя более пяти лет разработки и тщательного тестирования в реальных проектах. В настоящее время более десяти продуктов JetBrains используют Kotlin. Также его используют такие компании, как Amex, NBC Digital, Expedia и Gradle.
Для получения дополнительной информации посетите kotlinlang.org
Этот раздел написал Hadi Hariri — вице-президент JetBrains, редактор блога Kotlin и главный докладчик на темы, посвящённые этому языку.
Crystal
Crystal является языком программирования общего назначения с девизом “Быстр как C, привлекателен как Ruby.»
Это высокоуровневый, статически типизированный, компилируемый, полностью объектно-ориентированный язык программирования с передовым выводом типов и сборкой мусора.
Архитектурные цели Crystal:
- Синтаксис похожий на Ruby (но совместимость с ним не является целью).
- Статическая типизация, но без необходимости указания типа переменных или аргументов метода.
- Возможность вызывать C-код, написав биндинги к нему на Crystal.
- Возможность выполнения и генерации кода во время компиляции, чтобы избежать шаблонного кода (boilerplate).
- Компиляция в эффективный машинный код.
Crystal имеет уникальные функции, такие как:
- Каналы: Crystal использует каналы, вдохновленные CSP (так же, как Go) для достижения конкурентности. Он использует согласованные легковесные потоки, называемые Fibers, для достижения этой цели. Fiber легко создать с помощью ключевого слова spawn и сделать выполнение асинхронным/неблокирующим.
- Макросы: Crystal использует макросы, чтобы избежать шаблонного кода и обеспечить возможности метапрограммирования. Макросы очень мощные и раскрываются во время компиляции, то есть они не приводят к потери производительности.
- crystal : Команда crystal сама по себе полнофунциональна и поставляется с большим количеством встроенных инструментов. Она используется для создания нового проекта, компиляции, запуска тестов и многого другого. Там также есть встроенная утилита для автоматического форматирования кода. А ещё crystal play представляет интерактивную среду для быстрого прототипирования, подобно irb .
Бонус:
Выразительность: Код читают гораздо чаще, чем пишут. Благодаря Ruby, Crystal действительно выразителен и лёгок для понимания. Это облегчает обучение для новичков и окупается в долгосрочной перспективе, благодаря упрощению сопровождения кода.
Для получения дополнительной информации вы можете обратить внимание на официальную Crystal Book и Crystal for Rubyists.
Этот раздел был написан Serdar Doğruyol — автор Crystal for Rubyists, создатель Kemal, веб-фреймворка для Crystal, куратор Crystal Weekly.
Elixir
Впервые представленный в 2012 году, Elixir является функциональным языком общего назначения, предназначенным для повышения производительности, масштабируемости и эксплуатационной надежности. В то время как язык является относительно новым, он компилируется в байт-код, который выполняется на виртуальной машине Erlang (BEAM). Erlang VM родилась в телекоммуникационной отрасли, развивается в течение почти 25 лет и стоит за многими сложными системами с высокой доступностью и низкой задержкой.
В настоящее время Elixir в основном используется для создания веб-приложений с использованием как Cowboy (низкоуровневый HTTP-сервер), так и Phoenix (полнофункциональный фреймворк для разработки веб-приложений). Кроме того, Elixir пробивается в нишу встраиваемых систем благодаря фреймворку Nerves.
Синтаксис Elixir и набор инструментов черпали вдохновение от Ruby. В то время как синтаксические сходства только поверхностны, набор инструментов будет ощущаться знакомым каждому, кто знает Ruby. Команды хорошо продуманы, просты в использовании и обеспечивают прекрасную производительность труда разработчиков.
Цели языка:
- ”Дружественное” функциональное программирование: сила и преимущества функционального языка программирования с ясным и доступным синтаксисом.
- Высококонкурентный и масштабируемый: язык не должен создавать проблем на пути решения серьёзных задач для высоконагруженных систем.
- Отличные средства разработки: для компиляции, управления зависимостями, тестирования и развёртывания.
Пример Phoenix-контроллера, написанного на Elixir
Отличительные особенности:
- Иммутабельные структуры данных и отсутствие побочных эффектов помогают сделать большие системы проще в обслуживании и понимании.
- Супервизоры позволяют определить внутреннее дерево процессов и установить правила для автоматического восстановления от ошибок.
- Сопоставление с образцом обеспечивает альтернативу условными и сторожевым операторам.
- Конкурентность, основанная на акторах и отсутствии разделяемых данных, хорошо подходит для решения сегодняшних проблем конкурентности при масштабировании. См. Путь к 2 миллионам подключений.
- Очень эффективное управление ресурсами означает, что вы можете обслуживать множество пользователей ограниченными аппаратными средствами. См. Почему WhatsApp требуется только 50 инженеров для обслуживания 900 миллионов пользователей.
- Горячая замена кода позволяет проводить деплои без даунтайма.
- Lisp-подобная система макросов позволяет напрямую манипулировать AST, обеспечивая очень широкие возможности метапрограммирования, вплоть до поддержки кастомного синтаксиса. (этот пункт добавлен переводчиком)
Elixir и Phoenix набирают популярность, поскольку это сочетание позволяет легко создавать сложные надёжные веб-приложения и API с хорошей поддерживаемостью, отличной производительностью и масштабируемостью. Вот почему Pinterest, Bleacher Reports и многие другие компании выбирают Elixir для ключевых частей инфраструктуры своих продуктов. Вы можете получить продуктивность без ущерба для производительности (или наоборот), чего не скажешь о большинстве других языков.
Этот раздел написан Christian Nelson — партнер и директор по разработке в Carbon Five.
10 языков программирования, которые пригодятся в 2023 году
Если ваши планы по карьерному продвижению или смене профессии требуют знания языков программирования, стоит задуматься над тем, какой из них выбрать для изучения. В конце концов, для овладения языком нужны время и деньги, поэтому так важно сделать правильный выбор.
При принятии решения следует учитывать несколько факторов:
- доступный вам уровень сложности языка;
- опыт написания кода на уже освоенных вами языках;
- необходимость в изучении более продвинутого языка программирования.
Правильный выбор языка программирования поможет разработать мобильное приложение, получить сертификат или овладеть новыми навыками. Ниже приведена подборка ведущих языков программирования, которые будут пользоваться спросом у работодателей в 2023 году. Рассмотрим особенности каждого языка, степень его сложности, сферы применения.
JavaScript
JavaScript — это высокоуровневый язык программирования, который является одной из основных технологий Всемирной паутины. Он используется для создания фронтенда 97,8% сайтов. Изначально сфера применения JavaScript ограничивалась разработкой браузеров, а теперь дополнилась развертыванием сайтов на стороне сервера и приложений, не связанных с браузерами.
JavaScript был создан в 1995 году и изначально назывался LiveScript. Поскольку тогда популярным языком был Java, LiveScript рекламировали как “младшего брата” Java. Со временем JavaScript стал полностью самостоятельным языком. Сегодня его нередко путают с Java. Хотя между ними есть некоторое сходство, эти два языка отличаются друг от друга.
JavaScript является самым популярным языком программирования в мире и пользуется большим спросом среди различных организаций.
Python
Python — один из самых популярных языков программирования на сегодняшний день. Благодаря своей читабельности он легко дается новичкам. Это бесплатный язык программирования с открытым исходным кодом, обширными модулями поддержки и развитым сообществом, легкой интеграцией с веб-сервисами, удобными структурами данных и десктопными приложениями на основе графического интерфейса. Этот язык широко распространен в сфере создания МО-приложений, в том числе приложений глубокого обучения.
Python используется для разработки пакетов 2D-изображений и 3D-анимации, таких как Blender, Inkscape и Autodesk. Он также был применен при создании популярных видеоигр, в том числе Civilization IV, Vegas Trike и Toontown. Не обошлись без Python и разработчики приложений для научных исследований (FreeCAD и Abaqus), и создатели таких популярных платформ, как YouTube, Quora и Pinterest.
Go был разработан компанией Google в 2007 году для создания API и веб-приложений. В последнее время Go стал одним из самых быстро развивающихся языков программирования благодаря своей простоте, а также способности работать с многоядерными и сетевыми системами и массивными кодовыми базами.
Go, также известный как Golang, был создан для удовлетворения потребностей программистов, работающих над большими проектами. Он завоевал популярность среди многих крупных IT-компаний благодаря своей простой усовершенствованной структуре и привычному для большинства пользователей синтаксису.
Среди многочисленных компаний, использующих Go в качестве языка программирования, — Google, Uber, Twitch и Dropbox. Благодаря своей гибкости и производительности, Go также набирает обороты популярности среди специалистов по обработке данных.
Java — один из самых популярных языков программирования на сегодняшний день. Этот язык программирования общего назначения с объектно-ориентированной структурой стал стандартом для приложений, которые могут использоваться независимо от платформы — будь то Mac, Windows, Android, iOS и т.д. Такие возможности языка обозначают аббревиатурой WORA (write once, run anywhere — написать однажды, выполнить где угодно).
Благодаря своей переносимости на различные платформы — от ЦОД-мэйнфреймов до смартфонов — Java получил широкое признание. Сегодня насчитывается более 3 миллиардов устройств, на которых работают Java-приложения.
Java широко используется как в разработке сайтов и приложений, так и в обработке больших данных. Он также нашел применение в бэкенде некоторых популярных сайтов, в том числе Google, Amazon, Twitter и YouTube.
Современные Java-фреймворки, такие как Spring, Struts и Hibernate, приобрели массу поклонников. Поскольку Java используют миллионы разработчиков по всему миру, изучить этот язык не проблема. К тому же Java-программисты сформировали обширное онлайн-сообщество и поддерживают друг друга в решении проблем.
Kotlin
Kotlin — это язык программирования общего назначения, первоначально разработанный и представленный как Project Kotlin компанией JetBrains в 2011 году. Первая его версия была официально выпущена в 2016 году. Он совместим с Java и поддерживает функциональные языки программирования.
Kotlin широко используется для разработки Android-, веб-, десктоп- и серверных приложений. Kotlin был создан, чтобы превзойти Java, и программисты, использующие этот язык, ценят его преимущества.
Большинство приложений Google основаны на Kotlin. Среди многих компаний, использующих Kotlin в качестве языка программирования, стоит упомянуть Coursera, Pinterest и PostMates.
PHP — это язык программирования с открытым исходным кодом, созданный в 1990 году. Многие веб-разработчики считают необходимым изучить PHP, поскольку на этом языке создано более 80% сайтов в интернете, включая такие известные платформы, как Facebook и Yahoo.
Разработчики в основном используют PHP для написания скриптов на стороне сервера. Но он также годится для создания скриптов командной строки, а высококвалифицированные специалисты PHP-программирования применяют его для разработки десктопных приложений.
PHP считается относительно легким языком для изучения начинающими разработчиками. PHP-профессионалы имеют доступ к нескольким специализированным онлайн-сообществам, что обеспечивает им поддержку и облегчает получение ответов на вопросы.
Язык C#, разработанный компанией Microsoft, приобрел известность в 2000-х годах благодаря поддержке концепций объектно-ориентированного программирования. Это один из наиболее часто используемых языков программирования для платформы .NET Framework. По словам Андерса Хейлсберга, создателя C#, этот язык больше похож на C++, чем на Java.
C# идеально подходит для Windows-, Android- и iOS-приложений, поскольку использует интегрированную среду разработки Microsoft Visual C++. C# используется в бэкенде нескольких популярных сайтов, таких как Bing, Dell, Visual Studio и MarketWatch.
Swift
Несколько лет назад Swift попал в топ-10 популярных языков программирования по результатам ежемесячного рейтинга TIOBE Index. Этот язык был разработан компанией Apple в 2014 году для создания Linux- и Mac-приложений.
Swift легко изучается, обладает открытым исходным кодом и поддерживает почти все функции языка программирования Objective-C (объектно-ориентированной версии C). По сравнению с другими языками Swift требует меньше навыков по созданию кода, который к тому же можно писать через IBM Swift Sandbox и IBM Bluemix.
Swift нашел применение в таких популярных приложениях для iOS, как WordPress, Mozilla Firefox, SoundCloud, и даже в игре Flappy Bird.
R — это язык с открытым исходным кодом, который является версией языка S. Большая часть кода, написанного на S, работает на R без изменений.
Приложения, созданные на R, используются для обработки статистической информации, включая линейное и нелинейное моделирование, расчеты, тестирование, визуализацию и анализ. R-приложения могут взаимодействовать с рядом баз данных и обрабатывать как структурированные, так и неструктурированные данные.
R не так прост для новичков, как некоторые языки из этой подборки. Однако, подобно другим языкам с открытым исходным кодом, R может похвастаться активным онлайн-сообществом разработчиков, что является большим плюсом при овладении новыми навыками программирования.
Если вы хотите начать с изучения языка, который можно относительно легко освоить, обратите внимание на Ruby. Этот язык разработан в 1990-х годах и, по замыслу создателей, должен был предоставить IT-сообществу более удобный синтаксис и при этом оставаться гибким с точки зрения объектно-ориентированной архитектуры, поддерживающей процедурные и функциональные нотации программирования.
Реализованный на Ruby фреймворк для создания веб-приложений известен как Ruby on Rails (RoR). Программисты хвалят Ruby за то, что на нем легко писать код, а изучить его можно довольно быстро. Эти качества привели к появлению большого сообщества Ruby-разработчиков и растущему интересу к языку среди начинающих программистов.
Рейтинг языков программирования 2023: с чем работают, изучают, о чем мечтают программисты
DOU составил рейтинг языков программирования-2023 на основе ежегодного опроса более 9000 IT-специалистов. Рассказываем, на каких языках сегодня наиболее активно пользуются программисты.
DOU составил рейтинг языков программирования-2023 на основе ежегодного опроса более 9000 IT-специалистов. Рассказываем, на каких языках сегодня наиболее активно пользуются программисты.
JavaScrip — #1 для коммерческого использования
В этом году самым популярным языком остается JavaScript — 19% разработчиков пишут на нем коммерческие проекты. Далее — Java (14%) и Python (13%). Последняя впервые среди самых популярных. С минимальным отрывом за Python следуют C# и TypeScript.
Аналитики отмечают стремительный рост популярности TypeScript. При этом это не только миграция JavaScript-проектов, поскольку JavaScript тоже стали чаще использовать.
TypeScript все больше становится языком выбора для новых проектов как на Back-end, так и в Full Stack разработке.
Кроме того, резко возросла популярность Python, разместившаяся на третьем месте после трехлетнего спада. Возможно, это связано со второй волной интереса к анализу данных.
Что видно из другой части списка: на SalesForce Apex пишут чуть больше, чем на 1С, впервые снизилась доля Go, замедлился рост популярности Dart.
Вот как менялась популярность языков программирования за 12 лет.
Что по бэкенду и фронтенду
На бэкенде, по данным исследования, возросла доля как TypeScript, так и JavaScript (хотя основным языком еще остается Java), TypeScript уже используют чаще JavaScript. Доля PHP уменьшается, но язык еще входит в тройку самых популярных, вероятно, Python заменит его в следующем году.
Во фронтенде все достаточно ожидаемо, однако становится заметной доля фронтендов на C# (Blazor) и Dart (Flutter Web). Видно, что переход с JavaScript на TypeScript все же происходит.
Основной сегмент фулстек-разработки еще на C# с ASP.NET, но сектор JavaScript/TypeScript суммарно уже больше. Распределение далее показывает те же тенденции, что и в бэкенде.
В области анализа данных Python остается вне конкуренции.
Удивляет аналитиков рост доли R и отсутствие заметной доли языка Julia (кстати, я в этом году переписал скрипты для этого опроса с R на Julia — стало лучше).
Сфера мобильной разработки приносит нам некоторые неожиданности, такие как одновременное увеличение доли Kotlin и уменьшение доли Swift, что отражает соотношение разработки на Android и iOS. Еще интересно, что Flutter сегодня чаще используют, чем React Native, в сегменте мультиплатформенных мобильных приложений.
Среди DevOps основным языком по-прежнему является Python. Ну и Embedded-разработка достаточно консервативна. По-прежнему большинство проектов написано на C и C++, но видно, что с ростом мощности встроенных систем появилось место и для Python. Еще небольшой сегмент Embedded-разработки на Java — microcards — сейчас почти исчез.
Какой язык любят программисты
Среди предпочтений разработчиков видим те же тенденции, что и в главном блоке. Разве что переход от JavaScript к TypeScript более заметен.
Интересная ситуация в Embedded-специализации: там большинство людей думает, что новый проект лучше начинать на C++, также третьим наиболее подходящим языком является Rust, хотя реальных Embedded-проектов на Rust еще нет.
На этот раз на любимом языке оказалась Swift. В зоне риска ожидаются языки предыдущих веков. Время, когда о засилье Pascal будут упоминать как о «золотых временах», еще не наступило.
Какой следующий язык выберут те, кто сейчас пишет на Erlang? Из трех заявок две на Go и одна на Elixir. А вот с 1 °C больше всего планируют перейти на Python, C# и Java. Для языков программирования баз данных наиболее частой альтернативой является Python.
Наиболее парадоксальным представляется выбор следующего языка пользователями PHP — это Go, хотя ниша разработки на Go заметно другая.
Какой язык учить
Около трети респондентов планируют выучить еще один язык программирования в этом году. По-прежнему рекордсменом является Go, далее — Python и Rust.
Большинство планирует выучить следующий язык самостоятельно или с помощью коллег. Обращаться к профессиональным преподавателям в дополнение к самостоятельному изучению есть в планах примерно 24% респондентов, а 6% будут искать курсы и профессиональных преподавателей.
В настоящее время у большинства новичков на первом языке программирования является JavaScript, но также заметно растет роль Python. С одной стороны, возможно, это отображение того, что Python больше подходит для обучения, чем JavaScript, с другой стороны, данные показывают, что большинство из тех, для кого JavaScript был первым языком программирования, сейчас работает в экосистеме JavaScript/TypeScript, а для кого Python — на Python, так что, возможно, это просто распределение траекторий обучения.
В дополнение к основной
Конечно, все работают с базами данных. Картинка ниже немного отличается от прошлогодней из-за смены методологии — теперь мы объединили все языки БД в DB.
Все остальное отражает общие тенденции.
В опенсорс-проектах принимают участие около 30% участников опроса (это меньше, чем в прошлом году).
Интересно выделить те языки, где доля в опенсорс-проектах больше, чем в коммерческих. Если мы отсортируем языки по такому критерию, то увидим последовательность: Haskell, Objective-C, Rust, R, C и Closure.