Гид по языкам программирования: решения для конкретных задач
Сравнивать разные языки программирования — это непростая задача. Описывая их особенности, очень легко скатиться в банальности или ввязаться в интернет-спор. Поэтому прежде всего хочется заметить, что подавляющее большинство популярных языков программирования достаточно выразительны и позволяют решать более-менее все типичные задачи, которые могут возникать у современного инженера-программиста. Тем не менее, в силу разных причин конкретные задачи могут решаться с помощью конкретного языка программирования более или менее эффективным способом. Иными словами — стоит выбирать для решения каждой задачи подходящий язык программирования, удобный для конкретного программиста.
Python
Python очень популярен сегодня. Начало его разработки относится к концу 1980-х и связано с голландским программистом Гвидо ван Россумом, который и является первым автором этого языка. Со временем развитие языка перешло в ведение фонда Python Software Foundation, а Гвидо был удостоен неформального титула «великодушного пожизненного диктатора», который он сложил с себя только в 2018 году.
Язык Python известен как достаточно дружелюбный для начинающих. По этой причине, а также благодаря наличию огромного количества самых разнообразных прикладных библиотек, Python популярен у неспециалистов: от физиков и географов до лингвистов и биологов. Немалую роль тут сыграло и появление так называемых Jupyter-блокнотов. Они позволяют производить «живые» документы, которые не являются в полной мере программами, а скорее тетрадками, в которых смешаны вычисляющий исходный код, результаты вычислений, пояснения и интерпретации результатов. Сегодня Python используется для анализа данных, социологии и маркетинговых исследований, научных вычислений, а также в машинном обучении (где, впрочем, без знакомства с С++ обойтись едва ли получится).
R
Другой язык программирования, который широко используется в анализе данных — это R. Если Python специально не задумывался как язык для работы с данными, то R был создан специально для этого. R — это язык программирования для непрограммистов. Соответственно, его код интуитивно понятен большинству людей, обладающих каким-то опытом программирования и знаниями в предметной области (например, имеющих базовую подготовку по математической статистике).
Достаточно удобно (и эффективно) с помощью R можно выполнять операции с векторами и матрицами. Обычно R используют для написания небольших программ, предназначенных для проведения конкретных расчетов. Как и в экосистеме Python, программистам на R доступно огромное количество открытых библиотек, содержащих конкретные алгоритмы для решения вычислительных задач, и даже задач машинного обучения.
Если бы надо было расставлять языки программирования как книги по тематическим полкам, то R мог бы оказаться как на одной полке с Python, так и вместе с другими языками, предназначенными для решения инженерных и научных вычислительных задач, вроде Fortran или MATLAB.
Разработка языка была начата в середине 1990-х в Новой Зеландии как открытый проект, и продолжается с тех пор целым сообществом энтузиастов. Любопытно, что имена первых авторов — сотрудников Оклендского университета Росса Айхэки и Роберта Джентлмена — начинаются на букву “R”.
С/С++
В актуальной на сентябрь 2021 года версии известного рейтинга языков программирования TIOBE, язык Си занимает первое, а С++ — четвертое место. В принципе, этим можно было бы и закончить раздел про эти два языка программирования.
Язык Си был разработан в конце 1960-х - начале 1970-х годов в США Деннисом Ритчи. Целью Денниса было создать язык для программирования операционной системы UNIX — это определило и свойства языка, и его дальнейшую судьбу. До наших дней и Си, и его наследник С++ — основные инструменты в руках системных программистов, разработчиков операционных систем, драйверов, компиляторов, программного обеспечения для устройств, робототехнических устройств и т. д. До появления языка Си все эти специалисты были вынуждены программировать с использованием низкоуровневых ассемблеров, соответствующих конкретным машинам, для которых велась разработка, что было не слишком комфортно.