Безопасность

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

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

Один из крупнейших в мире учебных центров по кодированию, Coding Dojo, опубликовал отчет с объективным анализом самых востребованных языков программирования 2018 г. Выводы Coding Dojo основаны на анализе сотен тысяч объявлений о приеме на работу в системе поиска вакансий Indeed.com, содержавших в своем тексте название языка программирования. Отчет констатирует, что наибольший спрос имеет Java, за которым следуют Python и JavaScript.

«Разработка ПО является динамичной сферой деятельности. Рождаются новые языки, фреймворки и технологии программирования, которые могут стать популярными, но через несколько лет исчезнуть из виду. Чтобы не отставать от жизни, разработчикам надо постоянно приобретать новые навыки, - считает Сперос Мисирлакис, заведующий учебными планами Coding Doj. - Coding Dojo все время оценивает, какие языки программирования имеют высокий спрос у работодателей, чтобы мы могли подготовить своих студентов к выходу на рынок труда. Существует много способов измерения популярности языков программирования, но, по нашему мнению, полезнее всего исследовать спрос на рабочие специализации, потому что он ориентирует разработчиков на овладение навыками, которые улучшают их карьерные перспективы».

По словам Мисирлакиса, при подготовке отчета сотрудники Coding Dojo проанализировали данные сайта для работодателей и соискателей рабочих мест Indeed.com по 25 языкам программирования, стекам и фреймворкам и определили первые семь самых востребованных языков кодирования в преддверии 2018 г.

Анализ основан на количестве объявлений о приеме на работе по каждому языку. Некоторые языки, например, Swift и Ruby, не оказались в первой семерке из-за более низкого спроса на специализацию, несмотря на то, что они в фаворе у разработчиков.

Рейтинг Coding Dojo 2018

  1. Java . Популярность Java в проекции на 2018 г. снизилась относительно показателя головой давности примерно на 6 тыс. объявлений о вакансиях, но этот язык по-прежнему стоит на исключительно крепких позициях. Java больше 20 лет, он используется по всему миру миллионами разработчиков и на миллиардах устройств и благодаря Java Virtual Machine может работать на любой аппаратуре и в любых ОС. На Java базируются все приложения Android, и 90% компаний из рейтинга Fortune 500 используют Java как язык серверного уровня для бэкэнд-разработок. В сентябре 2017 г., после того как Eclipse Foundation принял у Oracle бразды правления Java EE, вышли в свет Java Enterprise Edition 8 и Java 9.
  2. Python . Python за 2017 г. вырос в популярности примерно на 5 тыс. объявлений работодателей. Это универсальный язык программирования, используемый в веб-разработках и поддерживаемый разработчиками ПО. Его также широко применяют в научных вычислениях, в сфере Data Mining и в машинном обучении. Дальнейший рост машинного обучения и спрос на разработчиков соответствующего профиля могут способствовать росут популярности Python.
  3. JavaScript . JavaScript, дедушка языков программирования, сегодня фактически так же популярен, как и год назад. Это не удивительно - JavaScript используют больше 80% разработчиков и до 95% всех веб-сайтов для любой динамической логики на своих веб-страницах. С учетом роста популярности Интернета вещей и мобильных устройств ряд JavaScript-фреймворков для создания интерактивных интерфейсов, например, React и AngularJS, имеет огромный потенциал, и в обозримом будущем популярность JavaScript вряд ли пойдет на убыль.
  4. C ++. Популярность C++ за последний год практически не изменилась. Будучи расширением старого доброго языка программирования Си, C++ обычно используется для создания системного и прикладного ПО, разработки игр, драйверов, клиент-серверных приложений и встроенных прошивок. Многие программисты считают C++ сложным и более трудным для изучения и использования, чем языки типа Python или JavaScript, однако он по-прежнему применяется во многих унаследованных системах крупных организаций.
  5. C #. Этот язык в этом году чуть-чуть упал в спросе. C# - это объектно-ориентированный язык программирования, разработанный в Microsoft для платформы Microsoft .NET, чтобы ускорить и облегчить разработки по сравнению с предыдущими языками Microsoft. Выпущенная в ноябре версия C# 7.2 пополнилась рядом новых функций, помогающих избавиться от излишнего копирования. C#, как и C++, интенсивно используется в разработке видеоигр, так что начинающим разработчикам этих игр неплохо освоить оба языка.
  6. PHP . Этот скриптовый язык, используемый на стороне серверов, поднялся в нашем рейтинге с прошлогоднего 9-го на 6-е место. Большинство разработчиков применяет PHP в веб-разработках для добавления функций, с которыми не справляется HTML, или для взаимодействия с базами данных MySQL.
  7. Perl . Perl за год потерял около 3 тыс. кадровых предложений, но сохранил за собой 7-е место. По-прежнему используются и Perl 5, и Perl 6. Язык сохраняет популярность у системных и сетевых администраторов, а также в качестве языка склейки (glue language), предназначенного для связывания разных компонентов ПО.

