Я слежу за статистикой языков программирования в течение нескольких лет. Существует целый ряд источников данных, включая репозитории кода, обсуждения вопросов и ответов, объявления о вакансиях, упоминания в социальных сетях, посещения страниц учебных пособий, просмотры обучающего видео, опросы разработчиков и многое другое. Данные публикуются в разное время, ни один из них не может считаться точным, и все они имеют недостатки — но они могут быть полезны для выявления тенденций в отрасли.
GitHut
GitHut — это относительно новый ресурс, который анализирует 2,2 миллиона активных репозиториев на GitHub. Десятка лучших:
- JavaScript
- Джава
- питон
- CSS
- PHP
- Рубин
- C ++
- С
- Ракушка
- C #
RedMonk
Языковой рейтинг RedMonk за 2015 год определяет популярность, анализируя активность на GitHub и StackOverflow. Их результаты:
- JavaScript
- Джава
- PHP
- питон
- C #
- C ++
- Рубин
- CSS
- С
- Objective-C
Работа Трактор
Языковые тренды Jobs Tractor анализируют тысячи публикаций о вакансиях в Twitter. Последние данные за сентябрь 2014 года:
- Джава
- Objective-C
- PHP
- SQL
- Java (Android)
- C #
- JavaScript
- питон
- Рубин
- C ++
Индекс TIOBE
Индекс TIOBE оценивает языки по числу квалифицированных инженеров, курсов и рейтинга в поисковых системах.
- С
- Джава
- C ++
- Objective-C
- C #
- JavaScript
- PHP
- питон
- VisualBasic.NET
- Visual Basic
Полностью ненаучный мета-обзор
Если мы объединим эти четыре опроса, мы получим следующий результат:
- Ява (все)
- JavaScript
- PHP
- питон
- C / C ++
- C #
- Objective-C
- Рубин
- Visual Basic
Я объединил C и C ++ и проигнорировал CSS и сценарии оболочки. CSS не является языком программирования как таковым, хотя препроцессоры близки. Сценарии оболочки полезны независимо от того, какие технологии вы применяете, но вы не найдете работы там, где вам нужен единственный язык.
Наблюдения и предостережения
GitHut и RedMonk похожи, но этого следует ожидать, поскольку они используют GitHub в качестве основного источника данных. Оба анализируют публичные, а не частные репозитории, что может повлиять на результаты в пользу технологий с открытым исходным кодом.
На TIOBE влияют ресурсы поисковой системы. Возможно, именно поэтому C возглавляет их таблицу — язык был разработан в 1969 году, и многие исторические документы доступны. Новые языки, такие как Ruby и Go, неизбежно появляются в дальнейшем.
Образовательные ресурсы могут повлиять на результаты. Например, Python обычно используется для изучения программирования в школах и колледжах. Многие тысячи студентов задают вопросы и заканчивают проекты, но, по моему опыту, задания на Python редки по сравнению с PHP или Ruby, несмотря на то, что они выше в нескольких графиках. У Java есть аналогичное преимущество, поскольку у него есть множество применений в образовании, веб-разработке, разработке приложений для мобильных устройств и мобильных устройств.
Спрос на собственных разработчиков приложений остается высоким, особенно в опросах, связанных с работой. RedMonk сообщает, что Swift подскочил на 46 мест до 22 в менее чем за шесть месяцев. Тем не менее, разработка приложений является молодой дисциплиной. В веб- и настольном программировании гораздо больше вакансий, но их легче заполнить, поэтому, возможно, реклама удаляется раньше.
Наконец, использование языка оказывает влияние.
- Один веб-сайт или приложение требует множества технологий, которые, возможно, поднимают их над языками рабочего стола.
- Вы можете создавать быстрые и грязные примеры кода в несколько строк 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, примеры кода и коллеги-разработчики полезны, но не ожидайте, что они предоставят все ответы. Ваш проект является (или должен быть) уникальным, и только один человек может научить вас программировать: вы .
Наконец, не ожидайте, что станете закодированным ниндзя за одну ночь. У некоторых людей есть природные способности, но они также много-много часов оттачивают свои навыки и постоянно изучают новые технологии и методы. Даже самые младшие роли предполагают многолетний опыт разработки. Если вы обнаружите, что вам нужна помощь в этом, есть множество онлайн-ресурсов, таких как наш собственный Learnable , которые могут помочь.
Таким образом, выбор языка для изучения — это скучное учебное занятие: мало кому это удается. Лучше выучить язык, который поможет вам решить реальную проблему. Не беспокойтесь, если эта технология устарела или находится за пределами первой десятки — все языки концептуально схожи, а ваши навыки могут быть перенесены.
Не беспокойтесь о своем выборе: просто постройте что-нибудь .
Возможно, вас заинтересует продолжение работы Крэйга в статье « Лучшие языки программирования для работы и зарплаты», 2015 .