Современные языки программирования и их использование

Всем привет! Сегодня хочу поговорить на такую тему как “Топ языков программирования” в 2018 году. Можно показать, что данный вопрос уже хорошо «обсосан» в интернете, но я постараюсь дать вам наиболее свежую информацию, которая есть на сегодняшний день в зарубежных источниках. Поехали!

Откуда данные?

На сегодняшний день имеется несколько известных индексов, благодаря которым можно узнать популярность того или иного языка программирования в интернете:

— TIOBE (индекс, оценивающий популярность языков программирования, на основе подсчета результатов поисковых запросов, содержащих название языка)

PYPL index (индекс популярности языков программирования на основе анализа поиска тотуриалов в Google)

— RedMonk (компания, которая занимается анализом)

А так же перечень ресурсов на которых есть их личные статистики:

— StackOverflow

— GitHube

— Trendy

— Indeed

— IEEE Spectrum

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

ТОП 2018 года

Давайте же перейдем к самому списку языков.

1. JavaScript/JAVA Во всех топах на первых позициях, как правило, лидируют эти два языка. Уже не первый год, JavaScript стал основным языком на котором пишет большое количество разработчиков для создания динамических UI Web платформ. Если вы хотите пойти по пути front-end разработки, то этот язык должен быть вашим самым приоритетным в изучении на текущий год. Java — это язык, на котором пишется абсолютно все что угодно, начиная от игр, веб приложений, сайтов и заканчивая искусственным интеллектом. Спрос на хороших специалистов по направлению Java — очень велик и имеет соответствующую оплату в любой точке нашего мира.

2. PHP Я поставил PHP на второе место т.к. действительно, на рынке в текущий момент огромное количество предложений о работе связано именно с этим языком программирования. PHP использовался по больше части в вебе для создания back-end приложения. Благодаря его легкости в освоении, есть огромное количество проектов, которые были написанные в предыдущие годы на PHP и которые требуют их дальнейшей поддержки от специалистов так и доработки каких-то персональных фич. Если вы хотите пойти (особенно в русскоязычном сегменте рынка) в back-end разработчику, не тратя годы на изучение Java, то PHP – это тот язык, который имеет гораздо меньший уровень вхождения.

3. Python Этот язык имеет низкий уровень вхождения и легок в изучении, что дает ему большое преимущество. Менее популярен на Российском рынке, чем все предыдущие языки, но так же хорошо оплачиваем.

4. C++/ C# Фундаментальные языки, которые я поставил в один ряд. В настоящее время на них пишут, как игры, так и сложные приложения для любых устройств. Данные языки хорошо оплачиваются, но имеют меньшую популярность из-за более высокого уровня вхождения в них.

5. Ruby Отличный язык если вы совсем новичок. Множество языков которые сейчас стоят на первом месте, позаимствовали свои практики именно из этого языка.

6. C Язык программирования, разработанный аж в 1969-1973. Обычно на нем пилят какие-то серьезные системы. И если вы реально хотите заниматься хардкорным программированием и попасть в мир низкоуровневого программирования, то этот язык явно для вас.

7. Objective-C компилируемый, объектно-ориентированный язык программирования корпорации Apple, построенный на основе языка Си и парадигм Smalltalk. На нашем рынке имеется большое количество вакансий для данного языка программирования.

8. CSS Почему CSS находится в этом списке? Спросите Вы у меня. Ведь CSS — это формальный язык оформления Web страниц. Да это так! Но на данный момент этот язык используется везде. Ни один современный веб сайт или приложение не обходится без CSS. Именно поэтому, он находится в этом топе.

9. Shell (шелл, он же «командная строка», он же CLI, он же «консоль», он же «терминал», он же «черное окошко с белыми буковками») - это текстовый интерфейс общения с операционной системой. И опять, это же не язык программирования! В какой бы операционной системе вы не разработали свое «творение», вы все равно будете использовать консоль, ибо это удобно. Так и в этой статистике.

10. Go И последним языком в этом списке, является язык Go, созданный компанией Google. Уже не первый год он постоянно входит в топы. Кто знает, что будет через пару лет. Может этот язык сможет войди в заветную пятерку лидеров. Поживем - увидим.

Заключение

Сегодня мы рассмотрели «Топ 10 популярных языков программирования», которые будут радовать нас в 2018 году. Если вы новичок и только предпринимаете свои первые шаги в вебе то я бы посоветовал Вам пойти от простого к сложному. Изучите HTML и CSS. После чего попробуйте поиграться с JS для создания динамических страниц и как вариант PHP, либо Ruby для написания простенького бэка. Поработав с этими языками месяца 4, вы сможете сделать выбор в какую сторону вам лучше пойти развиваться (Front-end или Back-end). Выбор всегда за вами. Надеюсь, что данная статья была вам полезна. Удачно покодить!)

