Пользователь
8,0
рейтинг
22 июня 2015 в 15:28

Разработка → Какой язык программирования будет наилучшим для изучения в 2015 году? перевод

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

GitHut


GitHut — это относительно новый ресурс, который анализирует 2.2 миллиона активных репозиториев на GitHub. Первая десятка:
  1. JavaScript
  2. Java
  3. Python
  4. CSS
  5. PHP
  6. Ruby
  7. C++
  8. C
  9. Shell
  10. C#

источник: GitHut

RedMonk


Языковый рейтинг RedMonk за 2015 год определяет популярность с помощью анализа активности как на GitHub, так и на StackOverflow. Вот эти результаты:
  1. JavaScript
  2. Java
  3. PHP
  4. Python
  5. C#
  6. C++
  7. Ruby
  8. CSS
  9. C
  10. Objective-C

Данные взяты на RedMonk

Jobs Tractor


С помощью языковых трендов Jobs Tractor проводится анализ многих тысяч постов Twitter, которые касаются работы. Последние данные за сентябрь 2014:
  1. Java
  2. Objective-C
  3. PHP
  4. SQL
  5. Java (Android)
  6. C#
  7. JavaScript
  8. Python
  9. Ruby
  10. C++


TIOBE Index


TIOBE Index составляет языковый рейтинг по количеству квалифицированных инженеров, курсов и ранжированию в поисковых системах.
  1. C
  2. Java
  3. C++
  4. Objective-C
  5. C#
  6. JavaScript
  7. PHP
  8. Python
  9. VisualBasic.NET
  10. Visual Basic


Абсолютно ненаучная мета-исследовательская ранжировка


Если мы объединим все эти четыре исследования, то придём к следующему результату:
  1. Java (все)
  2. JavaScript
  3. PHP
  4. Python
  5. C / C++
  6. C#
  7. Objective-C
  8. Ruby
  9. Visual Basic

Я объединил С и С++ и проигнорировал CSS с shell-скриптингом. CSS не является языком программирования как таковым, хотя и близок к препроцессорам. Shell скрипты полезны вне зависимости от осваиваемых вами технологий, но вы не найдёте работу, где был бы востребован лишь этот язык.

Наблюдения и предостережения


GitHut и RedMonk по сути аналогичны, но этого и стоит ожидать, поскольку они используют GitHub как первичный источник данных. Оба анализируют скорее публичные, чем приватные репозитории, что может вызвать отклонение результатов в сторону open source технологий.

TIOBE подвержен влиянию ресурсов поисковых систем. Возможно по этой причине С возглавляет список — язык был создан в 1969 и доступно множество исторических документов. Новые языки, такие как Ruby и Go, неизбежно оказываются внизу списка.

Образовательные ресурсы, скорее всего, оказывают влияние на результаты. Например, Python в основном используется для изучения программирования в школах и колледжах. Тысячи студентов задают вопросы и завершают проекты, но, судя по моему опыту, трудовые предложения по Python редко сравниваются с аналогичными по PHP или Ruby, несмотря на то, что он стоит выше в нескольких списках. У Java похожее преимущество, поскольку у него разнообразные сферы применения: в образовании, вебе, настольных и мобильных разработках.

Востребованность разработчиков родных приложений остаётся высокой, особенно в обзорах, касающихся работы. RedMonk сообщает, что Swift менее чем за шесть месяцев, обойдя 46 позиций, переместился на 22ю. Однако, разработка приложений — молодая дисциплина. В сфере десктопного и веб программирования существует гораздо больше вакансий и их легче заполнить, возможно поэтому предложения работы удаляются быстрее.

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

1. Отдельный веб-сайт или приложение требует огромного количества технологий, и возможно это ставит их выше десктопных языков.
2. Вы можете на скорую руку набросать образцы кода с помощью нескольких строк CSS, JavaScript, PHP, Ruby, Python или shell-скрипта. Но это не обязательно касается таких языков как С, C#, Objective-C и Java, которые, как правило, применяются среди меньшего количества проектов большего размера.

Тренды


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

О чём вам не скажет обзор


Не существует «наилучшего» языка.

Мало разработчиков имеют роскошь (или скуку?) работать с одной технологией.

Если вы рассматриваете клиентский JavaScript, то вы далеко не продвинетесь без должного понимания HTML, CSS, форматов изображений, инструментов и заморочек браузеров. Разработчикам серверной стороны на NodeJS, PHP, Ruby, .NET и Java в норме требуется понимание web-серверов, HTTP, SQL/NoSQL баз данных, а также форматов обмена данными, таких как XML и JSON. Даже тем, кто пишет на одной платформе простое десктопное приложение или родное приложение для мобильного устройства, требуются знания и опыт касательно веб соединений, хранения данных, IDE и инструментов разработки.

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

