Какие языки программирования займут лидирующие позиции в будущем — выясняем, что перспективно изучать сейчас

Подписчик Tproger интересуется:

Как вы думаете, какие языки программирования заменят ныне существующие или займут лидирующие положения через 15–25 лет? Как вообще может измениться сфера IT за это время? Стоит ли при обучении программированию выбирать какие-то новинки, чтобы в будущем быть на топовой позиции, или лучше придерживаться «классики»?

Мы передали вопрос нашим экспертам.

В выпуске участвует много спикеров IT-конференции «Стачка». Выражаем благодарность организаторам конференции и лично Анастасии Паниной за помощь со сбором ответов. Читайте также её рассказ о том, как правильно организовать IT-конференцию международного уровня.

Павел Емельянов, главный архитектор Virtuozzo

Не могу сказать за всю индустрию IT, всё-таки в разных областях применяются очень разные языковые наборы. В той области, где в основном работаю я, а это ядро и около него, Си (включая ++) держится очень крепко и в ближайшие 5 лет точно никуда не денется. Одновременно с этим появляется большое количество проектов на Go, сам язык достаточно интересен, для проектов на нём есть очень много готовых запчастей, так что у него, мне кажется, прекрасные шансы сильно потеснить Си (включая ++). Конечно, у Go есть применения и гораздо дальше от ядра, но о тенденциях в тех областях я не берусь судить.

А вот через 20 лет, как мне кажется, должен произойти качественный скачок.

Уже сейчас есть много проектов, направленных на создание совершенно другого способа написания программ. Например, недавно была новость о создании ИИ, способного творить новые программы из кусков старых, эдакий цифровой профессор-Франкенштейн. Другой пример — это специальные игры, проходя которые, люди (не обязательно программисты) решают определённые задачи, неявно «помогая» при этом системе генерировать код какой-то другой программы. Как только подобные системы разовьются достаточно сильно, программистам понадобятся языки для их программирования, и эти языки уже будут не просто новыми, а построенными на совершенно иных принципах, нежели современные.

Игорь Цупко, технический директор в Notamedia

Я уверен, что никуда не денутся монстры: C++, C#, Java. Первое место в разных рейтингах может меняться, подчиняясь моде и политике крупных компаний, но основы останутся.

Иван Никитин, директор «Иван Никитин и партнеры»

Когда я учился в институте, нам преподаватели говорили: «Язык программирования ничего не значит». Опытному програмисту нужно около 20–40 часов для освоения нового языка на уровне нормального кодирования. Поэтому говорить о важности языков программирования не приходится. Будем писать на том, что есть.

Василий Федосеев, директор «Хобби Центр»

Честно говоря, сложно делать такие предположения. Ведь до сих пор себя вполне неплохо чувствует тот же C++, которому уже, страшно сказать, более 30 лет! Совершенно точно можно сказать то, что развиваться будут языки, так или иначе связанные с веб-технологиями.

Степан Чельцов, генеральный директор агенства «Первый интернет-проект»

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

Сказать с определённой точностью, что произойдёт ближайшие 5–10 лет на рынке, который меняется очень быстро — невозможно. Посмотрите, всего лишь 10 лет назад появились айфоны, и благодаря им появились отдельные новые языки, на которых началась мобильная разработка. Сейчас появляется виртуальная реальность, под неё тоже готовятся какие-то технологии, которые будут работать с совершенно другим объемом данных, визуализировать эти данные и позволять с ними интерактивно взаимодействовать.

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

Я всем искренне желаю научиться только одному — уметь постоянно учиться, узнавать новое и критически мыслить, оценивая новые знания. Этот навык поможет вам в самых разных задачах, даже если вы не знаете, как к ним подступиться.

Евгений Чернов, совладелец ParketMe

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

Евгений Арнаутов, исследователь в Департаменте машинного обучения Центра инноваций SAP

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

Евгений выступит 25 апреля на Artificial Intelligence (AI) Conference 2017 в Москве с докладом «Машинное обучение в SAP: классификация обращений и распознавание платежей».

Александр Павлов, ведущий разработчик в AndersenLab

Вряд ли в перспективе 5 лет какие-то из языков перестанут использоваться. Почти каждый год появляются новые языки, но очень сильного распространения они не получают. За 20 лет все может сильно измениться, не думаю, что можно строить прогнозы на такой срок с таким уровнем развития IT.

Антон Максимов, технический директор Heads and Hands

В ближайшее время (5–10 лет), я думаю, ничего кардинально нового не появится. Предсказать что-то на более долгий период очень сложно, т.к. сейчас появляется слишком много технологий, которые в перспективе могут предъявить новые требования к языкам программирования.

Дмитрий Коробченко, инженер в области машинного обучения NVidia

Универсальным языком, использующимся для прототипирования, web’a и многого другого, будет длительное время оставаться Python. Тем не менее, через некоторое время существенную часть «научных вычислений» может захватить молодой язык Julia. Продолжит активное распространение JavaScript (как в desktop-, так и в web-приложениях). Что касается языков для высокопроизводительных приложений, C++ будет продолжать эволюционировать и удерживать лидерство, однако может разделить позиции с молодым языком Rust. Также стоит принять во внимание рост популярности функциональных языков (Scala, Haskell).

Дмитрий выступит 25 апреля на Artificial Intelligence (AI) Conference 2017 в Москве с докладом «Глубокие нейронные сети: обзор технологии и трендов».

Напоминаем, что вы можете задать свой вопрос экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков рубрики. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на admin@tproger.ru, мы расскажем как это сделать.