Гид по языкам программирования: решения для конкретных задач

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

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 — это определило и свойства языка, и его дальнейшую судьбу. До наших дней и Си, и его наследник С++ — основные инструменты в руках системных программистов, разработчиков операционных систем, драйверов, компиляторов, программного обеспечения для устройств, робототехнических устройств и т. д. До появления языка Си все эти специалисты были вынуждены программировать с использованием низкоуровневых ассемблеров, соответствующих конкретным машинам, для которых велась разработка, что было не слишком комфортно. 

Программисты на Си имеют возможность напрямую работать с памятью: у них есть доступ к «железу» компьютера, отсутствующий (без использования специальных хитростей) у большинства прикладных программистов на других языках. Но это налагает дополнительную ответственность, ведь имея полный доступ к системе, легко испортить её состояние, «сломать» программу в памяти. По этой причине Си рассматривается как «опасный» язык, программировать на котором надо внимательно и с осторожностью. 

Си — достаточно консервативный язык процедурного программирования. Размеренный темп его развития часто рассматривается как плюс. В то же время уже в 1980-х годах сотрудник Bell Labs Бьёрн Страуструп, пришел к выводу, что для решения поставленных перед ним задач, связанных с телефонией, возможностей процедурного программирования не хватает. Он предложил расширить язык Си функциями объектно-ориентированного программирования по аналогии с языком Симула (Simula). В результате получился новый язык, который сначала назывался «C with classes» (Си с классами), а затем был переименован в С++. Заметим, что сам язык с тех пор существенно изменился, а экосистема языка обогатилась многочисленными библиотеками, среди которых упомянем знаковые STL и Boost, без которых не обойтись современному разработчику на C++.

Java, С#

COM_SPPAGEBUILDER_NO_ITEMS_FOUND