Среди программистов конкуренция будет только расти. Кажется, что современные дети рождаются с уже «прошитыми» знаниями! Поэтому расслабляться некогда. Чтобы понять, какие языки программирования будут в топе, нужно знать задачи, которые встанут перед программистами в обозримом будущем.

Самые жаркие направления, в которых ожидается прорыв в ближайшее десятилетие:

  1. Увеличение объема передаваемых данных и моделей для их обработки. Появление новых оптических и квантовых компьютеров с расширенными возможностями.
  2. Развитие человеко-машинных интерфейсов и технологии искусственного интеллекта. Всё более востребованы будут семантические системы, работающие с речью и языками (перевод, поиск в интернете, общение человек-компьютер и др.) А также распространение ПО, на которое может влиять обычный пользователь.
  3. Развитие нейроинтерфейсов, в т.ч. «управление мыслью», разными объектами, передача ощущений и переживаний на расстоянии.

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

Перспективные языки программирования с 2016 по 2025 год

Язык программирования ​​​​​​​Зачем он нужен?
R С его помощью можно обрабатывать большие объёмы данных, производить расчёты и создавать графические модели.
Erlang Основное преимущество - параллельность. Если вам необходимо обслуживать миллионы пользователей, Erlang незаменим.
Go РазработкаGoogle, имеющая множество возможностей и преимуществ. Правда, сегодня не все программисты разделяют уверенность в его перспективности, но время покажет.
Swift ДетищеApple. Как они сами говорят о нём: «это первый мощный язык программирования, такой же понятный и увлекательный, как скриптовый язык». В первую очередь предназначен для разработчиков iOS и OS X.

Самые востребованные языки программирования 2016

Язык программирования ​​​​​​​Какие задачи он помогает решать?
SQL По праву занимает первую строку хит-парада. Само название « SQL» расшифровывается, как « язык структурированных запросов». А запросы, как вы понимаете, есть везде.
Java За двадцать лет существования, Java « просочился повсюду». Удалите его со своего компьютера или мобильного устройства и вас ждёт коллапс.
JavaScript Как и Java используется повсеместно и встроен во все основные браузеры. JavaScript нужен для создания интерактива, поэтому спрос на JavaScript-разработчиков только растёт.
C# (C Sharp) Разработка компании Microsoft. Простой, безопасный и объектно-ориентированный. C# относится к семейству языков с C-подобным синтаксисом и близок к C++ и Java.
C++ Используется для разработки программного обеспечения и является одним из самых популярных языков программирования. Нужен для создания операционных систем, драйверов, прикладных программ, высокопроизводительных серверов, игр и многого другого.
Python На Python можно написать что угодно: приложения, игры, комплексные системы расчёта, скрипты по автоматизации и еще много всего! А простота кода облегчает дальнейшее сопровождение программ. Поэтому владение этим ЯП существенно облегчает жизнь программиста и делает его более конкурентоспособным.
PHP Обладает возможностями сложных скриптовых языков, но в то же время удивительно простой и легкий в изучении и применении. Хорош как для начинающих, так и для опытных программистов.
Ruby on Rails Ruby позаимствовал все лучшее из других языков программирования, а фреймворк Ruby on Rails сделал его ещё круче. Будьте осторожны: говорят, он вызывает привыкание!
iOS/Swift А вот и будущее аккуратно просачивается в список лидеров сегодняшнего дня. Помните, мы уже говорили про Swift, как про язык следующего десятилетия?

Какие направления будут популярны в будущем?

Александр Пряхин (руководитель отдела веб-разработки) отметил, что рынок программирования в 2026 будет определен следующими факторами:

  • «Интернетом вещей». Кофемашиной с WiFi уже никого не удивишь. Т.е. будут развиваться микрокомпьютеры и языки программирования под них.
  • Уменьшение времени ожидания для пользователя. Скорости жизни растут. И пользователю нужно сделать заказ прямо сейчас, а перевод денег на карту должен быть простым и производиться в одно нажатие. Скорости работы определяются как «железом», так и программным обеспечением.
  • Сектор IT-услуг. SaaS, PaaS, IaaS и т.д. Многие осознают, что пользоваться сервисом вместо покупки продукта чаще гораздо выгоднее.
  • Информационные угрозы. С каждым годом вычислительные мощности растут и дешевеют. Алгоритмы шифрования устаревают, а взлом систем становится проще. И язык программирования должен уделять много внимания аспектам безопасности.

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

Александр Пряхин

Руководитель отдела веб-разработки

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

