Экосистема разработки в 2020 году

Уже в четвертый раз мы провели исследование экосистемы разработки и готовы поделиться результатами. В начале 2020 года мы опросили 19 696 человек, чтобы отследить последние тенденции в выборе инструментов, технологий, языков программирования и узнать о других интересных аспектах мира разработки.

The State of Developer Ecosystem 2020

Основные выводы

Java

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

JavaScript

наиболее широко используемый язык программирования.

Веб-сайты

разрабатывают чаще всего.

Веб (бэкенд)

самая популярная платформа.

Go, Kotlin, Python

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

Python

обошел Java в списке используемых языков. Кроме того, это самый изучаемый язык. За последние 12 месяцев 30% респондентов начали или продолжают изучать Python — даже больше, чем в прошлом году (27%).

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

Пользовались в течение последних 12 месяцев
Планируют освоить или начать активно использовать
JavaScript
70% / 4%
HTML / CSS
61% / 1%
SQL
56% / 3%
Python
55% / 9%
Java
54% / 4%
Языки сценариев командной оболочки
39% / 2%
TypeScript
28% / 8%
C++
27% / 4%
PHP
27% / 2%
C
23% / 2%
C#
22% / 4%
Go
19% / 13%
Kotlin
17% / 10%
Dart
9% / 5%
Swift
9% / 6%
Ruby
8% / 3%
Rust
7% / 8%
Matlab
5% / 1%
R
5% / 3%
Scala
5% / 3%
Visual Basic
5% / 1%
Язык ассемблера
4% / 1%
Groovy
4% / 1%
Objective-C
4% / 1%
Lua
3% / 1%
Haskell
2% / 2%
Perl
2% / 1%
Clojure / ClojureScript
1% / 1%
CoffeeScript
1% / 0%
Delphi
1% / 0%
Elixir
1% / 1%
F#
1% / 1%
Julia
1% / 1%
Другое
1% / 3%

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

Распределение по основным языкам

на
с
Значение
-
JavaScriptJavaPythonSQLPHPC++C#TypeScriptGoKotlin
41%43%42%46%43%44%51%51%59%54%Не планирую
16%15%17%15%14%12%10%15%0%12%Go
11%14%11%11%11%10%10%12%6%-Kotlin
11%11%-13%13%7%10%9%3%9%Python
9%7%10%6%6%12%8%12%17%8%Rust
13%7%8%8%11%6%8%-7%8%TypeScript
6%7%8%5%6%7%5%5%4%9%Swift
7%5%6%5%6%4%4%6%5%8%Dart
4%5%6%4%3%-5%2%2%2%C++
-5%6%4%2%6%4%0%1%3%JavaScript
4%0%5%4%6%6%4%2%4%0%Java
4%4%6%3%3%6%-2%2%2%C#
4%3%4%3%5%5%3%2%2%2%Ruby
3%3%5%3%2%5%2%2%2%1%R
3%3%4%-2%4%2%1%1%1%SQL
2%4%4%3%2%3%2%3%3%3%Scala
3%3%3%2%2%3%2%1%2%0%Языки сценариев командной оболочки
15%17%20%16%13%22%17%12%14%13%Другое
00.59
JavaScript
Java
Python
SQL
PHP
C++
C#
TypeScript
Go
Kotlin
на
с
Значение
-
Не планируюGoKotlinPythonRustTypeScriptSwiftDartC++JavaScriptJavaC#RubyRSQLScalaЯзыки сценариев командной оболочкиДругое
00.59

Какие языки программирования вы могли бы назвать основными в своей работе?

Выберите не более 3 языков.

39%37%31%22%17%15%13%13%12% 7% 7% 7%JavaScriptJavaPythonHTML / CSSSQLPHPC++C#TypeScriptGoKotlinЯзыки сценариев командной оболочки
Все результаты

Популярность TypeScript неуклонно растет. В 2017 году им пользовались 12% опрошенных и лишь для 1% он был основным языком, а в 2020 году эти цифры составляют 28% и 12% соответственно.

В каких операционных системах вы занимаетесь разработкой?

60%Windows
50%Linux
44%macOS
1%Другое

Под какие платформы вы разрабатываете приложения?

69%57%35%32%28% 9% 5% 2% 1% 1%Веб (бэкенд)Веб (фронтенд)ДесктопРазработка мобильных приложенийСервер / инфраструктураИнтернет вещей / встраиваемые системыЯ ничего не разрабатываюWebAssemblyИгровые приставки (Xbox, PlayStation, Nintendo и т. п.)Другое

Программное обеспечение какого типа вы разрабатываете?

Включая приложения на любом языке программирования для профессиональных и личных целей

54%36%30%23%23%19%17%16%12%11%10% 7% 6% 5% 3% 3% 5%СайтыУтилиты (небольшие приложения для узких задач)База данных / хранилище данныхСистемное ПОБиблиотеки/фреймворкиData Science / бизнес-аналитика / машинное обучениеIT-инфраструктураИнструменты для программированияРазвлекательное ПОФинансовые технологииИгрыДомашняя автоматизацияБезопасностьПроизводство аппаратного обеспеченияБлокчейнДополненная/виртуальная реальностьДругое

Программное обеспечение какого типа вы разрабатываете?

Распределение по основным языкам

