- Какие языки программирования наиболее популярны и востребованы?
- Почему языков программирования так много? Они действительно все нужны?
- Зачем вообще нужны новые языки, если их и так уже много?
- Какими качествами должен обладать язык программирования, чтобы стать популярным и повсеместно используемым?
- Почему, несмотря на такое многообразие, некоторые продолжают писать код на C, хотя и говорят, что он сложный и неудобный?
- А как насчет совсем старых языков, вроде Fortran или COBOL?
- Какие языки используются только в узких областях, например, только в науке или в аналитике?
- Мнение: За какими языками — будущее?
Какие языки программирования наиболее популярны и востребованы?
(Здесь и далее отвечает Роман Елизаров, преподаватель курса «Параллельное программирование», сотрудник JetBrains, эксперт по языку Java и один из разработчиков языка Kotlin)
Наиболее популярные языки в настоящее время — Java, JavaScript, Python, С и C++. Java активно используется в системах крупных предприятий, на JavaScript пишутся веб-сайты и веб-приложения, Python очень активно используется в научном сообществе и для работы с данными, C и С++ применяются для написания системного программного обеспечения (операционных систем, драйверов, браузеров, баз данных и т.п.).
Почему языков программирования так много? Они действительно все нужны?
Первая десятка наиболее популярных языков закрывает более половины рынка, но программирование сейчас используется в каждой области человеческой деятельности. Огромное число создаваемых языков рассчитано на узкую нишу, другие же — это просто эксперименты или исследовательские языки, не рассчитанные на массовую аудиторию.
Зачем вообще нужны новые языки, если их и так уже много?
Новые языки создаются с разными целями. Подавляющее большинство вновь создаваемых языков — это просто эксперименты небольшой группы программистов или даже одного человека, редко выходящие за пределы узкой сферы. Реже языки создаются при поддержке крупных компаний и ставят себе определенные цели. При этом цели могут быть абсолютно разными — упростить программирование, повысить надежность кода, увеличить скорость разработки, захватить рыночную нишу в борьбе с конкурентами, помочь исследованиям в определенной области, дать возможность пользователям настраивать и программировать какую-то другую систему и так далее.
Какими качествами должен обладать язык программирования, чтобы стать популярным и повсеместно используемым?
Cейчас в мире насчитывается несколько десятков миллионов программистов. Чтобы стать популярным, язык должен быть рассчитан на область, в которой есть как минимум миллион программистов. Кроме того, создатели языка должны поставить себе четкую цель сделать язык нужным и полезным в этой нише, а значит, он должен давать что-то новое и решать какие-то реальные трудности, возникающие в повседневной работе программистов в этой сфере деятельности.
Почему, несмотря на такое многообразие, некоторые продолжают писать код на C, хотя и говорят, что он сложный и неудобный?
C — старый язык, но его все-таки рано назвать устаревшим, так как на нем программируется очень много разных встроенных систем — от елочных гирлянд и кофемашин до автоматизированных станков на заводах. Более того, ядро самой популярной операционной системы — Linux — пишется на C и активно эволюционирует. Да и сам язык C не стоит на месте и продолжает развиваться (последнее обновление стандарта было в 2018 году).
А как насчет совсем старых языков, вроде Fortran или COBOL?
А вот язык COBOL действительно устарел настолько, что нового ПО на нем практически не пишется. Однако, так как он был очень популярен в прошлом, еще остались отдельные системы крупных предприятий и государственных организаций, которые написаны на нем, они продолжают работать и поддерживаться (в настоящее время эту нишу занял язык Java). Язык Fortran находится примерно в таком же состоянии, но он продолжает использоваться в науке.
Какие языки используются только в узких областях, например, только в науке или в аналитике?
Таких языков сотни. Например, язык Lua активно используется в разработке игр для написания игровых скриптов. Язык R — в статистике. На языке Bash часто пишутся различные скрипты автоматизации в операционной системе Linux, а в Windows эту роль сейчас занимает PowerShell. Язык ABAP создан и используется исключительно для программирования в системах SAP, а в его российском аналоге, системе 1С, также есть свой язык программирования.
Мнение: за какими языками — будущее?
(Отвечают Йонн Мостовой и Арсений Серока, основатели компании Serokell)
Текущие тенденции направлены в сторону создания более продуманных, грамотных, «сделанных с культурой» инструментов. Например, с учетом научных подходов или более глубокого анализа возможностей и последствий, а также необходимостей рынка.
Поскольку большинство вузов не говорит о математике процесса, а также про функциональное программирование, чтобы в данном статусе кво язык стал популярным, он должен сильно поддерживать императивную парадигму «подай в эту переменную то, принеси в ту переменную это». В Serokell мы смотрим на шаг вперед и закладываем почву для того, чтобы разрушить этот статус кво и оказаться в мире, где норма мышления декларативная: «эта переменная такая, мы ее учитываем, утверждая этот факт про то».
В этой новой парадигме языки программирования, которые поддерживают декларативный подход, будут успешными. При этом, смешным образом в наше время уже наличие функциональной парадигмы «программы следует кодировать композициями функций» в языке является необходимым (но не достаточным) требованием успеха языка.
Среди молодых специалистов (которые формируют подавляющее большинство рынка) существует заблуждение, что чем больше вакансий использует тот или иной стек, тем важнее этот стек для профессиональной деятельности.
Ребята посообразительнее оценивают отношение спроса и предложения и понимают, что те же Haskell и Erlang имеют огромную отдачу. Эрланг – это самый важный и основной инструмент для сферы телекоммуникаций. Хаскель невероятно популярен в финансовой и банковской сфере. Просто много всегда остается за кулисами коммерческих направлений.
Когда рынок наполнится высококвалифированными специалистами в немейнстримовых языках, адаптация этих технологий станет очевидно выгодной для бизнеса.