Рейтинг языков программирования tiobe: январь 2020

Python

Очень популярный сегодня язык программирования. И программисты Python очень востребованы. Язык достаточно простой. Но с его помощью можно создавать очень сложные программы. И здесь не стоит заблуждаться — простой язык не означает простоту обучения. Чтобы стать профессионалом вам придётся приложить немало усилий.

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

Где учиться:

  • Python: быстрый старт — краткий курс “молодого бойца”

Другие рейтинги Stack Overflow

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

В этом рейтинге с гигантским отрывом победило облако Amazon Web Services – за него проголосовало 30 тыс. респондентов. На втором месте оказалась Google Gloud (17 тыс. голосов), на третьем Microsoft Azure, на которой теперь работает сервис Windows 365.

Самыми популярными фремворками, согласно опросу, стали Svelte, ASP.NET Core, FastAPI, React.js, Vue.js, Express, Spring, Ruby on Rails, Angular, Django, Laravel и Flask. Самым популярным кросс-платформенным редактором кода оказался Microsoft Visual Studio Code. Он получил 58 тыс. голосов, а на втором месте расположился Neovim с 4000 голосов.

Начинаем с основ

Сегодня говорим о том, что такое язык программирования.

Языки программирования (ЯП) похожи на языки человеческого общения, но устроены проще. Выучить язык программирования можно за несколько месяцев. Опытные программисты могут изучить новый язык за несколько недель. В мире уже более 8000 языков программирования. Нет такого консенсуса, как «лучший язык». Хотя есть языки, которые дают фундаментальные знания, С++ например. И есть отслеживание популярности языков, в частности, TIOBE Index.

Ядро из двух десятков наиболее популярных языков состоит из: Java, C, Python, C++, Visual Basic .NET, JavaScript, C#, PHP, SQL, Objective-C, Assembly language, MATLAB, Perl, Delphi/Object Pascal, R, Ruby, Visual Basic, Go, Groovy, Swift. Есть еще 2-3 десятка довольно широко используемых языков, таких как Scala, Lua, Fortran, COBOL, Lisp, Prolog, Rust, Kotlin, Eglang, Haskell и др. Со временем разработчик знает и сочетает несколько языков для разных задач и платформ.

У языков программирования есть авторы, правила, спецификации, стандарт конкретного языка и разные реализации / воплощения стандарта. Реализации языка влияют на то, как разработчики пользуются им.

Языки программирования – по сути, инструмент сторителлинга. У вас есть идея, «сюжет», и на языке программирования вы пишете структурированное «произведение», которое компьютер сможет считать, интерпретировать и выполнить. То есть «оживить» исходный код в виде программы, сайта, приложения и т. д., где доступен ряд действий. (Если образно, то напоминает придумывание сюжета, работу над архитектурой истории, написание добротного сценария без ляпов, овладение специальными инструментами для съемки, сам съемочный процесс, монтаж и демонстрацию кино, причем интерактивного.)

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

Язык программирования – это набор правил, которые определяют, как написанная компьютерная программа выглядит и что компьютер может сделать под ее управлением. Программа представляет собой код, написанный по правилам конкретного языка программирования. Код, из которого состоит программа, называют «исходный код».

Язык программирования – это средство общения человека и компьютера. При этом код на языке программирования пишется так, чтобы он был понятен человеку. Один из критериев хорошего кода – программист читает его и понимает, что это, для чего нужно и как будет работать.

Сегодня код, написанный на популярных языках программирования, для удобства выглядит как текст, состоящий из строк на английском языке. Для того чтобы исходный код смог прочитать и выполнить компьютер, он «переводится». Об этом Almamat Blog расскажет в другом выпуске IT-ликбеза.

В спецификациях языка прописаны его синтаксис и семантика. Каждый язык программирования имеет свой словарь/алфавит. Цепочки и последовательности символов образуют предложения, построенные по правилам языка программирования, – это грамматика. Синтаксическая структура языка служит для определения смысла написанного кода.

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

Синтаксис языка программирования – это порядок слов, форма записи; правила построения сообщений, комбинирования символов и слов. Синтаксис ЯП проще, чем синтаксис человеческих языков общения.

