Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ (Классификация языков программирования).pdf
Добавлен: 30.03.2023
Просмотров: 333
Скачиваний: 2
Как и в языках программирования современные гении стремятся создать универсальные среды программирования. У современных программистов популярна среда программирования Microsoft .NET Framework[45]. Ее можно использовать для создания обычных программ и веб-приложений. Неоспоримым преимуществом совместимость к разным языкам программирования, например, к С++, Delphi, C#, причем работать одновременно с ними, в одной программе[46].
Каждая из современных сред обитания имеет достоинства и недостатки. Так, как и с выбором языка для написания. Требуется выбрать среду разработки зависимости от поставленной задачи в программе, так же удобство программиста не на последнем месте.
2.1. Популярные языки программирования
Так как разновидностей ЯП больше сотни, в данной курсовой работе, рассмотрим наиболее популярные, а также те что находятся на слуху. Например, последние годы наиболее популярными и востребованными считаются Java, C, C++, Python, C#, которые входят в топы языков программирования. Именно они составляют основу современных программ и используются при написании любого крупного проекта. Для начала рассмотрим семейство Си.
Cи
Несмотря на то, что язык Cи появился в 1972 году, он остается актуальным и по ныне. На первый взгляд язык Си слишком прост по составу, слишком детализированный, старый и вообще не работоспособный. Однако, именно он оказался в основе разработке таких языков программирования как C++, C#, Java[47]. Язык Си: Машинно-ориентированный; Использует Императивную парадигму; Компилируемый язык. Синтакцис императивных языков в целом имеет вид:
Оператор_1:
Оператор_2:[48]
Язык Си условно относится к низким языкам программирования. Высокая детализация языка команд и большое количество времени и труда, вложенного программистов, делает его сложным для изучения новичка. Низкоуровневые языки ближе к машинному коду, высокие языки программирования от него дальше, для обоих языков требуется транслейтор. Транслейтор занимает деятельность компьютера, снижая производительность. Транслятор может не заметить ошибок, тк большинство элементов данных относятся к целочисленному типу[49]. На этом языке удобно судить и о высокоуровневых алгоритмах, и о низкоуровневом оборудовании. Программист может сосредоточиться на том, что действительно важно.
Его основными преимуществами стали: компактность, быстрота и мощность. Применяется для создания системного и прикладного программного обеспечения. Данный язык универсален для разных тип задач, так же он известен высокой продуктивностью. Язык Си считается языков со слабой системой типизации
Си сочетает в себе черты как языка высокого уровня, так и машинно-ориентированного языка, допуская программиста ко всем машинным ресурсам, чего не обеспечивают такие языки, как Бейсик и Паскаль[50].
У Си как у ЯП существует много отличий от других языков программирования, далее рассмотрим некоторые из них с ЯП Паскаль. Фигурные скобки {} в Си обрамляют тело функции, объединяют несколько операторов в один составной, а в Pascal их заменяют begin и end. Вызов функций имеет вид, например,
Тип <Имя функции> (Список параметров)
{
Операторы тела функции
}[51].
Из отличий символы перевода строки Pascal writeln(`Hello, world`) и Си “Hello, world\n”, в одном случае это writeln и в другом \n[52]. Круглые скобки в ЯП Си обозначают разделение условия и тела, у Pascal do, then, of. В ЯП С++ скобки являются частью имени функции[53]. В языке Basic при описании операторов необязательные параметры в [], а альтернативные параметры используют {}[54].
Детализация языка Си является и плюсом, и минусом. Из минусов: - большое затрачивание усилий программиста для написания программы (времени и процесса написания); - сложность изучения отталкивает к изучению данного языка; - долгий язык на написание программы из-за высокой детализации; - транслятор может пропускать много мелких ошибок. И плюсов: - конкретность проставления задачи/задач, нет «лишних» процессов, грузящих ЭВМ.
В долгосрочной перспективе, язык Си, наиболее выгодный язык для написания ПО, как наиболее надежный и высокопроизводительный[55]. В современном мире все ресурсы измеряемы и условно ограничены: у программиста это время и затраченные усилия, у машины, например, производительность. Для написания грандиозно сложной программы, с экономией ресурсов и энерго-затрат, потребуются знания языки Си. Си – это язык общения программистов. Это единственный язык, компилятор которого есть на всех платформах: от встроенных систем до суперкомпьютеров.
C++
Появился он в 1973 году, так же как и Cи предназначен для общего пользования. Его можно использовать в таких областях как: создание операционных систем, для функций аппаратного ускорения, мобильные приложения, игры, микроконтроллеры, IoT, роботы, веб, системы моделирования, прогнозирования, обработки статистики и в нейронных сетях.
Разработан от языка программирования Си. Для уровня уверенного пользователя потребуются понимание языка Си[56]. Язык программирования С++ сохранил от языка Си быстроту на исполнения кода и универсальность. Написание же самого кода на С++ времязатратный процесс, по сравнению с интерпретируемыми языками (C# , Java, Python[57]), у которых скорость написания кода будет выше и визуально займет больше места . В чистом виде в программах не используется, но нет крупномасштабной программы без использования С++.
Программа в языке С++ может состоять из одной или более функций. Функция – подпрограмма, которую вызывает основной код, и эта функция может повторятся сколько угодно раз. С++ поддерживает множественное наследование классов. Каждый класс содержит данные и функции, которые работают с этими данными[58]. Скобки выделяют функцию, например[59],
Void main () - заголовок функции
{
Int num;
Num=1;
Cout<<” “<<num
} - тело функции.
В языке С++ в начале каждой программы или функции требуется привести список имен (идентификаторов) всех используемых переменных, а во-вторых, указать тип каждой из них. С++ использует логические и отношения операции имеющих только два значения, например, больше или меньше к нулю операнд, оценивается путем его эквивалентности к нулю. Разработчики языка Си вкладывают усилия в детальное написание каждой функции от и до (детализация), разработчики С++ прописывают классы и их взаимоотношения, не вдаваясь в детали, функций, которые находятся внутри классов (объектно-ориентированное программирование). В ЯП С++ окончание строки, как и в С с помощью последовательности \n, а так же с помощью манипулятора endl (end line – окончание строки)[60]. С++ является объектно-ориентируемым языком программирования[61]. Объектно-ориентируемые программы легче понять и редактировать. Благодаря изолированности классов в объектно-ориентированном программировании, неполадки в одном объекте не повлияют на работу программы в целом. Особенность выполнения операций в языке С++, выполняются поочередно, как и у других языков, но уже с учетом заданных разработчиком приоритетов.
Транслейторы (компиляторы) с языка С++ есть на каждой операционной системе, большинство программ переносится с одной платформы на другую. Компилятор с С++ различает заглавные и маленькие буквы в отличие от других языков. Среды разработки и библиотеки данных для С++ в широком доступе, с этим не возникнет проблем[62]. Наиболее широкие возможности языка проявляются в C++ Builder, в котором поддерживается возможность создания VCL компонентов. Имеется реализация VC++.Net, которая также позволяет создавать компоненты (для платформы .Net Framework).
Преимущества C++ над C: -большая безопасность; -возможность писать обобщенный код с помощью шаблонов; -возможность использовать объектно-ориентированный подход; - упрощение кода за счет перегрузки функций и операторов; -более простая обработка ошибок за счет исключений.
Из минусов: - медленнее Си на исполнение кода; - долгий на написание кода; - достаточно сложен для изучения и написания; - использует большое количество сторонних библиотек, что не всегда удобно; - не читабелен из-за длинны и массивности кода; - достаточно долгая компиляция.
Из плюсов: -использует объектно-ориентированное программирование, что повышает производительность разработчиков[63].
Для выбора универсального языка для написания программ под разные задачи, С++ оптимальной выбор. После изучения языка С++, другие языки не должны вызвать затруднения к изучению, а знание С++ будет лишь помогать в разработке ПО. Нельзя не отметить в плюсы языка, колоссальное сообщество программистов, которые постоянно делятся библиотеками, шаблонами и кодами, приходят на помощь новичкам и опытным коллегам. При этом, в силу того, что C++ достаточно сложный язык, оно не изобилует лентяями и людьми, которые могут по 10 раз наступать на одни и те же грабли, подталкивая туда же новичков. Если зайти на любой агрегатор вакансий и посмотреть предложения для С++ разработчиков, то можно увидеть значительную долю. С++, по данным различных агентств, постоянно входит в пятёрку самых популярных языков.
C#
С# был разработан благодаря усилиям Андерса Хейлсберга - создателя компилятора, который лег в основу Turbo Pascal[64] и языка программирования Delphi. Первая версия языка увидел свет в июне 2000 года, а окончательная версия вышла в 2002 году вместе с Visual Studio. Компилятор с C# входит в стандартную установку самой .NET, поэтому программы на нём можно создавать и компилировать даже без инструментальных средств, вроде Visual Studio, Одна из сред разработки для C# CLR и основные сборки.NET Framework[65].
Язык C# многое унаследовал от С++[66] и Java. Как и в предшественниках использует объектно-ориентированный подход в программировании, используются готовые конструкции. Один из недостатков языка заключается в том, что он позволяет создавать приложения только для операционной системы Windows, и кроме того, является весьма тяжеловесным, а значит, программы, написанные на нем, занимают немало места.
.NET использует концепцию JIT-компиляции. Это означает, что программа будет скомпилирована в машинные коды по мере необходимости прямо во время работы приложения. Компиляция проводиться сначала в промежуточный язык, а потом уже из машинного в машинный код.
Язык С# сложно назвать самостоятельным и универсальным, многое заимствовано у других языков и разработан был специально под определенную операционную систему и к определенной среде разработке. При этом язык универсален для различных задач, таких как:
-разработка обычных приложений для компьютера -среда WinForms Application[67] (в основе графическая технология GDI/GDI+). Графика красивее –WPF (DirectX). Производительность WPF выше, чем у GDI+ за счёт использования аппаратного ускорения графики через DirectX. DirectX - API для программирования под Windows, чаще всего используется при программировании игр.
- приложения для магазина – библиотеки данных Windows Store;
- для Веб-приложения + платформа ASP.NET[68].
-мобильное приложение – XamarinStudio (проект Mono) сделает сразу под все платформы. На основе Mono была создана XamarinStudio, которая позволяет создавать мобильные приложения на C#, не используя родные(нативные) для языков платформы (Java[69] и Objective-C).
- написание игры – кроссплатформенный Unity игровой движок, который позволяет создавать двухмерные и трехмерные игры. Очень популярен в среде инди-разработчиков, но берется на вооружение и крупными компаниями.
Из плюсов: -все так же широкодоступные среды и библиотеки; -универсальность; - легче для понимания и изучения чем Си и С++; - можно разрабатывать мобильные приложения под Android и iOS .
Из минусов: - программы на С# занимают не мало места; - компилятор грузит производительность компьютера.
Можно отметить, что во многом Си, С++ и С# - языки программирования не для начинающих. Но освоив их, можно быть уверенным в том, что изучение нового языка займет минимум времени. Познакомиться с ними и написать свои первые приложения можно в специальной среде Borland[70] или Visual Studio.
Java
В начале 90-х, команда ученых разработали улучшенную версию С++. Цель команды была создать язык, который сможет использовать начинающий разработчик с автоматическим управлением памятью и независимую от конкретной платформы[71]. В Java была придумана следующая концепция - всё, что написал программист сначала компилируется в байт код, который не зависит от платформы. Затем байт код выполняется при помощи интерпретатора, называемого JVM (виртуальная машина Java)[72]. Виртуальная машина должна быть установлена на устройство заранее и зависит от платформы. В этом языке имеется строгая типизация, наличие множества встроенных классов, предоставляющих широкие возможности создания как клиентской, так и серверной частей приложения.