Языки, подающие надежды

Это языки, которые не попали в первую семерку, но выросли в 2017 г. по степени использования и популярности. Держите их в поле зрения.

  • Swift . Этот язык программирования для iOS и macOS, выпущенный Apple в 2014 г., занял в списке 14-е место. Отчасти это связано с тем, что многие объявления требуют просто наличия опыта разработок в iOS без упоминания конкретных языков. По данным сайтов IEEE Spectrum и Stackify, с момента появления Swift его популярность стабильно растет.
  • R . В списке R занял 11-е место, но мы ожидаем, что в ближайшие годы его рейтинг повысится. Популярность этого языка растет в международных поисковых рейтингах, а в опросе сайта Stack Overflow в нынешнем году он занял наинизшее место по уровню антипатий. Рост его популярности, вероятно, связан с увеличением числа рабочих мест по анализу больших данных.
  • Rust . Хотя сегодняшний рейтинг языка Rust невысок, его популярность, по данным Google Trends, стабильно растет.

Другие технологии, которые надо знать разработчикам

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

  • SQL . Это стандартный язык запросов для хранения, извлечения и манипулирования данными в базах данных. Формально SQL не язык программирования, так как в нем нет циклов и других основных функций, но этот недостаток частично компенсируется в расширениях типа PL/SQL. Спрос на специалистов по SQL исключительно высок, и связанное с ним число объявлений работодателей более чем на 30 тыс. превышает аналогичную цифру для самого популярного языка программирования Java. Если в 2018 г. у вас будет время на изучение дополнительной технологии, подумайте об SQL.
  • . NET . Это платформа Microsoft для разработки всяческих приложений - настольных и мобильных, веб-приложений, игр и приложений IoT. В 2016 г. она поступила в распоряжение сообщества Open Source и используется языками программирования C#, Visual Basic и F#. Имеется кроссплатформенное расширение под названием.NET Core, которое расширяет.NET на iOS, Linux и Android. Многие Windows-приложения работают на базе.NET, из-за чего эта платформа чрезвычайно распространена в мире бизнеса. В Coding Dojo считают, что с переходом в разряд Open Source она станет еще популярнее.
  • Node . js . Это Open Source-среда поддержки выполнения программ, позволяющая запускать код JavaScript на стороне сервера, так что веб-разработчики могут использовать один язык для всего веб-приложения. Хотя технология Node.js в нашем списке заняла 12-е место, на эту специализацию имеется достаточно солидный спрос. Coding Dojo рекомендует всем разработчикам JavaScript для повышения квалификации уделить время Node.js, даже если они сфокусированы на клиентской стороне.
  • MEAN . Стек MEAN (MongoDB, ExpressJS, AngularJS и Node.js) в анализе Coding Dojo идет 18-м пунктом. Его использование позволяет вам создавать все приложение посредством JavaScript, что является простым, быстрым и очень универсальным способом. Изучив MEAN, любой разработчик получит солидную базу в одном самых распространенных и активно используемых в мире языков программирования.

Как новичку выбрать язык программирования для будущей работы? Оценить уровень зарплат? Востребованность? Исходить из того, что проще выучить? Или внимательно изучить линии тренда популярности?

На самом деле, вы можете потратить уйму времени, выбирая лучший язык программирования. Но как только дело дойдет до личного знакомства, возникнет необходимость сменить фаворита. Сегодня вашему вниманию будет предложен вариант выбора, который должен прийтись по душе абсолютному большинству начинающих гиков - сочетание легкости изучения и востребованности на рынке труда. Эти два аргумента относительно просто достоверно проверить, поэтому полученный результат будет близок к объективности.

Критерии