Строка
Столбец
Значение
-
JavaScriptJavaPythonSQLPHPC++C#TypeScriptGoKotlin
76%52%51%62%81%34%55%72%55%44%Сайты
39%36%42%37%39%39%45%40%40%44%Утилиты (небольшие приложения для узких задач)
32%32%34%49%42%29%41%28%28%24%База данных / хранилище данных
24%26%23%29%24%25%31%25%30%23%Системное ПО
22%23%22%24%21%29%27%31%35%33%Библиотеки/фреймворки
16%20%34%24%13%25%17%17%18%14%Data Science / бизнес-аналитика / машинное обучение
16%18%19%21%20%13%20%18%34%17%IT-инфраструктура
15%16%18%15%15%22%16%19%22%20%Инструменты для программирования
13%12%12%8%14%14%13%13%11%15%Развлекательное ПО
12%15%11%15%7%6%12%15%14%14%Финансовые технологии
8%9%10%5%8%19%20%7%10%9%Игры
6%7%10%6%6%9%6%6%6%7%Домашняя автоматизация
5%7%8%6%5%8%6%5%10%7%Безопасность
3%5%7%3%3%13%6%3%4%4%Производство аппаратного обеспечения
4%3%4%3%3%4%2%3%5%4%Блокчейн
3%3%4%1%2%6%6%3%1%4%Дополненная/виртуальная реальность
4%5%4%4%5%7%6%5%4%9%Другое
00.81
JavaScript
Java
Python
SQL
PHP
C++
C#
TypeScript
Go
Kotlin
Строка
Столбец
Значение
-
СайтыУтилиты (небольшие приложения для узких задач)База данных / хранилище данныхСистемное ПОБиблиотеки/фреймворкиData Science / бизнес-аналитика / машинное обучениеIT-инфраструктураИнструменты для программированияРазвлекательное ПОФинансовые технологииИгрыДомашняя автоматизацияБезопасностьПроизводство аппаратного обеспеченияБлокчейнДополненная/виртуальная реальностьДругое
00.81

Под какие операционные системы вы ведете разработку?

84%Windows
60%Linux
39%macOS
8%Другое

Этот вопрос мы задавали только тем, кто разрабатывает десктопные приложения.

Участвуете ли вы в проектах с открытым исходным кодом?

44%20%16%11% 4% 3% 2%Нет, но хотелось быТакое было несколько разДа, несколько раз в годДа, регулярноНет, и не хочетсяЯ работаю над проектами с открытым исходным кодом весь рабочий деньЯ работаю над проектами с открытым исходным кодом полный рабочий день безвозмездно

Разработка мобильных приложений

Вопросы из этого раздела мы задавали только тем, кто занимается мобильной разработкой.

Под какие мобильные платформы вы разрабатываете приложения?

45%Android и iOS
41%Android
11%iOS
2%Другое

Нативные инструменты остаются самым популярным решением для мобильной разработки: ими пользуются две трети опрошенных. При этом половина разработчиков мобильных приложений выбирают кросс-платформенные технологии. Среди таких фреймворков React Native по-прежнему популярнее других: его предпочитают 42% респондентов.

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

42%39%18%18%14%11% 6% 5% 2%React NativeFlutterCordovaIonicXamarinUnityPhoneGapNativeScriptKotlin Multiplatform
Все результаты

Этот вопрос мы задавали только тем, кто использует кросс-платформенные технологии и фреймворки.

За прошедший год Flutter стал популярнее: его доля увеличилась на 9 процентных пунктов. В то же время Cordova, Ionic и Xamarin потеряли примерно по 10 процентных пунктов.

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

67%62%59%55%42%37%33%27%24% 8% 2% 2%Хранилище данныхСетевые соединенияМультимедиа (изображения, аудио, видео)Управление состоянием и навигациейСинхронизация данныхФайловый ввод-выводБезопасностьПлатежиВычисленияМашинное обучениеДругоеНет

Этот вопрос мы задавали только тем, кто разрабатывает мобильные приложения.

Большие данные

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

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

Какие платформы вы используете для анализа больших данных?

67%18%11% 6% 6% 4% 4% 1% 3%Не пользуюсь конкретной платформойGoogle CoLabGoogle AI PlatformDatabricksMicrosoft Azure HDInsightCloudera Data PlatformZeppelinQuboleДругое

Чаще всего для анализа данных не используются конкретные платформы.

Какие инструменты вы используете для обработки больших данных?

24%18%14%10% 4% 4% 2% 2% 1%Apache SparkApache KafkaApache Hadoop/MapReduceApache HiveApache FlinkDaskApache PigApache BeamApache Tez
Все результаты

Какой версией Spark вы пользуетесь?

51%34%14% 1% 4% 1% 3%2.42.32.0–2.21.xСпециальный дистрибутивДругоеНет

Где хранится большая часть ваших данных?

34%24%23%10% 5% 4%Внутренние серверыЛокальноAWSGoogle CloudAzureДругое

Какие программные пакеты вы используете для анализа и визуализации данных?

50%18% 5% 5% 3% 2%12%32%Электронные таблицы (Microsoft Excel, OpenOffice Calc, Google Таблицы и т. п.)TableauSASSPSSStatisticaStataДругоеНет

Подберите себе инструмент

Выберите свою технологию

Скачайте нужный инструмент

Попробовать бесплатно

Спасибо, что уделили время!

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

Присоединяйтесь к JetBrains Tech Insights Lab

Участвуйте в опросах и UX-исследованиях JetBrains, чтобы помочь нам улучшить наши продукты. Среди участников исследований разыгрываются призы.

Если у вас есть вопросы или пожелания, свяжитесь с нами по адресу surveys@jetbrains.com.

© JetBrains s.r.o., 2000—2020. Все права защищены.