В течение нескольких лет мы изучали различные языки программирования. Существует большое количество источников данных, включая репозиторий исходного кода, обсуждения вопросов и ответов, рабочие объявления, упоминания социальных медиа, посещение страниц с обучающим материалом, показ обучающих видео, обзоры разработчиков и так далее. Данные опубликованы в разное время, ни одна из них не является точной, у каждой есть свои недостатки, но, тем не менее, могут быть полезны в определении трендов индустрии.
GitHut
GitHut – относительно новый ресурс, который анализирует 2.2 миллиона активных репозиториев на GitHub. Рейтинг топ -10:
- JavaScript
- Java
- Python
- CSS
- PHP
- Ruby
- C++
- C
- Shell
- C#
RedMonk
Рейтинг языков 2015 от RedMonk определяет популярность, анализируя активность на GitHub и на StackOverflow. Их результат:
- JavaScript
- Java
- PHP
- Python
- C#
- C++
- Ruby
- CSS
- C
- Objective-C
Jobs Tractor
Jobs Tractor анализирует несколько тысяч постов на сайте Twitter. Последние данные с сентября 2014 года:
- Java
- Objective-C
- PHP
- SQL
- Java (Android)
- C#
- JavaScript
- Python
- Ruby
- C++
TIOBE Index
TIOBE Index составляет рейтинг языков по числу квалифицированных инженеров, которые владеют тем или иным языком, курсов и рейтинга поисковых систем.
- C
- Java
- C++
- Objective-C
- C#
- JavaScript
- PHP
- Python
- VisualBasic.NET
- Visual Basic
Абсолютно ненаучный рейтинг метаобзора.
Если мы объединяем эти четыре обзора, мы получим такой результат:
- Java (все)
- JavaScript
- PHP
- Python
- C / C++
- C#
- Objective-C
- Ruby
- Visual Basic
Мы объединили C и C ++ и проигнорировали CSS и сценарий оболочки. CSS не язык программирования как таковой, хотя препроцессоры приближаются к этому. Сценарии оболочки полезны, независимо от технологии, которые вы принимаете, но Вы не сможете найти такую работу, где нужно будет работать только с тем языком, который Вам нужен.
Наблюдения и разъяснения
GitHut и RedMonk похожи, но это понятно, ведь они берут GitHub в качестве основного источника данных. Оба анализа скорее публичные, чем частные репозитории, которые могут повлиять на результат в пользу технологий открытого источника.
TIOBE находится под влиянием ресурсов поисковой системы. Возможно, поэтому C возглавляет их чарт. Язык был разработан в 1969 году и большое количество исторических документов остаются доступными. Более новые языки, как Ruby и Go, неизбежно появляются в чарте.
Образовательные ресурсы, вероятно, затронут результаты. Например, Python обычно используют для обучения программированию в школах и колледжах. Тысячи студентов задают вопросы и завершают свои проекты, но, на опыте, работы, выполненные с помощью Python редко можно сравнить с PHP или Ruby, несмотря на то, что в некоторых чартах он стоит выше. Java обладает похожим преимуществом, так как его часто используют в образовании, веб-, дескстоп и мобильной разработке.
Требования для разработчиков нативных приложений остаются высокими, особенно в связанных с работой обзорах. RedMonk сообщает, что практически в течение 6 месяцев Swift переместился с 46 места на 22. Однако, разработка приложений является довольно молодой дисциплиной. Существует намного больше вакансий о работе в веб и десктоп программировании, но их легче заполнить, поэтому, возможно, скоро они будут удалены.
Наконец, использование языка имеет определенное влияние.
1. Веб-сайт или приложение требуют несметного числа технологий, которые возможно поднимет их выше дескстоп языков.
2. Вы можете создать быстрые и грязные примеры кода в несколько строк CSS, JavaScript, PHP, Ruby, Python или сценария оболочки. Не обязательно, что это имеет место для языков, таких как C, C#, Objective-C и Java, которые имеют тенденцию применения для меньшего количества крупных проектов.
Тренды
При сравнении сегодняшнего рейтинга с рейтингом 2014 года от RedMonk и Jobs Tractor видно, что мало что изменилось. Несколько языков передвинулись на шаг-два, но нет ни одного нового участника или резких скачков среди участвующих.
Чего обзоры нам не скажут?
Не существует «лучшего» языка.
Мало кто из разработчиков имеет роскошь (или наоборот) работать с одной технологией.
Если вы придерживаетесь клиентской стороны JavaScript, Вы не сможете далеко пойти без основательных знаний HTML, CSS, форматов изображений, инструментов и возможностей браузера. Разработчики NodeJS, PHP, Ruby, .NET и Java с выполнением на сервере, обычно требуют понимания веб-серверов, баз данных HTTP, SQL/NoSQL и форматов обмена данными, таких как XML и JSON. Даже те, кто пишет базовое нативное мобильное или дескстоп приложение на одной платформе, требуют возможность веб-соединения, хранилище данных, IDE и опыт работы с инструментами.
Чем большим количеством технологий Вы владеете, тем больше Вам нужно знать.
Ок, но чему мы должны научиться?
Обзоры – вещь интересное, но стройте свою карьеру на них. Если Вы ничего другого из этой статьи не возьмете, тогда Вам нужно запомнить:
тот, кто выбирает язык, основываясь на данных рейтингов или исходя из денежной перспективы, потерпит неудачу.
Есть лишь один секрет, как стать хорошим разработчиком:
просто проектируйте любой материал.
Во-первых, найдите проблему, которая будет Вас особенно интересовать. Возможно, это создание сайта резюме, организация Ваших финансов, автоматизация дома или рандомная рассылка сообщений Вашим подписчикам. Убедитесь в том, что Ваша цель достижима; даже лучшие разработчики дрожали при мысли о создании клона WordPress или Call of Duty.
Теперь выберите соответствующий набор технологий. Это может быть несколько опций, но не пытайтесь решить проблему с помощью языка. Возможно, Вы способны создать нативное мобильное приложение в Perl, но ресурсов мало и это будет некоторым разочарованием.
Затем, создайте свое решение. Google, кодовые примеры и поддержка разработчиков может быть полезной, но не ждите, что они ответят на все Ваши вопросы. Ваш проект должен быть уникальным и только один человек может научить Вас программированию: Вы.
Наконец, не надейтесь стать мастером кода за ночь. Некоторые люди имеют природные способности, но они тоже проводят много-много часов, оттачивая свои навыки и постоянно обучаясь новым технологиям и техникам. Даже на развитие самых простых навыков нужно потратить определенное время и силы. Если Вы понимаете, что Вам нужна поддержка, то Вы всегда можете воспользоваться различными обучающими ресурсами он-лайн.
В качестве итога, хотелось бы сказать, что просто изучать различные языки в академическом порядке, достаточно скучное занятие и мало кто преуспел в этом деле. Лучше всего выбрать язык, который сможет решить реальную проблему. Не нужно переживать, если Вы не найдете этот язык на вершинах различных рейтингов – все языки относительно одинаковые, а Ваши навыки имеют свойства оттачиваться.
Не беспокойтесь о проблеме выбора: просто проектируйте что-нибудь.
Высоких конверсий!