Расставлять по местам мы будем исходя из рейтинга востребованности. За базу возьмем ряд зарубежных статей ( , , ), реальность же российскую подтвердим при помощи агрегаторов hh.ru и trud.com . Статистика, разумеется, актуальна на день написания текста, а к публикации вряд ли сильно изменится.

Что учитывать мы не будем, так это уровень зарплат и самодостаточность языка, просто из-за относительности данных критериев.

Swift

Формально, Swift, конечно еще не так востребован среди работодателей как Objective-C, и попаданием в этот рейтинг он во многом обязан общей платформе. Но игнорировать перспективу в этом рейтинге категорически невозможно. Поэтому рекомендуем начинать изучение уже сейчас. Приглашаем вас на бесплатный двухчасовой .

Взглянем на цифры российских HR-агентств - 471 вакансия в России и ближнем зарубежье на hh.ru и 410 на trud.com . Очень неплохо для трехлетнего языка. Если добавите Objective-C, можете смело умножать цифры на 3.

C/C++

Называть язык C или C++ лёгкими для изучения не совсем правильно, особенно если сравнивать их с Python или Ruby. Но в данному случае стоит говорить о том огромном количестве учебной качественной литературы, о фундаментальности и том полезном остатке, что останется в вашей голове, даже если свою дальнейшую жизнь с ними вы не свяжете.

Но если всё таки языки вам понравятся, то аж 2 325 вакансий только в России на hh.ru и 12 543 на trud.com . При этом вам важно понимать, что если, в случае с языком Swift, это были вакансии исключительно разработчиков, то с C++ вам язык может понадобится не только в привычной сфере IT, но и на должности оператора ЧПУ, и автоэлектрика.

JavaScript

Мало того, что JavaScript крайне востребован в современном мире благодаря сумасшедшему развитию интернет-технологий, так ещё благодаря модулям и библиотекам его зона влияния стала распространяться во все остальные IT-сферы.

Добавьте сюда тот факт, что JavaScript относительно лёгок для изучения. Заимствовав базовые вещи из Си и постепенно развиваясь от бонусного элемента для HTML и CSS до самостоятельной силы, он получил удобоваримый синтаксис и предельно понятную для новичка логику работы.

А теперь к востребованности: 6 365 вакансий только внутри России на hh.ru и 5 565 на trud.com . Это весьма неплохие цифры для тех, кто твёрдо намерился найти работу по окончанию обучения.

Python

Когда речь идёт о совокупности аргументов лёгкость и востребованность (именно в таком порядке), большинство разработчиков в первую очередь думает о Python. Это проверенный временем и миллионами учеников язык, экономит драгоценное время как на стадии обучения, так и применения. При этом количество областей IT, где бы вам мог потребоваться Python не ограничено вообще ничем. Большое спасибо поклонникам энтузиастам и Python Software Foundation.

Важно отметить, что востребованность в специалистах Python значительно выше за границей, нежели в России. Однако и у нас найти работу большого труда не составит: 2 325 вакансий в открытом доступе по версии hh.ru и 2 537 - trud.com .

Java

Java - великолепный язык во всех отношениях. Это подтверждается и статистикой TIOBE , и самой популярной ОС в мире , и просто тем, что это достаточно простой язык с очень мощной экосистемой.

Если выразить в цифрах российской реальности, то актуальность Java составляет 4 628 пунктов по версии hh.ru и 4 490 - trud.com . Да, это не впечатляющие результаты на фоне некоторых предыдущих претендентов, но, во-первых, это обусловлено спецификой нашего IT-рынка, во-вторых тенденция к росту строго положительная, в-третьих Java всё же будет попроще C/C++.

SQL

Наверняка не такого лидера вы хотели увидеть, но формально придраться здесь не к чему. Вам очень трудно избегать использования БД в современных реалиях, а инструмента более универсального,чем SQL пока никто не придумал. Именно этот факт и позволяет этому языку твёрдо восседать на первом месте практически во всех подобных рейтингах.

Язык отечественных цифр здесь не слишком ярко отражает реальный спрос, но в лидерстве SQL в данном рейтинге сомневаться не заставит. По факту, на hh.ru он набрал 8 303 внутренних вакансий, на trud.com 8 933.

P.S.

