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

Автор: Евгений Щербань, 06 октября 2016, 10:59

Мои студенты в калифорнийском Университете часто спрашивают, какой язык программирования является самым популярным? Оказалось, что ответ на этот простой вопрос выходит весьма сложным.

Для начала давайте разберемся, какие перспективы открывает информация. Если говорить о студентах, то после выпуска они хотят получить высокооплачиваемую работу, а не становиться никому не нужными специалистами по условной латыни. Что касается профессиональных кодеров, то они хотят понять, насколько актуальны их знания и не пришло ли время изучать новый язык. Наконец, если вы запускаете проект, то должны выбрать правильный язык, чтобы выполнить его максимально эффективно. Если ради двухмесячной работы вам нужно потратить 2 года на изучение языка, то это будет не лучшее решение, верно?

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

Что значит, самый популярный?

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

  • Количество упоминаний языка в поисковых запросах
  • Количество вакансий с упоминанием конкретного языка
  • Количество проданных учебников, обучающих владению нужным языком
  • Количество строк кода, написанное на языке
  • Количество проектов, написанных на языке и представленных на SourceForge, Freecode и GitHub
  • Количество постов на форумах и в группах, посвященных этому языку

К этому списку стоит добавить следующие пункты.

  • Количество обучающих курсов, посвященных этому языку
  • Количество видео на Youtube
  • Количество постов на Reddit и Stack Exchange

Думаю, вы уловили идею. Но популярность - это лишь вершина айсберга. Теперь давайте нырнем под воду и взглянем на его основание.

Различные метрики оценки

Даже с этим рейтингом на руках, студенты и компании хотят знать больше и быть уверенными в верности своего курса. Поэтому разнообразные сервисы составляют альтернативные рейтинги популярности языков. Например, IEEE Spectrum предлагает выбрать язык на основе ваших личных предпочтений. На манер создания персонажа в Fallout, вам выдают пачку ползунков вроде активности на GitHub или плотности новостей о языке на Hacker News, после чего индивидуально выбирают нужный язык или предлагают несколько вариантов.

На Coding Dojo лежат чарты популярности, составленные по данным сайта Indeed.com. Tiobe составляет рейтинги на основании данных своего поискового движка, а PyPl смотрит на популярность языка по количеству обучающих материалов Google. Но какой из этих чартов показывает самую достоверную картинку? На что нам ставить фишки - на черное или красное?

Окей, так какой язык самый популярный?

Пытаясь ответить на этот вопрос, я скомбинировал данные упомянутых выше источников в одну таблицу. Данные IEEE я разбил на категории: «trending» означает скорость роста популярности языка, «jobs» отвечает за количество вакансий на Dice.com и CareerBuilder, а блок «open» подсчитывает количество open source проектов. В итоге у меня получилась такая таблица.

И все равно ничего непонятно. Чтобы добраться до сердцевины нашего артишока, я свел данные всех 6 источников, но вынес за скобки Coding Dojo т.к. он показывает всего 10 языков. Затем я “взвесил” каждый язык в зависимости от его итогового места и количества упоминаний в каждом источнике. В итоге у меня получился такой топ-10.

Данные в таблице можно разделить на три кластера. В первом расположились Java, C, Python и C++, с которыми вы, без сомнения, должны познакомиться поближе, если планируете добиться серьезных результатов. Следом за ними идут JavaScript, C#, PHP и Swift. Закрывают десятку Objective-C и R.

О чем это говорит?

Первые 4 языка Java, C, Python и C++ являются универсальными и не требуют знакомства со специфическими программными платформами. Здесь все понятно. Куда интереснее обстоят дела во втором кластере. JavaScript и PHP - это, в основном, языки веб-кодинга, C# глубоко заточен для работы с продуктами Microsoft, в то время как Swift является основным языком программирования на платформе Apple. Как видим, языки из второго кластера выглядят более специфично.

И снова, что это нам дает? Если вы уже знакомы с принципами кодинга, то понимаете, что дело не только в языке. Язык - это полдела. Если вы пишете код, то постоянно оглядываетесь на платформу, будь это новый iPhone или Microsoft Surface.Если вам нужно написать плагин для Wordpress, то делать это придется на JavaScript и PHP. И не плевать на чарты популярности и ваши познания в Python.

Читаем между строк

Есть еще несколько моментов, на которые стоит обратить внимание. Во-первых, топовым языком в списке Coding Dojo был SQL. В этом можно найти много смысла, а можно и не найти, ведь вы никогда не кодите исключительно на SQL. Скорее вы используете его для управления данными, но эти данные вы получаете благодаря другим языкам. Поэтому уделить время SQL определенно стоит, но класть все яйца в это корзину будет глупостью, иначе не видать вам высокооплачиваемой работы и милого домика на улице Счастливой.

Во-вторых, учитывая популярность продуктов Apple, вы наверняка ждали увидеть его выше в рейтинге. И это так же имеет смысл. Если вы хотите делать софт для продуктов Apple, то вам стоит изучить Swift. Но в мире не так уж много компаний, которым нужен специалист, заточенный под Swift. Именно поэтому в рейтинге он стоит ниже.

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

Едем дальше. Семейство языков C все еще доминирует. Java, C++, C, C# и Objective-C основаны на языке C поэтому выберите один из них (например Java или C++), а остальные оставьте на потом - зная один из этих языков, остальные покорятся вам куда проще.

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

Мой вам совет - если хотите стать серьезным кодером, то изучайте разные языки и фреймворки. Пробуйте кодить на них, ведь программирование - это не интеллектуальное упражнение, а работа. Вам нужно регулярно писать и улучшать свой код. А мультиязычность и знание разных платформ поможет не выпасть на обочину постоянно меняющегося цифрового мира. Тот же C был топовым языком задолго цифровых часов, но рожденный буквально 2 года назад Swift уже подпирает его в топе. Сегодняшних уроков может не хватить для построения карьеры завтра, поэтому учитесь понимать специфику языка и платформы, а не заучивайте механику.

Теперь давайте подведем итоги. Мой совет - начните обучение с C++ или Java, затем перескочить на JavaScript, который нужен для качественного веб-кодинга. Когда овладеете этим набором, добавьте в свой инструментарий PHP, Swift, или Python. Выбирайте в зависимости от задачи. Когда вы освоите по одному языку из всех трех кластеров, то дальнейшее обучение новым языкам будет проходить куда легче.

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

Для тех, кто хочет знать больше