Итак, в программировании слова с каким-то начальным смыслом комбинируются по правилам, чтобы придать действиям смысл.

C# (2000)

Когда компания Microsoft представила C#, многие назвали это «ответом Microsoft на Java». Разумеется, между этими языками хватает различий (и за прошедшие 20 лет их число лишь увеличилось), но некоторая перекличка действительно есть, и знание любого из этих языков помогает быстрее освоить другой.

Изначально самая заметная разница была не в самих языках (в синтаксисе или рантайме), а в сферах их применения. Microsoft создал C# как часть своей платформы .NET, связанной с Windows. И если нужно было сделать программу для Windows, то напрашивающимся вариантом выглядел .NET. А вот если такую программу, чтобы запускалась и на Windows, и на Linux, и на Mac — тут могла помочь Java.

Но с годами ситуация изменилась: у .NET появилась новая версия .NET Core, уже не привязанная к конкретной операционной системе, а люди стали реже устанавливать программы на компьютер и больше делать в браузере. Это отчасти сблизило сферу применения языков: если посмотреть сейчас вакансии с названием C#, там, как и у Java, часто будет написано что-то вроде «Построение бэкенда для веб-приложений».

Впрочем, это не единственный вариант. В играх на движке Unity тоже используют C#, а это самый популярный движок в мире — так что в геймдеве язык тоже активно представлен (в отличие от Java).

Фреймворки разработчика

Исследователи CodinGame также оценили самые популярные среди программистов фреймворки для разработки, среди которых в настоящее время находятся Node.js, React и .NET Core.

Лидером рейтинга стала библиотека пользовательского интерфейса JavaScript React: 59% технических специалистов по подбору персонала заявили, что ищут разработчиков, которые знают, как создавать приложения в среде React. Несмотря на это, только 28% разработчиков, опрошенных CodinGame, заявили, что знают, как работать в React, а это означает, что соискатели могут сделать себя более привлекательными для рекрутеров, освоив платформу.

Та же тенденция характерна для Node.js и .Net Core, хотя и в меньшей степени. Половина рекрутеров заявили, что знание JavaScript-фреймворка Node.js очень желательно, хотя только 36% разработчиков сообщили, что знакомы с ним. Для среды разработки C# и C++ .NET Core эти цифры составили 34% и 23% соответственно.

Еще один фреймворк, который входит в тройку лидеров среди рекрутеров, – это Angular2, веб-платформа Google на основе TypeScript для создания мобильных и настольных приложений. 41% рекрутеров сообщили, что ищут специалистов по Angular2, но только 17% разработчиков заявили, что знают структуру.

CodinGame прогнозирует, что программисты будут пользоваться большим спросом в 2021 году, поскольку компании, которые столкнулись с повышенными потребностями в управлении облачной инфраструктурой или иным образом перешли в облако в результате пандемии COVID-19.

Спрос может быть настолько высоким, что рекрутеры прогнозируют глобальный дефицит: 43% опрошенных HR-профессионалов заявили, что им не удастся найти квалифицированных DevOps-специалистов для своих технических команд в этом году. Бэкенд-разработчики и разработчики полного цикла – самая сложная позиция для заполнения в 2021 году.

Python

Язык завоевал популярность благодаря понятному синтаксису и удобным библиотекам (набор готовых функций, объектов и подпрограмм), которые делают его гибким. Программы на Python легко читать и писать, поэтому его часто выбирают новички. Разработчикам со стажем он помогает решать разные задачи: от автоматизации рутинных операций до создания нейросетей и экспериментов в Data Science.

Основные преимущества Python:

  • Это объектно-ориентированный язык с открытым кодом. Это значит, что любой разработчик, заинтересованный в развитии языка, может поучаствовать в его разработке.
  • Возможность асинхронного программирования. Когда разрабатывают сложную программу, часто имеют дело с длительными операциями, например выгружают большие массивы данных. Когда возможности асинхронного программирования нет, приходится ждать, пока действие выполняется, — в этом же потоке делать другие действия нельзя. В Python такой проблемы нет.
  • Много библиотек, которые помогают решать разные задачи: от обработки данных до визуализации.
  • Кроссплатформенность. Программы на Python одинаково работают на разных операционных системах, их не нужно каждый раз адаптировать.

