В статье рассмотрены ЯП и их классификации. Рассматриваются методы программирования: императивный; объектно-ориентированный; функциональный; декларативный и свойства языков программирования (далее ЯП). В завершении статьи анализируются статистические данные по наиболее популярным языкам программирования.
Ключевую роль в мышлении играет язык как система знаков и образов (речь не только про разговорные языки, но и про «язык математики» и ЯП) — отсюда можно сделать вывод, что мыслить можно только на конкретном языке, точнее языках, на тех языках, которые известны человеку/программисту (например, на русском, английском). Языки, которые знает человек, определяют его мышление, таким образом, выбор языка оказывает значительное влияние на то, как человек мыслит.
Вопрос об исследовании ЯП, с которыми работает программист, является актуальным.
Целью данной работы является рассмотреть существующие ЯП и определить возможности их использования.
ЯП — формальный язык, предназначенный для записи компьютерных программ. ЯП определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, которые выполняет ЭВМ под её управлением.
В настоящее время существует огромное число ЯП – сотни и тысячи. Их можно классифицировать различными способами. Одна из классификаций – по поколениям.
Языки первого поколения – это машинные языки; языки второго поколения – языки ассемблера; к языкам третьего поколения относятся высокоуровневые языки программирования, такие как Fortran, Lisp, Algol, Cobol, С, C++, С# и Java.
Языки четвёртого поколения – это языки программирования, разработанные для узких областей применения, где качественных результатов можно добиться, используя не стандартные, а проблемно-ориентированные языки. Все языки программирования четвёртого поколения разработаны для снижения временных затрат на разработку программ.
К четвёртому поколению обычно относят: языки обработки данных (Visual DataFlex, XBase++и т.д.), языки запросов к базам данных (SQL, Informix-4GL и т.д.), а также средства генерации программного кода на языках третьего поколения, встраиваемые в системы программирования.
Термин языки пятого поколения применяется к языкам программирования, основанным на логике или ограничениях.
Ещё одна классификация языков программирования основана на четырёх парадигмах, отражающих вычислительные модели, с помощью которых описываются существующие методы программирования:
- императивная;
- функциональная;
- декларативная;
- объектно-ориентированная.
Императивные языки описывают процесс вычислений в виде команд, изменяющих состояние программы. К этому виду языков относятся такие распространённые ЯП, как: Fortran, Basic, PL/1, Ada, C, Pascal.
В языках функционального программирования вычисления обычно производятся путём применения функций к заданному набору данных. На практике наибольшее распространение получил язык Lisp и два его диалекта: Common Lisp и Scheme. Областью применения этого языка являются системы искусственного интеллекта. Другими известными языками функционального программирования являются ML, Miranda и Haskell.
Термин декларативный используется по отношению к языкам, которые указывают, какие вычисления должны быть выполнены, например, языки логического программирования, основанные на системе правил. Основные области применения – экспертные системы, системы управления реляционными базами данных. Наиболее распространённым декларативным языком является язык Prolog.
Объектно-ориентированные языки – это ЯП, поддерживающие концепцию объектно-ориентированного программирования: вместо разбиения задачи на функции, в объектно-ориентированном программировании задача представляется в виде совокупности объектов, обладающих сходными свойствами и набором действий, которые можно с ними производить. К объектно-ориентированным языкам относятся такие ЯП, как C++, C#, Java, JavaScript.
Достаточно часто возникает вопрос о том, какой ЯП предпочтительней. Здесь следует учитывать выбор языка для конкретной задачи. Кроме того, ЯП обладают следующими свойствами:
- понятность конструкций;
- надёжность;
- гибкость ЯП;
- простота ЯП;
- естественность;
- мобильность;
- суммарная стоимость использования ЯП.
В октябре 2020 года GitHub опубликовал результаты ежегодного исследования Octoverse, в котором анализируются показатели активности участников сервиса. В частности, приводятся данные по наиболее популярным и быстрорастущим языкам программирования.
Результаты данного исследования представлены в следующем списке:
1. Javascript (используется для разработки веб-приложений, кроссплатформенных мобильных приложений)
2. Java (используется для разработки корпоративных приложений, приложений на Android для смартфонов/планшетов, проигрывателей дисков Blue-ray)
3. Python (используется для написания скриптов автоматизации каких-либо задач, аналитики и машинного обучения)
4. PHP (используется для веб-программирования серверной части, разработки приложений для электронной коммерции)
5. C++ (используется для разработки операционных систем, встраиваемых систем, финансовых приложений, компьютерных игр)
6. C# (используется для разработки настольных и серверных приложений под операционные системы семейства Windows)
7. TypeScript (используется для разработки веб-приложений)
8. Shell (используется для написания скриптов автоматизации каких-либо задач)
9. C (используется для разработки драйверов, операционных систем, приложений реального времени)
10. Ruby (используется для веб-разработки в составе Ruby on Rails, разработки утилит командной строки)
Следует отметить, что ЯП, расположившиеся на первых позициях в списке, преимущественно используются для разработки веб-приложений, а также кроссплатформенных мобильных приложений для смартфонов и планшетов. Таким образом, можно сделать вывод, что помимо свойств языка, таких как гибкость и простота, большое значение при выборе ЯП отводится областям применения разрабатываемых программных продуктов и наиболее соответствующим данным областям методам программирования, используемым при разработке.