Хорошо, но что я должен изучать?


Обзоры занимательны, но не полагайтесь на них при выборе карьеры. Если вы больше ничего не почерпнули из этой статьи, то помните:
те, кто выбирают язык, ориентируясь на данные из исследований/обзоров или на денежные перспективы, проиграют
Существует один секрет, касающийся того, как стать превосходным разработчиком:
просто создавайте что-нибудь
Сперва найдите проблему — особенно такую, которая вам интересна или из которой вы можете извлечь пользу. Возможно это будет создание сайта-визитки, приведение в порядок своих финансов, автоматизация своего дома или рассылка случайных твитов своим подписчикам. Убедитесь, что цели достижимы; даже лучших разработчиков бросило бы в дрожь от мысли, что необходимо создать клон Call of Duty или WordPress.

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

Затем создайте своё решение. Google, образцы кода и разработчики, которые пишут на том же языке, будут в помощь, но не ожидайте, что они дадут ответы на все вопросы. Ваш проект уникален (или должен быть уникальным) и существует лишь один человек, который может вас научить программировать — это вы.

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

Подведём итог: лишь несколько людей добьётся успеха в изучении языка ради изучения как такового — это нудное академическое упражнение. Лучше изучать язык, который поможет вам решить реальную проблему. Не волнуйтесь, если эта технология устарела или не входит в первую десятку — все языки концептуально схожи и ваши навыки можно перенести.