Python применяется в разных областях, поэтому, зная его, можно идти и в разработку веб-приложений, программ или игр, и в Data Science.

R

R обычно используют в связке с Python. Он подходит для статической обработки данных и работы с графиками. Под R есть несколько пакетов для машинного обучения — например, benchm-ml, CARET, KernLab.

Однако R может и осложнить решение простых задач. В нём существует множество полезных функций — согласно CRAN, для R создано больше 11 тысяч пакетов, а это сотни тысяч функций. Привычной системы меню, как в Excel, нет. Новичку легко запутаться в таком количестве команд. Например, где взять функцию для проведения какого-нибудь статистического анализа? Придётся пролистать немало документации.

Искусственный интеллект и аналитика

Хотя тема ИИ кажется чем-то далёким, люди занимаются этим уже сейчас, используя Java, C++, R и Python. Наибольшей популярностью пользуется именно последний — около 6 300 вакансий в России.

Задача разработчика ИИ — написать программу, которая обрабатывает информацию, следуя определённым алгоритмам. Пропуская через себя большой объём данных, программа учится выполнять какие-то задания.

Например, приложению дают проанализировать огромное количество портретов, а после просят создать собственную версию. Комбинируя увиденные лица, ИИ генерирует новые.

Посмотрите пример на сайте thispersondoesnotexist.com. Есть и другой аналогичный сайт, но на нем генерируются фотографии кошек — thiscatdoesnotexist.com. С людьми получается явно лучше.


Портрет человека, сгенерированный нейросетью


Изображение кошки, сгенерированное нейросетью

JavaScript

Кому подходит: начинающим программистам и тем, кому нужен быстрый старт.

Средняя зарплата на начало 2021 года: 133 тысячи (в прошлом году — 110 тысяч).

За год почти ничего не изменилось — JavaScript всё ещё самый популярный язык веб-разработки. Главное его преимущество — веб-программисты нужны везде, даже там, где делают мобильные приложения и игры. Потому что существенная часть игр и мобильных приложений сделана на технологиях веба.

Отдельный большой плюс — у JavaScript-разработчиков большое сообщество и в интернете можно найти ответ на любой вопрос по языку.

️ Также существует алкогольная игра: берёте любое слово из толкового словаря английского языка, добавляете к нему .js и ищете в поисковике, есть ли такая библиотека. Если есть — выпиваете. Победит тот, кто отключится последним. Помните, что употребление алкоголя вредит вашим когнитивным способностям, снижает продуктивность, алкоголь — депрессант, а трезвость — норма вашей жизни. 

GitHub

Самый популярный и авторитетный портал для работы с кодом тоже составляет рейтинги языков, но только по годам. Подсчет ведется по количеству размещенных исходников за последние 12 месяцев. Рейтинг, опубликованный в начале 2019 года:

  1. JavaScript.
  2. Java.
  3. Python.
  4. PHP.
  5. C++.
  6. C#.
  7. TypeScript.
  8. Shell.
  9. C.
  10. Ruby.

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

Swift

Логотип Swift

Теперь перейдем к конкретизированным и мобильным разработкам, каким является язык программирования Swift. Язык Swift используют для разработки приложений под iOS и macOS. Очень популярен среди разработчиков. Учитывая, что Apple владеют значительной частью мобильного рынка, данный язык очень актуален!

Платформа Разработка под iOS и macOS
Обучение Относительно легко
Популярность Популярен. №9 в списке PYPL.
Средняя зарплата (мес) 2000$
Преимущества Относительно лёгок в освоении. Самый популярный язык программирования под iOS. Пока производство Apple живо, язык будет востребован всегда.
Недостатки Отсутствуют.

C (1972) и C++ (1985)

C++ изначально появился как развитие языка C, поэтому я объединил оба в одном пункте. Можно сказать, что это дедушка и отец остальных языков в этом списке: они здесь старше всех и очень повлияли на другие языки.