Например, в середине в 80-х стал очень популярен язык Prolog, но потом его популярность резко снизилась. И сейчас на нем практически никто не пишет. А место популярного новичка занял Python.

Как же узнать рейтинг языков программирования? Общего рейтинга не существует, так как нет простого способа собрать подобную статистику. Но существуют разные способы оценки популярности языков программирования. Рассмотрим самые популярные рейтинги.

Самым крупным сайтом, посвященным программам с открытым исходным кодом является сайт Black Duck (Черная утка) blackducksoftware.com

Одним из проектов Черной утки является . В этом каталоге представлено около 500 000 проектов. Так как у всех проектов код открыт, то легко определить, на каком языке эти проекты написаны. На январь 2019 года рейтинг выглядит так.

Как видно, здесь практически половина программ (46%) написано на C. Это понятно, потому что С – это язык общения программистов. Это единственный язык, компилятор которого есть на всех платформах: от встроенных систем до суперкомпьютеров.

2. Рейтинг Wappalyzer для веб-приложений

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

В веб-программировании однозначно лидирует язык PHP, более 80% сайтов написано на этом языке.

3. Рейтинг TIOBE Index

Рейтинг TIOBE Index построен на оценке результатов поисковых запросов, содержащих название языка. Логика этого индекса очень проста: “Если язык ищут в поисковых системах, то он популярен”. Конечно же, это заявление спорное, потому что программисты-профессионалы крайне редко будут искать в поисковике именно название языка программирования. Они чаще ищут решение конкретной задачи. Но громадный плюс этого рейтинга в том, что он достаточно объективно показывает интерес к тому или иному языку.

Индекс TIOBE показывает самые популярные языки программирования, информации о которых искали на 25-ти самых популярных поисковых системах, то есть запросы вида: “+” programming”. Индекс подсчитывается каждый месяц.

Индекс TIOBE на январь 2019 года выглядит так:

В этом индексе однозначным лидером является Java.

На графике изменений индекса хорошо видны как менялась популярность языков программирования. Но при этом первое-второе место постоянно делят два языка Java и C. Хотя Java активно продвигается компанией Oracle, а язык C никто не продвигает.

И еще интересно то, что C++ ни разу не смог превысить по популярности C.

4. Рейтинг IEEE Spectrum

Ежегодный рейтинг IEEE Spectrum Top Programming Languages использует 11 метрик из 9-ти источников, включая поисковые запросы, упоминания в твиттере и даже упоминания в вакансиях на работу программиста. С одной стороны этот рейтинг использует больше данных, но с другой стороны во многих источниках данные имеют связанный характер. Чем больше публикуются вакансий на некоторый язык программирования, тем больше запросов будет в поисковых системах. То есть у новых языков больше шансов попасть на вершину рейтинга.

5. Рейтинг Stack Overflow

Сайт Stack Overflow – это площадка, на которой разработчики могут задавать и отвечать на вопросы по программированию. Этот сайт имеет около 40 миллионов посещений в месяц. Есть русскоязычная версия сайта: ru.stackoverflow.com

Этот рейтинг рассчитывается на основе опроса разработчиков. В январе 2018 года было опрошено более 100 000 разработчиков и составлен рейтинг языков программирования. Скорее это рейтинг языков, которые вызывают вопросы. В этом рейтинге лидером стал JavaScript.

Такая популярность вполне объяснима, сейчас JavaScript бурно развивается и каждая новая возможность вызывает массу вопросов, поэтому программисты идут на сайт Stack Overflow, чтобы задать вопросы.

Любопытно, что C не попал даже в первую десятку.

6. Вакансии на Head Hunter

Можно подойти к рейтингу языков программирования с другой стороны и посмотреть, какие языки указываются в вакансиях и сколько собираются платить. Одна из самых популярных площадок для поиска работы в IT-сфере – это сайт HeadHunter. Там есть отдельный раздел – вакансии для программистов.

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

Здесь видно, что программист, знающий Pascal (среда Delphi), все еще востребован.

7. Google Books Ngram Viewer

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

В начале этой статьи приведены графики использования слов Prolog и Python. А теперь введем JavaScript, Python и PHP.

Видно как в 1992 году появляется интерес к JavaScript и он быстро обгоняет Python и PHP.

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

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

Однако некоторые игроки ИТ-рынка оказались предприимчивыми и создали проекты, посвященные ранжированию и трендам. К примеру, на этой неделе 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
В последние годы огромный рывок сделал фронтенд, при этом в серверных языках развитие не столь заметное. Разработчик, безусловно, должен знать основы смежных направлений, но быть гуру в серверных языках и в клиентских невозможно, каждый должен заниматься своим делом и быть в нем настоящим профессионалом.

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то