2. Профессор Фортран о выборе языка программирования


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

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

Кроме того, разработчики программных интерфейсов приложений API (application programming interface) тоже хотят знать, какие языки популярны, потому что им важно понимать смогут ли современные программисты использовать их продукт. Это очень важно поддерживать работу с наиболее популярными языками.

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


Гусеница: Профессор, а в данном контексте, что означает слово популярный?


Фортран: Очень хороший вопрос и хорош он тем, что он до сих пор остается открытым и с его анализом можно ознакомиться в статье на Wikipedia «Measuring programming language popularity» .

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

  1. Количество раз, которое название языка упоминается в веб-поисковиках (например, Google Trends).
  2. Количество открытых вакансий на данном языке.
  3. Количество проданных книг, обучающих данному языку.
  4. Оценочное количество строк кода, написанных на данном языке.
  5. Количество проектов на данном языке на таких ресурсах как GitHub и SourceForge.
  6. Количество упоминаний на форумах и в новостных лентах об этом языке.

Список можно продолжить. Например, этот список можно дополнить следующими метриками:

  1. Количество проданных обучающих курсов.
  2. Количество студентов, зачисленных на факультеты программирования.
  3. Количество видеороликов по данному языку на YouTube.
  4. Количество публикаций на Reddit или StackOverflow о данном языке.

Как-то так.


Воробей: А если оценивать популярность на международном уровне, все ведь будет еще сложнее?


Фортран: Верно, чтобы усложнить тему нашего обсуждения, можно задаться такими вопросами: Какие языки более популярны в США? В России? В Украине? А в Белоруссии?

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

  • IEEE Spectrum использует интересный подход, здесь присутствует интерактивная таблица, которая позволяет вам взвесить различные факторы, такие как работные сайты, open source хабы и др.



  • На Coding Dojo есть таблица, которая агрегирует статистику с работного поискового движка Indeed.com.
  • Tiobe уже давно использует статистику поисковых движков для расчета популярности.
  • PYPL оценивает популярность на основе данных о частоте поиска туториалов по конкретному языку в поиске Google.


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


Фортран: Однозначного ответа нет и быть не может. Чтобы помочь тебе сделать выбор, я объединил источники, упомянутые выше. В IEEE я использовал 3 категории:

  • Trending – языки, популярность которых растет.
  • Jobs – отражает количество открытых вакансий на Dice.com и CareerBuilder.
  • Open – показывает количество open source проектов.

Результаты сведены в следующую таблицу:



Но проблема в том, что пока так и непонятно на чем сфокусировать свое внимание. Чтобы добраться до сути, я провел анализ этих данных. Я объединил данные 5-ти из 6-ти источников, отбросив Coding Dojo, т.к. в нем учтены лишь 9 языков. Затем я взвесил каждый язык на основе того, в скольких таблицах он присутствует и на какой позиции этот язык появляется в каждой таблице. В итоге я получил топ 10 языков, который свел в следующую гистограмму.



Как вы можете видеть, есть 3 группы языков. Группа наиболее популярных языков содержит такие языки как Java, Python, C и C++. Без сомнения эти языки заслуживают, того, чтобы их выучить. Следующая группа языков включает C#, JavaScript, PHP и Swift. Два оставшихся языка – это R и Ruby.

Икс: Если я правильно понимаю, то языки из 1-ой группы в значительной степени универсальные языки. Они не связаны с конкретной программной платформой.

Языки из 2-ой группы являются платформоориентированными. JavaScript и PHP – это преимущественно языки веб-разработки. C# - это язык для платформы от Microsoft. Swift – новый основной язык программирования в Apple.

Так все же, профессор, о чем это нам говорит?

Фортран: Смотрите, если вы разбираетесь в современном программировании, вы понимаете, что вы не просто используете язык. Вы всегда разрабатываете подо что-то, будь то встраиваемая система, iPhone, веб-приложение или приложение для Microsoft сервера.

Язык – это лишь часть головоломки. Например, не имеет значения, как сильно вы любите Python или древний, но все еще актуальный, C, если вы разрабатываете плагины или темы для движка WordPress, вы будете писать их на JavaScript и PHP. В этом случае не важно, на сколько популярен этот язык. В тоже самое время, если ваш работодатель – разработчик продуктов Microsoft, то вам следует знать C#.

Однако есть несколько важных моментов, на которых я бы хотел остановиться.

Первое, в Coding Dojo самым топовым был язык SQL. Это может и так, однако надо понимать, что вы очень редко просто кодируете на SQL. Вы используете SQL для доступа к данным, но вы отправляете эти запросы из программы, написанной на другом языке. Так что это хорошо и даже необходимо знать SQL. Однако просто изучив SQL, вы вряд ли найдете высокооплачиваемую работу.

Примерно тоже самое можно сказать о таких языках как HTML/CSS, которые часто используются в связке с PHP, Java и JavaScript, но сами по себе не нужны программисту.

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

Все еще доминируют C-подобные языки. Java, C++, C, C# – они все C-подобны. Если вы собираетесь выучить один язык, вам следует выбрать один из них. Я бы рекомендовал Java или C++, т.к. они откроют вам двери к остальным C-подобным языкам.

Кроме того, рекомендую присмотреться к языку Python. Если проанализировать его тренд, то можно видеть, что он явно нацелен занять лидирующую строчку топ 10 языков, которую пока занимает Java.


Гусеница: Так с чего же мы начнем, профессор?


Фортран: Моя рекомендация предельно проста. Мы начнем с Java, как с лидера нашего хит парада, не умаляя при этом достоинств других языков, таких как Python. Когда же мы подойдем к созданию веб-приложений будем также использовать JavaScript в
связке с HTML/CSS. И безусловно мы будем работать с базами данных, поэтому нам не обойтись без SQL.

Дерзайте! А я буду вам в этом помогать.

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


Comments 23


@prof.fortran, есть еще 'хипстерский' язык go

25.09.2017 03:45
0

Да, он оказался на 11-ом месте)

25.09.2017 12:44
0

отлично может Java подучим у вас в блоге

25.09.2017 04:06
0

А у вас Python)

25.09.2017 12:45
0

Здравствуйте!

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

Ваш пост поддержан в рамках программы "Поддержка авторского уникального контента", скоро за него проголосует - @sept или @dmilash со 100% силой, если они не проголосуют - вам будут перечислены 12,5 gbg с аккаунта @septcur или @dailystats.

Желаем вам творческого роста и увеличения авторских наград.

25.09.2017 05:06
0

Спасибо, будем стараться!

25.09.2017 12:46
0

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

26.09.2017 09:25
0

Большущее спасибо за поддержку, буду очень стараться!

26.09.2017 17:40
0

Главное не разочароваться и не слиться за эти первые месяцы.

26.09.2017 18:12
0

Отличное начинание! Очень понравился ваш материал и стиль изложения - обязательно продолжайте :)

P.S. Рекомендую вознаграждение для постов ставить 50/50, затем через bittrex переводить GBG в GOLOS - таким способом вы получите больше СГ и быстрее прокачаете свой аккаунт.

26.09.2017 09:30
0

Спасибо за вашу оценку и ценный совет! Учту!

26.09.2017 17:44
0

Чёрт! Знакомые картинки! Кажется, я читал эту книгу в конце восьмидесятых или начале девяностых. Точное название уже не вспомню, но она про персонажей "Компьютерного города".

26.09.2017 09:36
0

По-моему этот город назывался Симплекс:)
Я её году в 1997 наверное читал.

26.09.2017 18:11
0