Сейчас они выглядят не точно так, как в момент появления (у C++ каждые три года принимают новый стандарт, недавно был принят C++20), и с годами всё сильнее различаются. Но идеи, заложенные ещё в начале, продолжают накладывать свой отпечаток. Когда создавался C, компьютеры были куда менее производительными, так что их ресурсы приходилось экономить куда старательнее. И тогда всё было «ближе к железу»: программирование в большей степени, чем сейчас, требовало понимать, как физически работает компьютер.

В результате теперь по сравнению с более современными языками у С и С++ репутация «хардкорных»: требовательных к программисту, зато позволяющих выжать из железа всё. И зачастую используют их как раз там, где действительно нужно выжимать как можно больше: например, в играх. Или в софте не для привычных компьютеров, а для различных других устройств, в которых зачастую маломощные процессоры — от автомобилей до банкоматов.

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

Вступление

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

Поэтому для начала надо понять свои задачи

Из-за чего вообще встал вопрос выбора языка? Захотелось делать что-то конкретное (игры, сайты, мобильные приложения)? Или важно как можно скорее получить работу в IT любой ценой, что бы ни пришлось кодить? Или хочется просто попробовать «посмотрим, интересно ли мне окажется, а там как пойдёт»?. Если хочется заниматься чем-то определённым — тогда важнее не теоретические сравнения языков, а то, какие используются конкретно в этой области

Часть информации об этом можно получить из текста ниже, но есть смысл и погуглить «what languages are used for %интересующая_область%»

Если хочется заниматься чем-то определённым — тогда важнее не теоретические сравнения языков, а то, какие используются конкретно в этой области. Часть информации об этом можно получить из текста ниже, но есть смысл и погуглить «what languages are used for %интересующая_область%».

Если важно как можно скорее пройти путь до получения работы, тогда тоже важнее текстов-сравнений может оказаться другая вещь. Стоит посмотреть на сайте вроде HeadHunter вакансии Junior-разработчиков своего города: какие языки чаще всего упоминаются в них?. А если нет ни спешки, ни определённого запроса, тогда спрошу так: есть ли потребность делать что-то такое, что пользователь видит глазами? Работа над веб-сервисами делится на фронтенд и бэкенд

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

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

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

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

Kotlin (2011)

Этот язык создала в Санкт-Петербурге компания JetBrains. Он совместим с Java, поэтому Java-проекты можно постепенно переводить на Kotlin: не переписывая всё разом, а постепенно добавляя туда Kotlin-код. И многие попробовавшие его Java-разработчики захотели к нему перейти, ощутив, что тут нет «скуки и многословности», всё выразительнее и современнее.

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

JetBrains совершенно не хотят останавливаться на Android и метят с Kotlin в самые разные ниши, даже те, где не представлена Java. Каких-то успехов в этом компания добивается, с каждым годом язык становится популярнее, но от других вроде той же Java пока что сильно отстаёт, и насколько ещё ему получится вырасти — открытый вопрос. Так что, если учить Kotlin, в Android-разработке это точно очень пригодится, а в других областях — как повезёт.

Веб-разработка

Веб-разработчики, пожалуй, самые востребованные. И снова деление: одни разрабатывают серверную часть (backend), другие создают пользовательскую (frontend). Серверная часть сайта отвечает за обработку запросов, взаимодействие с базами данных, хранение файлов, обеспечение безопасности и так далее.

Наиболее распространён среди backend-разработчиков язык PHP — на нём написано около 79% всех сайтов в интернете. В России открыто около 5 000 вакансий для PHP-программистов. Он пригоден для работы небольших сайтов, которые не нужно долго поддерживать. Если же проект рассматривается как долгосрочный, то лучше выбрать Java — его любят в финансовой, банковской и государственной сферах.

Поэтому в вакансиях для Java-разработчиков есть место и создателям веб-приложений. А PHP-специалисты нужны именно для создания сайтов. В некоторых странах о нём забыли совсем — например, в Германии. Учтите это, если хотите устроиться разработчиком за границей.