Глядя на опубликованный в самом начале рейтнг, у вас наверняка возникает резонный вопрос: «А где же Perl и C#?». Всё дело в том самом проецировании на российскую действительность. Например, Perl имеет результаты 581 вакансий по версии hh.ru и 577 на trud.com . Это, конечно, лучше, чем Swift, но у яблочного языка есть очевидная перспектива, а спрос на Perl в России скорее всего будет только падать.

Касательно C# здесь ситуация лучше: 906 вакансий на hh.ru и свыше 16 тысяч на trud.com . Однако вторая цифра не должна вводить вас в заблуждение: среди вакансий почти половина C/C++ разработчики со знанием C#, поэтому по совокупности и фундаментальной значимости именно первая группа языков была вынесена в заголовок, а второй скромно упомянут в конце.

Разработчики программного обеспечения пользуются огромным спросом в настоящее время. В некоторых компаниях даже стажеры-программисты получают высокую зарплату. ИТ-компании борются друг с другом за талантливые кадры.

А кадры, в свою очередь борются за место под солнцем. Успех тех и других будет зависеть от того, насколько хорошо у них получается держать руку на пульсе, быть в тренде, использовать перспективные технологии и языки программирования. Чтобы понять, на что ориентироваться и в каком направлении идти, разработчики ПО и их работодатели изучают различные исследования и рейтинги популярности – будь то бизнес-модели или те же технологии и языки программирования.

Однако некоторые игроки ИТ-рынка оказались предприимчивыми и создали проекты, посвященные ранжированию и трендам. К примеру, на этой неделе GitHub опубликовал собственный рейтинг 15 самых популярных языков программирования. Конечно же, популярность определялась по количеству pull-запросов на GitHub за последний год.

В настоящее время в GitHub представлены 5.8 миллиона активных пользователей, 331 тысяча организаций и 19.4 миллиона репозиториев.

No. 15 - TypeScript:

Язык своим появлением обязан компании Microsoft. Он создан как средство разработки веб-приложений, расширяющее возможности JavaScript. Основным разработчиком языка TypeScript является Андерс Хейлсберг который ранее участвовал в создании Turbo Pascal, Delphi и C#. В ближайшее время выйдет релиз TypeScript 2.0.

No. 14 - Swift:

Язык собственного приготовления – от компании Apple. Он был создан для iPhone-приложений в 2014 году. Однако Swift за столь короткий срок сумел завоевать популярность.

Такси-сервис Lyft переписал свое iPhone-приложение на этом языке и сообщил об «огромном скачке» в производительности.

А совсем недавно вышло новое приложение Swift Playgrounds – самый простой способ познакомиться с языком Swift. По крайней мере, в этом уверен Крейг Федериги, старший вице-президент компании Apple по программному обеспечению.

No. 13 - Scala:

Этот язык программирования вышел в свет в 2001 году. Его подхватили такие крупные компании, как Airbnb и Apple. По их мнению, на нем проще и быстрее писать приложения для их нужд, нежели на набившем оскомину языке Java.

Изначально Scala, поддерживающий объектно-ориентированную и функциональную парадигмы, был создан с расчетом на трансляцию в байт-код Java и.NET. Со временем также появился транслятор Scala в код JavaScript - Scala.js. Однако в мае 2016 года стало известно, что в рамках проекта Scala Native создается компилятор, обещающий ускорить выполнение приложений, написанных на этом языке.

No. 12 - Objective-C:

Изначальный С так понравился людям, что у него появились последователи. В частности, некоторые из них вдохновились на создание Objective-C, который предстал перед публикой в 1983 году. Конечно, в него были добавлены новые идеи и элементы языка Smalltalk, но буква С не зря венчает его название.

Особенно распространился Objective-C среди разработчиков под платформы Apple. Пока он удерживает эти позиции, но Swift грозится потеснить потомка С в скором времени.

No. 11 - Shell:

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

No. 10 - Go:

Был разработан внутри компании Google. Первоначальная разработка Go началась в сентябре 2007 года, а его непосредственным проектированием занимались Роберт Гризмер, Роб Пайк и Кен Томпсон. Официально язык был представлен в ноябре 2009 года.

Язык Go разрабатывался как язык системного программирования для создания высокоэффективных программ, работающих на современных распределённых системах и многоядерных процессорах. Он может рассматриваться как попытка создать замену языку Си.

При разработке уделялось особое внимание обеспечению высокоэффективной компиляции. Программы на Go компилируются в объектный код (хотя доступен и интерпретатор) и не требуют для исполнения виртуальной машины.