Не переживайте по поводу своего выбора: просто создавайте что-нибудь.
Перевод: Craig Buckler
Elusive Dream @Elusive_Dream
карма
20,0
рейтинг 8,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (52)

  • 0
    так можно прикинуть, как изменится популярность топ 20 языков — насколько они вырастут/уменьшатся в числе заказов?
    • +1
      За какой срок? Скорее всего в ближайшие лет пять мало что измениться, новые языки будут догонять, но в ТОП10 вряд ли кто-то выбьется, разве что Scala или Perl все-таки обгонят Visual Basic. У Java будут потихоньку съедать популярность Scala, Kotlin и прочие языка на платформе Java, но сильно падения ждать не приходится. С, Objective-C и Visual Basic будут тоже понемногу терять популярность, но и тут все будет медленно и печально. Вообще, популярность ЯП меняется очень медленно.
      • 0
        Objective-C (по крайней мере, по моим наблюдениям) теряет популярность уже года два.
        А вот классический Си, наоборот, набирает популярность. Это обусловленно, в том числе, отсутствием аналогов.
        На чем еще программировать контроллеры? Драйверы? Ядра ОС?
        • 0
          Форт, ассемблер.
          А вообще ждём и молимся на раст, он из современных самый «аналоговый».
      • +3
        У swift есть большой шанс съесть значительную долю проектов на Objective-C. Он же фактически его замена.
        • 0
          Рано или поздно так и произойдет. Более того, ввиду его опенсурсности(которую обещают в будущем), он может и от других платформ отхватить кусочек.
  • +5
    А где же Nim?!
    • +2
      А что Nim? Язык, у которого версия 0.11, вряд ли массово будут использовать в продакшене, каким бы он замечательным не был.
      • +5
        Да это шутка была с оттенком сарказма
      • +4
        >> А что Nim? Язык, у которого версия 0.11

        Ну у Node.js недавно только 0.11 только было =)
        • +3
          Node.js это больше платформа, чем язык, это две большие разницы, если перепилят половину стандартной библиотеки нового языка, все что на нем сделано проще будет выкинут, чем переписывать. А если перепилят платформу, то скорее всего мало кто из разрабов что-то заметить, в худшем случае это на пару вечеров танцев с бубном.
    • +1
      На Nim в настоящий момент ничего сложнее кроме одного блокнота не написано. С таким же успехом можно ждать что в рейтингах появится какой нибудь cobra-language.com
    • 0
      Ним ещё слишком маленький. А вот где оберон?!
      Вообще, ходят слухи, что в Штатах по-прежнему требуются специалисты для поддержки невообразимого количества древнего корпоративного софта на коболе, а его даже на RedMonk не видно.
  • 0
    Не люблю подобные списки «самых лучших языков программирования», потому что каждый язык имеет какую-то свою нишу. Писать на PHP прикладное ПО или на C — веб-сайты, это все равно, что забивать гвозди микроскопом — он для этого просто не предназначен. Даже для написания веб-сервисов можно взять разные языки в зависимости от требуемых задач.
    Впрочем, примерно об этом и сказано в «О чём вам не скажет обзор» :)
  • –2
    Когда CSS стал языком программирования?
    • +4
      Он им и не становился. Читайте внимательнее статью.
  • +1
    Лучший язык это как лучшая валюта для хранения денег… никогда не угадаешь повороты судьбы. Учи тот что востребован на практике.
    • 0
      На практике востребован, как правило, доллар… Какой же у вас язык соответствует доллару?
      • 0
        Учитывая рост фриланса ммм… Доллар — это PHP
        • +3
          Не, это скорее китайский юань. Народу-то много, но он почти весь в одной области мира и каждый отдельный человек не так уж богат. Видимо, доллар и евро будут платформы Java и Net, JavaScript будет японской йеной, а питоны, го и хаскелы это уже швейцарские франки, австралийские и новозеландские доллары и т.п.
          • +1
            А Ruby?
            • 0
              Ruby это скорее британский фунт или швейцарский франк. Вроде и клёво, но особо не распространено и не так много кому нужно.
              Java — однозначно доллар.
          • +3
            JavaScript больше на рубль похож — никогда не знаешь что от него ожидать…
            А под японскую йену больше Ruby подходит — те кто пользуются не жалуются и у них там своя атмосфера(прям как Япония — совсем другой мир)

            Не смог найти аналогии для Scala/Clojure/Groovy/Kotlin, может кто что предложит
            • +1
              Ну, я бы сказал, что платформа Java с её собиранием сотен технологий от разных вендоров в одну экосистему это скорее евро (соответственно доллар c его централизованностью и зависимостью от одного центра это платформа Net), отсюда сам язык Java это такой тяжеловес еврозоны как Германия, а Scala/Clojure/Groovy/Kotlin это другие успешные экономики ЕС.
        • +1
          Нет. Php — это филиппинское песо. Примерно 2 цента.
  • 0
    Английский?
    • 0
      Как мне на нем запустить ECHO HELLO WORLD? 2 часа ищу, никак не найду
      • +2
        Возможно, у Вас отсутствует интерпретатор.
        • 0
          где скачать?
          • 0
            deleted
          • 0
            Написать самому, очевидно же!
      • 0
        Уже запустили.
  • 0
    На манеже все те же. Cкучно.
  • +2
    Как мне кажется Python набирает серьезные обороты, особенно в сфере тестирования Веб-сервисов. Он прост, понятен. Отталкиваясь от него легко можно перейти на любой другой язык ООП. Для изучения, он прекрасен.
  • +1
    О чём вам не скажет обзор: о Go не скажет. О его потенциале заменить Питон в образовании и стать в ближайшем будущем одним из ведущих языков.
    • 0
      Согласен, удивился немного, что Go не нашел ни в каком списке.
    • 0
      Для меня дело не в потенциале, а в реальном спросе на специалистов, знающих какой-то язык. Много сейчас фирм ищут специалистов по Go? Много их будут искать через 3-5 лет? Только это и важно. Ну и уровень зарплаты еще — он тоже отличается для разных языков, хотя и не в разы.
      • 0
        Если надежды на особенности Go оправдаются, спрос появится — даже сейчас на нём пишут серьёзные программы. А спрос сам по себе мало зачит. Ну что с того, что TIOBE Index ставит C на первое место, а другие на последнее? Какое отношение это имеет к исходному вопросу? Сейчас корпорации вложились в Java, web-морды пишутся на JavaScript, серверный ширпотреб на PHP — и это будет долгое время без изменений, это и без тестов понятно.

        И не стоит забывать, что язык изучается годами — он без знания инфраструктуры ничего не значит, поэтому вопрос о языке в этом году не очень правильный. Надо более точно описать условия — для чего и кому изучать, как первый, дополнительный, под какие-то типы проектов и так далее.
        • 0
          Так ключевое слов «если». В статье ведь больше не прогноз, а исследование уже существующих данных.

          Хотя Go может уложиться в финальный вывод статьи

          Подведём итог: лишь несколько людей добьётся успеха в изучении языка ради изучения как такового — это нудное академическое упражнение. Лучше изучать язык, который поможет вам решить реальную проблему. Не волнуйтесь, если эта технология устарела или не входит в первую десятку — все языки концептуально схожи и ваши навыки можно перенести.


          Есть реальные проблемы которые сейчас имеет смысл и интересно решать на Go? (без иронии и подкола, лично я за этим языком не слежу)

          • –1
            У меня как программиста на Perl есть растущая им неудовлетворённость. Что бы ни говорили, но язык умирает, программисты на нём редкость, создатели популярных библиотек имеют тенденцию исчезать в силу того что они как правило одиночки. Вопрос — чем его (perl) заменять. И тут вариантов немного. Java, node.js, php. Java монстр, изучать надо годами, потом годами искать программистов, которые без работы и ею владеют (но ява, конечно, по качеству языка и инфраструктуры вне конкуренции). node.js имет сомнительный статус и вообще не факт что для чего-то пригоден. PHP вообще не язык общего назначения и имеет плохую карму, но его собственно и изучать не надо — его, наверно, всё равно все знают.

            А Go простой, новый, успешно использовался в ответственных проектах. У него есть заявленный плюс — простота поддержки программ на нём, это непринципиальный плюс в первый год, а лет через десять будет ключевой проблемой.
            • 0
              node.js имет сомнительный статус и вообще не факт что для чего-то пригоден.

              Почему? Его очень активно используют в продакшене в том числе с Java, другое дело что node.js это не язык, а изучать javacript надо с разными фреймворками вроде angular, backbone и всеми основами frontend'a вроде вебдизайна и css, что будет ничуть не легче, чем монстра вроде Java.

              PHP вообще не язык общего назначения и имеет плохую карму, но его собственно и изучать не надо — его, наверно, всё равно все знают.

              Эээ… ну голый PHP изучить несложно, но нормальный PHP программист должен прекрасно знать ещё и пяток-десяток фреймворков, что тоже занятие не на пару дней.

              В целом, если речь идет о реально хорошем знании ЯП, то любой ЯП (Php, javascript, Java, C#) потянет ещё десятки технологий, фреймворков и best practise, то есть годы труда и от этого никуда не деться, даже если изучать PHP, который «все знают».
      • +1
        Скорее, важно соотношение спроса и предложения. Если на три Go-вакансии будет один Go-программист, то он будет в лучше положении, чем условный джавист, где на 1000 вакансий 1500 программистов.
        • 0
          он будет в лучше положении, чем условный джавист

          Ну, не совсем. Соотношение спроса и предложения это соотношение спроса и предложения, а три вакансии это три вакансии. (с) Проблема в том что важны ещё и абсолютные числа вакансий, а то окажется что в одной директор неадекватен, во второй — болото с нулевым развитием, а третьей предлагают зар.плату выдавать туалетной бумагой, так фирма на ладан дышит. Поэтому условный джавист может оказаться и в лучшем положении в таком случае.
          • 0
            Ну, ваша модель распределения вероятностей предполагает независимость адекватности работодателя от выбранного языка/платформы. Тогда, действительно, весь вопрос в количестве вакансий.

            Мой лично жизненный опыт говорит, что на «интересных» платформах в целом вероятней найти адекватных людей. То есть среди тех трёх «го-работодателя» окажется хотя бы один адекватный по всем параметрам с не меньшей вероятностью, чем найдётся один такой среди сотни «джава-работодателей».
            • 0
              Да, я о другом — о возможности маневра. Да, конечно, окажется. А если вы захотите поменять место работы через пару лет, чтобы изучить новые технологии, а остальные две фирмы, работающие с Го, вам вообще не нравятся? Или кризис подкосит вашего адекватного работодателя и останутся только неадекватные в вашем городе? В целом, надо учитывать и возможность выбора и маневра, а не только соотношение спроса и предложения.
    • 0
      >заменить Питон в образовании

      Скорее C-какой-нибудь язык, чем Python.
  • 0
    CSS — есть
    SQL — есть
    Нужно добавить HTML.
  • +2
    Мне кажется в этом году для изучения актуален Wolfram.
  • –1
    Визуальные языки программирования, такие как DRAKON. После обработки DRAKON диаграмм, получаются исходники на C, Python, etc.
    СИ тоже желательно знать, что бы исправлять ошибки проектных компиляторов (driver synthesis tools), которые на входе получают спецификации OS и HW.
  • 0
    Php однозначно
    • 0
      Если только после изучения одного из: С++, Java, C#, Haxe.

      Языки без динамической типизации позволяют меньше «шалить», что скажется на будущих привычках. А так, да, соглашусь, пых довольно сильно рванул вперёд последнее время.
  • 0
    Проблема не в языках как таковых — менять языки относительно просто (если уже владеешь несколькими). А вот с библиотеками и фреймворками труднее. Однако если работаешь в команде, хорошо бы знать все те языки, которые используются. Даже если это за пределами твоей непосредственной роли.

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