Frontend — разработка видимой части сайта (интерфейс); backend — разработка серверной части (обработчик).

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

Если же говорить о визуальной части сайта, тот тут у JavaScript альтернатив нет. Это язык скриптов, реакций на действия пользователя. JavaScript — самый востребованный язык из нашего списка: в России около 10 000 вакансий для специалистов по JS.

SQL

SQL занимает первое место в списке, что не удивительно. СУБД на основе таких технологий, как MySQL, PostgreSQL и Microsoft SQL Server широко используются в бизнес-сфере, больницах, банках и образовательных учреждениях по всему миру. Практически каждый человек с доступом к компьютеру или к мобильному устройству рано или поздно сталкивается с решениями на SQL. К примеру, многие мобильные приложения, включая разработанные Google, мобильные приложения Skype и DropBox, используют библиотеку SQLite.

ПО ТЕМЕ: 74 здоровые привычки для хорошего самочувствия, здоровой психики и отличных отношений.

Python

Это популярный язык, на котором можно писать сайты, — и в этом он соперничает с PHP. Но намного интереснее с помощью Python заниматься анализом данных и машинным обучением. Хотите развивать искусственный интеллект — попробуйте его.

Для начинающего — от 35 тысяч рублей. Средний уровень — от 80 тысяч. Специалист с опытом от трех лет — 90–210 тысяч рублей. Если понимать в математике и разбираться в нейросетях, доход будет выше.

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

Особенности:

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

Недостатки:

  • Две актуальные версии — вторая и третья. Проблема в том, что библиотеки от одной версии не подходят к другой. Можно столкнуться с несовместимостью кода.
  • Неявная типизация. Уже знакомая вам проблема.
  • Низкая производительность. Многие задачи язык выполняет медленно, много времени разработчик тратит на оптимизацию кода.

Стек:

  • IDE: Pycharm;
  • Cython-синтаксис: для написания компилируемого кода;
  • анализ данных: iPython / jupyter, Anaconda, Matplotlib, Numpy;
  • нейросети: Scikit-learn, Keras, Tensorflow;
  • веб-разработка: Django, Tornado, Flask;
  • менеджер зависимостей: pip, conda.

Обратите внимание: разработчики часто спорят, нужна ли для программирования математика. Разбираться в ней полезно

Но обязательна она только там, где вы разрабатываете что-то для математиков. Если вы создаете сайт, например, про собак, то формулы вам вряд ли пригодятся — скорее, лучше выучить JavaScript с PHP и узнать побольше о собаках.


Пример синтаксиса Python — программа предсказывает ваш факультет в Хогвартсе

Самые популярные языки программирования

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

Топ TIOBE основывается на количестве поисковых запросов, обучающих курсов и специалистов. Здесь лидеры выглядят так:

Рейтинг IEEE Spectrum анализирует частоту поисковых запросов, число проектов на GitHub, а также упоминания в Twitter и главных IT-порталах сети. Здесь в пятёрке лидеров — Python, C++, Java, C, C#.

Если ориентироваться на данные российского сайта HeadHunter, картина меняется. Наглядно она представлена таблицей из статьи в корпоративном блоге HeadHunter на «Хабре»:

Учтены упоминания языков в любом пункте вакансии.

Несоответствие данных

Показания Tiobe идут вразрез со сведениями в других рейтингах самых популярных языков программирования. Таких списков несколько, но к наиболее авторитетным из них, помимо Tiobe, относится рейтинг журнала по электротехнике IEEE Spectrum.

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

Свой рейтинг имеется и у аналитической компании RedMonk. При его составлении авторы рассматривают использование языка в программных проектах, размещенных на GitHub, и учитывают обсуждения на крупнейшем форуме для разработчиков Stack Overflow.

Рейтинг RedMonk в разрезе лет

В этом рейтинге за июнь 2021 г., как и у Tiobe, Python находится на второй строчке, однако впереди здесь вовсе не С, которому досталось лишь десятое место. Лидером в данном перечне является JavaScript, Java получил «бронзу», а четвертую и пятую позицию занимают PHP и CSS.

Java