No. 9 - C:

Это язык, которому теперь пытаются найти замену. Язык Си был разработан Деннисом Ритчи в 1972 году в Bell Labs. Он является предшественником таких языков программирования как С++, Java, C#, JavaScript и Perl. По этой причине изучение этого языка ведет к понимаю и других языков. Язык С используется для разработки низкоуровневых приложений, так как считается ближе всего к аппаратному, уступая только ассемблеру.

No. 8 - C#:

С# принадлежит семье языков программирования Microsoft и был разработан в 2000 году и стал частью первого релиза.NET framework. Язык С# сочетает в себе надежность С++ с дополнительными возможностями Java. Поэтому если вы хорошо знаете Java, можно легко переключиться на С# и наоборот.

Язык С# позволяет разрабатывать практически любые приложения, которые связаны с Visual Studio IDE.

No. 7 - CSS:

Cascading Style Sheets (каскадные таблицы стилей) - формальный язык описания внешнего вида документа, написанного с использованием языка разметки.
Преимущественно используется как средство описания, оформления внешнего вида веб-страниц, написанных с помощью языков разметки HTML и XHTML, но может также применяться к любым XML-документам.


No. 6 - C++:

Языку Си не хватало работы с объектами. Чтобы решить проблему, в 1986 году был разработан С++, который является одним из самых распространенных языков в мире. Google Chrome, Mozilla Firefox, Winamp и линейка продуктов Adobe были разработаны с помощью С++. Кроме того, некоторые современные игры и операционные системы были разработаны на С++ из-за быстрого процессинга и компиляции. Кроме того, разработчики С++ имеют огромный спрос на рынке труда.

No. 5 - PHP:

PHP - это один из наиболее широко используемых языков для разработки динамических веб сайтов. PHP был разработан в 1995 году и является языком сценариев на стороне сервера, что означает, что PHP код обрабатывается на сервера, а конечный результат пользователь получает в виде обычного HTML.

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

Однако недоброжелатели не дремлют: Джефф Этвуд. основатель Stack Exchange, как-то писал, что PHP – это даже не язык программирования, это куча не связанных друг с другом фрагментов функциональности.

No. 4 - Ruby:

Ruby - простой и читаемый язык программирования, ориентированный на разработку веб приложений. Разработанный Юкихиро Мацумто в 1995 году, фреймворк Ruby использовался для разработки Github, Scribd, Yammer, Shopify и Groupon. Ruby сочетает в себе некоторые возможности Lisp, Pearl и Eiffel. Ruby имеет хороший рынок труда и разработчики получают достойно.

No. 3 - Python:

Python - это другой высокоуровневый язык программирования и часто считается самым легким языком, благодаря своей простоте, читаемости и синтаксису. Python был разработан Гвидо Ван Россумом в 1991 году. Python не использовался так широко в прошлом, однако стал особенно популярным за последние годы благодаря инвестициям Google. В настоящее время некоторые весьма известные и надежные сайты работают на python, особенно pinterest.com, instagram.com и rdio.com. Как и PHP, Python можно использовать для разработки веб приложений.

No. 2 - Java:

Java был разработан Джеймсом Гослингом в 1990 году в компании Sun Microsystems. Java дополнительно увеличивает возможности языка С++. Особенность Java заключается в том, что это первый чисто объектно-ориентированный язык программирования. Java был разработан по принципу WORA (Write Once Run Anywhere или «написав код однажды, вы запустите его везде»). Речь идет про переносимость Java. Необходимо скомпилировать исходный код на Java всего лишь раз, а затем запустить на любой машине с установленным JVM (Java Virtual Machine) и затем использовать.

No. 1 - JavaScript:

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


Указан рост популярности языка в процентах. Его место в рейтинге определяется числом pull-запросов пользователей. Рейтинг отражает популярность применения языков программирования в репозиториях.

По данным GitHub, JavaScript, C# и Go показали двойной рост аудитории. А аудитория Swift и TypeScript выросла в 3,5 раза.

Индекс TIOBE распределил места немного по-другому: на первом месте оказался языка Java, далее следуют С, С++, С# и Python. А лидер рейтинга GitHub здесь занимает только 6-е место.