Java — консервативный и надёжный язык. Не путайте её с JavaScript, у них похожи только названия, а на практике они во многом противоположны.

На Java пишут сложное ПО: промышленные и банковские системы, как раз всё то, что не пишут на JavaScript. Помимо этого, огромное количество десктопных приложений, приложений на Android и серверных программ написано именно на Java.

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

Плюсы Java

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

Спорные стороны

  • C одной стороны, написанный код легко поддерживать и развивать, но обратная сторона в том, что на Java сложно писать даже простые вещи. Например, чтобы прочитать файл по URL-ссылке, в PHP вам достаточно одной строчки кода, а в Java понадобится 5-10.
  • Java — строгий, консервативный и надёжный язык, в котором нет неявных конструкций, но с другой стороны, это значит, что код может получиться громоздким и многословным.

Это можно сравнить с юридическим документом, где всё-всё подробно прописано.

Зарплаты и востребованность

Java — популярный и сложный язык, поэтому для Java-разработчиков всегда достаточно вакансий, а зарплаты достаточно высокие. Например, средняя зарплата по Москве — 115 тысяч рублей. Даже новичок может рассчитывать на зарплату от 50 до 87 тысяч.

На чем основан данный рейтинг

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

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

Кто-то основывается на частоте упоминаний языка в запросах поисковых систем, кто-то на количестве заданных вопросов по конкретному языку на специализированных форумах, а кто-то на основе количества проектов, реализованных на том или ином языке.

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

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

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

Источники данных (официальные показатели, индексы и рейтинги языков программирования):

  • TIOBE – индекс основывается на данных поисковых систем Google, Bing, Yahoo;
  • PYPL (PopularitY of Programming Language) – рейтинг основывается на данных поисковой системы Google;
  • IEEE Spectrum – Interactive: The Top Programming Languages – рейтинг основывается на 11 показателях из 8 источников: поиск Google, упоминания в Twitter, количество репозиториев на GitHub, количество вопросов на Stack Overflow, количество сообщений на Reddit, количество сообщений Hacker News, количество вакансий на CareerBuilder и на IEEE Job Site;
  • GitHub – основывается на статистике использования языков программирования в репозиториях;
  • Stack Overflow – основывается на количестве вопросов, связанных с языком программирования;
  • W3Techs – основывается на количестве сайтов с использованием того или иного языка программирования;
  • Кроме все прочего учитывалась частота упоминаний в вакансиях на HeadHunter. В каких-то спорных моментах, конечно же, были подключены личные предпочтения, знания и мнение.

PHP

Логотип PHP

Если с помощью JavaScript пишутся скрипты для лицевой части сайта (front-end), то с помощью PHP пишется серверная часть. Этот блог и все остальные блоги на WordPress, написаны с помощью этого языка. Кроме того, исходя из заявлений W3Techs, php используют 79% сайтов из опрошенных. Учитывая то, что подавляющее число блогов создается на WordPress, то php еще очень долго будет жить.

Платформа Серверная часть
Обучение Лёгок в освоении
Популярность Популярен. №6 в списке PYPL.
Средняя зарплата (мес) 1700$
Преимущества Знание языка = знание структуры большей части сайтов в интернете. Лёгок в учебе и легко найти работу.
Недостатки Популярность падает, маленькими шагами, но падает. Особенно на фоне новых языков, таких как Python.

Заключение

Если о разработчиках что-то известно достоверно, то вот что: они любят дискутировать о языках программирования и часто расходятся во мнениях.

И к этому посту почти наверняка появятся комментарии, что в нём многое некорректно, упущено что-то значимое и вообще надо было всё написать иначе.

Что если я заявляю «надо объяснять главные различия», то надо было обязательно рассказать про типизацию.

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

В общем, очень вероятны критические комментарии — и это замечательно: в одиночку сложно объять всю индустрию, так что чем больше людей с разным опытом дополнят текст своим видением, тем более полной окажется итоговая картина. Я даже намеренно упустил один популярный язык, про который недостаточно знаю, чтобы хорошо его описать — думаю, его сторонники сами придут в комментарии и восполнят пробел.