1. При выборе языка программирования на проект выбор встает между двумя сторонами - выбрать старый проверенный инструмент или новый, красивый, функциональный, но мало проверенный, а следовательно, ненадежный язык. Как разумнее поступить в этой ситуации? Каковы риски каждого из решений, и как с ними справиться?

Игорь Зильберг , SmartHead
Нужно выбирать инструменты по адекватности задаче и по наличию опытной команды, знакомой с выбранными инструментами. Риски при работе с новыми инструментами минимизируются исследованиями, созданием proof of concept, привлечением опытных консультантов. Новые технологии должны изучаться постоянно, но применяться, только если они лучше подходят для решения конкретной задачи.

Александр Макарчук , qb
Для бизнеса понятия «красивого языка» не существует. Сделать ставку на новый непроверенный язык можно только в том случае, если он гарантированно даст проекту какое-то особенное УТП, которое клиенты смогут почувствовать, а главное - захотят за него заплатить. Если это условие выполняется, то выбрать новый язык можно, но при этом придется принять на себя и все связанные с ним риски.

Григорий Никонов , Actis Wunderman
Конечно же, зависит от проекта и зрелости самого языка. Если проект позволяет, или использование языка является необходимым условием, и доступны нужные предметные библиотеки, то вполне можно позволить эксперимент. Риски очевидны: «подводные камни», на которые можно наткнуться на половине пути. Минимизация этих рисков тоже очевидна: по возможности провести исследования до начала проекта и убедиться, что, как минимум, есть активная поддержка языка в форумах или у производителя.

, ADV
В этом вопросе все зависит от сроков и бюджетов проекта. Если и то, и то сильно ограничено, то любые изыскания не оправданы и способны принести большие проблемы, вплоть до полного провала проекта.

Алексей Федоров , «Одноклассники»
Ответ сильно зависит от того, какова планируемая длительность проекта. Если это небольшой проект на заказ, который надо быстро сделать, сдать и забыть о нем - тогда можно выбирать все, что угодно. Если это большой проект на года - то лучше выбрать проверенные технологии, на которые можно будет нанять нужное вам количество специалистов. Для того, чтобы оценить, сколько в вашем регионе есть специалистов по той или иной технологии, достаточно воспользоваться любым разумным сервисом, например, LinkedIn или HeadHunter. А дальше уже нужно смотреть на нефункциональные требования: нагрузка, безопасность, отказоустойчивость и т. п.

2. Какие существенные факторы дают гарантию, что язык можно и нужно использовать на продакшне?

Игорь Зильберг , SmartHead
Гарантии в этом мире не дает никто и ничто. Мы полагаемся на свой опыт и распространенные best practice.

Александр Макарчук , qb
Можно выделить три основных признака, которые говорят о том, что использовать тот или иной язык выгодно и безопасно. Во-первых, наличие у данного языка «живого» комьюнити, во-вторых, наличие успешных кейсов, и в-третьих, поддержка языка крупными вендорами.

Григорий Никонов , Actis Wunderman
Наличие «зрелых» предметных библиотек и фреймворков, активное интернет-сообщество, предлагающее советы в решении проблем, отсутствие негативных отзывов о стабильности и производительности конечного приложения.

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

Алексей Федоров , «Одноклассники»
Формальная гарантия может быть подкреплена только контрактом. Если есть серьезный вендор (например, Oracle, SAP, IBM), который гарантирует, например, что его технология будет поддерживаться ближайшие 10 лет, и с этим вендором подписан соответствующий Support Contract, то, в принципе, вы можете считать это какой-то гарантией. Проблема в том, что обычно это очень дорого, а качество саппорта у больших вендоров, как правило, отвратительное.

Поэтому в мире в последние годы принята другая практика - open source. Если у вас есть опенсорсный инструмент (язык, фреймворк, база данных или все что угодно) с открытым исходным кодом, то это вам дает некоторую гарантию того, что если в этом инструменте вдруг обнаружится баг, то вы в крайнем случае сможете поправить этот баг своими руками. Именно это свойство opensource-решений я считаю ключевым для сегодняшнего бизнеса.

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

Игорь Зильберг , SmartHead
Разработчики не предъявляют бизнес-требований. Их предъявляет бизнес. Однако бизнес зависит от качества кода, который пишут разработчики. Поэтому, если разработчики хотят использовать технологию, которая явно не подходит для решения бизнес-задачи, то надо либо убедить разработчиков, либо поменять. Адекватный и опытный разработчик в состоянии понять бизнес-требования и применить наиболее адекватное им решение. У нас подобных проблем не было. В нашей практике чаще происходит наоборот: заказчик вместо того, чтобы формулировать бизнес-требования, влияет на выбор технологии (часто в ущерб реализации собственных требований).

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

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

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

Алексей Федоров , «Одноклассники»
Во-первых, следует спросить, чем обоснована идея по смене языка. Что это даст? Каковы плюсы и каковы минусы? Какова стоимость такого перехода и каковы сроки? Каковы риски?

Если полученные ответы вас устраивают с точки зрения бизнеса - вперед. Если не устраивают - нужно постараться донести до разработчиков причины, по которым вы им отказываете.

4. Когда затраты на переход с одного языка на другой стоят того?

Игорь Зильберг , SmartHead
Оценить затраты на смену платформы и сопутствующие выгоды невозможно вне контекста проекта. Такое решение может приниматься только на основании осознанного подхода в рамках конкретного проекта, а не на основании каких-либо «универсальных» мнений или правил.

Александр Макарчук , qb
Когда это повлечет за собой ощутимую прибыль, как прямую, так и косвенную вследствие появления у проекта нового УТП, которое сделает продукт конкурентоспособнее.

Григорий Никонов , Actis Wunderman
В случае, когда использование нового языка позволяет существенно оптимизировать всю жизненную цепочку предметной области: от проектирования, разработки и тестирования приложения до внедрения и последующих обновлений и доработок за счет свойств языка и экосистемы вокруг него.

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

Алексей Федоров , «Одноклассники»
Когда у вас и ваших коллег есть четкие ответы на обозначенные выше вопросы.

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

Игорь Зильберг , SmartHead
Конечно же, есть некоторые типовые сферы применения разных платформ (не языков). Например, Java и.NET для относительно крупных бизнес-приложений или сервисов. Node.js для многопоточной обработки и мессенджинга. Все не перечислить. Однако эти границы очень и очень размыты и зависят так же от региона. В США, например, немного другой опыт использования, «мода» и типовые сферы применения платформ, нежели у нас.

Александр Макарчук , qb
С одной стороны, устоявшееся разделение языков по применению существует, но с другой - довольно сильное значение имеют региональные и ценовые факторы: стоимость вхождения в технологию, поддержки и т.п. Что касается появления новых языков, то здесь нужно заметить такую вещь. За последние несколько лет уровень коммуникации вырос значительно, а языки программирования, по сути, все те же. Возможно, именно дальнейшая революция в области коммуникаций повлечет за собой совершенно новые технологии разработки.

Григорий Никонов , Actis Wunderman
В принципе, такое разделение есть: языки C и C++ традиционно используются для низкоуровневой разработки, Java и C# считаются языками общего назначения, подходящими для широкого спектра задач от бизнес-логики до мобильных приложений. Python, Ruby и PHP нацелены, в основном, на веб-разработку, JavaScript - на браузерные приложения. Не думаю, что возможны резкие изменения в этой области, хотя мода на языки и фреймворки иногда меняется - сейчас, например, начинает набирать популярность язык Go.

Алексей Персианов, Михаил Парфенюк , ADV
Да. Некоторые вещи лучше реализуются на разных языках в силу скорости работы и простоты использования, например, в php-проектах в силу «медлительности» языка можно реализовать чат на Node или агрегатор на Java - результат будет лучше.

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

Алексей Федоров , «Одноклассники»
Большинство известных нам с вами современных языков программирования являются многофункциональными, то есть на них можно делать очень разные решения.

Насчет нового языка - да, такой язык появиться может, но, в силу довольно сильной инертности индустрии, я не думаю, что в ближайшие 5 лет кто-то потеснит Java и С/C++ с пьедестала. Если же и выбирать какую-то «лошадку», то я поставил бы на JavaScript. Сегодня мы видим в индустрии огромный рост всего, связанного c JavaScript. Фреймворки рождаются, как грибы после дождя. Хайп в интернете вокруг этой технологии огромен. Посмотрим, к чему это все приведет.

6. Должен ли программист быть DevOps (обладать навыками программиста и системного администратора)? Что делать с тем, что большинство программистов отказываются развивать компетенции и нести ответственность в этой области?

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

7. Стоит ли использовать микросервисы в своих проектах?

Алексей Персианов, Михаил Парфенюк , ADV
Однозначного ответа нет, но наш ответ - да. Безусловно, они могут добавить немало проблем, но и помогут решить многие. Например, благодаря микросервисам разные части приложения можно писать на разных языках программирования, есть возможность масштабировать нагруженные части приложения и пр.

8. Должен ли разработчик уметь работать с широким спектром современных веб-технологий и языков?

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

2017-01-17

Индекс TIOBE в январе 2017
Go от Google признан самым популярным языком программирования по версии TIOBE

TIOBE- индекс, демонстрирующий популярность языков программирования за определенный промежуток времени, как правило, один год. В 2016 г. самым популярным языком программирования был признан Go, разработанный Google. Данный язык программирования набрал 2,16% за год и уверенно обогнал своих ближайших конкурентов- Dart (+ 0,95%) и Perl (+ 0,91%). Основными факторами успеха Go является его доступность для обучения и общая применимость, кроме того Go имеет встроенную поддержку для параллельного программирования. Все больше и больше клиентов компании TIOBE внедряют именно этот язык программирования.

Так что же случилось с другими перспективными языками программирования в прошлом году? Dart поднялся вверх по рейтингу с позиции 26 до 17, Rust по-прежнему входит в ТОП-50, сместившись с 47 на 41 место. Языки Hack и Julia впервые приблизились к топ-50 (с 61 на 51 место и с 73 на 52 строчку соответственно), кроме того два языка впервые дебютировали в рейтинге TIOBE- Crystal расположился на 86 позиции, а Kotlin занял 87 строчку. Популярный среди программистов TypeScript так и не вошел в первую «сотню» TIOBE, однако значительно приблизился к ТОП-100. За прошедший год TypeScript поднялся с 169 места на 137 строчку рейтинга. Кто же займет ТОП-5 мест в 2017 году? Я ставлю на C++, Swift, Julia и TypeScript.
Индекс TIOBE- индекс, демонстрирующий популярность языков программирования среди профессионалов. Индекс обновляется раз в месяц и основывается на количестве поисковых запросов на таких ресурсах как Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu. Необходимо отметить, что, по задумке создателей, TIOBE демонстрирует не самый «лучший» язык, а самый «популярный» язык за тот или иной промежуток времени.

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

Январь 2017 Январь 2016 Изменение Язык программирования Рейтинг Изменение %
1 1 17.278% -4.19%
2 2 C 9.349% -6.69%
3 3 6.301% -0.61%
4 4 4.039% -0.67%
5 5 3.465% -0.39%
6 7 2.960% +0.38%
7 8 2.850% +0.29%
8 11 2.750% +0.91%
9 9 2.701% +0.61%
10 6 2.564% -0.14%
11 12 Delphi/Object Pascal 2.561% +0.78%
12 10 2.546% +0.50%
13 54 Go 2.325% +2.16%
14 14 Swift 1.932% +0.57%
15 13 Visual Basic 1.912% +0.23%
16 19 R 1.787% +0.73%
17 26 Dart 1.720% +0.95%
18 18 1.617% +0.54%
19 15 MATLAB 1.578% +0.35%
20 20 PL/SQL 1.539% +0.52%

Другие языки программирования

Полный список топ 50 языков программирования приведена ниже.

Этот обзор публикуется неофициально, потому мы могли что либо упустить.

Позиция Язык программирования Рейтинг
21 SAS 1.419%
22 ABAP 1.249%
23 Scratch 1.164%
24 D 1.156%
25 COBOL 1.026%
26 Groovy 0.875%
27 F# 0.871%
28 Fortran 0.743%
29 Lua 0.739%
30 Prolog 0.693%
31 Scala 0.691%
32 Ada 0.659%
33 Transact-SQL 0.580%
34 Lisp 0.552%
35 LabVIEW 0.519%
36 Logo 0.479%
37 Scheme 0.477%
38 Haskell 0.429%
39 Q 0.390%
40 Apex 0.348%
41 Rust 0.310%
42 Bash 0.299%
43 RPG (OS/400) 0.298%
44 Erlang 0.274%
45 Ladder Logic 0.264%
46 MQL4 0.264%
47 Clojure 0.240%
48 Awk 0.220%
49 Alice 0.212%
50 VHDL 0.207%