Виды и парадигмы программирования составляют фундамент процесса разработки программного обеспечения. Ранее в статье Что такое программирование? мы писали, что процесс создания программы в основном определяется теми закономерностями, которые концентрируются в понятиях виды и парадигмы программирования.
Основные виды программирования
Виды программирования определяют прикладную особенность процесса программирования, содержательная особенность этого процесса характеризуется парадигмой программирования.
В зависимости от предмета приложения различают следующие виды программирования:
- системное программирование, связанное с разработкой операционных систем(драйверов), систем разработки программного обеспечения(компиляторов, отладчиков и т.п.);
- сетевое программирование это процесс создание программных систем, которые будут работать в существующей локальной, корпоративной или глобальной сети;
- прикладное программирование — процесс создание программных продуктов, предназначенных для решения прикладных задач бизнеса, IТ- технологии и т.п.;
- Web-программирование — написание кода на специальных “скриптовых языках” для использования в веб-браузерах или на Web-серверах, предназначенного для создание страниц сайтов, блогов и т.п.;
- мобильное программирование — написание кода на специальных языках для мобильных приложений, под мобильные операционные системы и платформы.
Основные парадигмы программирования
Кроме вида программирования процесс создания программы характеризуется и таким понятием как парадигмы программирования. В общем случае с философской точки зрения парадигма это устоявшаяся система научных взглядов, в рамках которой ведутся исследования (Т. Кун).
В данном случае парадигма отражает систему взглядов на форму(структуру) и содержание процесса программирования. К сожалению, в обиходе наблюдается несколько различных определений парадигмы программирования, которые не всегда точно соответствуют ее научному понятию.
Вот некоторые из них:
- Парадигма программирования — это совокупность идей и понятий, определяющих стиль написания компьютерных программ (подход к программированию).
- Парадигма программирования это способ концептуализации, определяющий организацию вычислений и структурирование работы, выполняемой компьютером.
- Парадигмы программирования — это способ классификации языков программирования на основе их особенностей.
С другими вариантами,не менее экзотических определений, можно познакомиться в статье «Парадигма программирования«.
В этих определениях парадигмы программирования такие понятия как стиль(приемы) программирования, концепция организации вычислений и классификация языков программирования являются синонимами. На наш взгляд это не верно. Это разные вещи. Каждое из этих понятий важно для программирования и заслуживает особого внимания, но для определения парадигмы программирования они не совсем подходят, поэтому в данной статье о них речь не идет.
Ближе всего к научному понятию парадигмы находится следующее определение. Парадигма программирования – это совокупность принципов, методов и понятий, определяющих способ конструирования программ.
Парадигма программирования, как набор принципов и методик по созданию кода программы, ее структуризации, позволяют не только упорядочить процесс ее создания, но и сделать программу структурированной, удобной и понятной другим программистам, работающим в той же парадигме. Именно парадигмы программирования определяют: правила написания, структуру(архитектуру) программы, используемые шаблоны (паттерны) и другие свойства и качества проектируемой программы.
Для определения вида и формализации понятия парадигмы программирования необходимо определиться с принципом, лежащим в ее основе. Приведенные выше определения парадигмы программирования как раз и не корректны из-за того, что в их основе лежат не корректно выбранные принципы. На наш взгляд в качестве такого принципа следует брать принцип декомпозиции(разделения на части) решаемой с помощью создаваемой программы задачи. Тогда в зависимости от использования принципа декомпозиции можно выделить следующие парадигмы программирования:
парадигма императивного программирования — декомпозиции нет, в исходном коде программы записываются инструкции (команды), которые должны выполняться последовательно, а переходы осуществляются с помощью оператора go to, используемые данные могут читаться из памяти и записываться в память;
парадигма структурного программирования, в соответствии с которой любая программа, которая строится без использования оператора go to, а состоит из совокупности трёх базовых управляющих конструкций, реализующих три базовых алгоритмические структуры: последовательность, ветвление и повторение, при этом разработка программы ведётся пошагово, методом «сверху вниз»;
парадигма процедурного программирования, в рамках которой применяется принцип декомпозиции решаемой задачи на отдельные функции, реализуемые программно в виде процедур, в результате создается программа, представляющая собой совокупность взаимодействующих процедур(функций);
парадигма объектно-ориетированного программирования, когда выполняется декомпозиция решаемой задач(предметной области) на объекты, а программа представляется в виде совокупности взаимодействующих объектов, созданных на основе предопределенных типов данных — классов;
парадигма аспектно-ориентированного программирования, когда декомпозиция задачи осуществляется на определенные аспекты(цели, особенности функционирования системы), а в программе реализуется, так называемая, сквозная функциональность, предназначенная для решения специальных задач с точки зрения определенных аспектов;
парадигма декларативного программирования, в которой используется принцип спецификации решения поставленных задач, когда программист описывает проблему, а также то, какой результат хочется получить на выходе, а алгоритм решения задачи при этом не имеет четкого определения.
Примечание. На наш взгляд на современном уровне развития термин парадигма структурного программирования не является корректным. Потому что и процедурное и объектно ориентированное программирование являются структурными. Это понятие было введено Эдсгером Дейкстрой и на тот момент было вполне корректным, поэтому изменять его не будем.
Другие виды парадигмы программирования, которых сегодня достаточно много, в данной статье рассматривать не будем. Остановимся на перечислении. Основные виды или парадигмы программирования: процедурное, операторное, функциональное, логическое, структурное (модульное), объектно-ориентированное,графическое, экстремальное, декларативное; логическое и др.
Иногда можно встретить такое понятие, как парадигма модульного программирования. Но это не верно. Модульное программирование это не парадигма, а способ организации структуры программы в виде взаимодействующих модулей, в каждый из которых можно разместить блоки управляющих конструкций, процедуры, объекты и т.п.
Аналогично компонентное программирование тоже не парадигма программирования, потому что в компонентах также могут размещаться блоки управляющих конструкций, процедуры, объекты и т.п. и это никак не связано с принципом декомпозиции.
Заключение
Программирование это процесс создания программы, представляющей собой совокупность алгоритмов и структур данных в ней обрабатывающих по соответствующим правилам и для достижения поставленной цели, связанной, как правило, с улучшением или повышением эффективности бизнес-процессов.
Виды и парадигмы программирования это фундамент процесса написания кода программы на основе алгоритмов обработки структур данных.
Виды программирования определяют прикладную особенность процесса программирования. В различных видах программирования используются различные алгоритмы и структуры данных.
Парадигмы программирования это набор принципов и методик написания кода программы на основе алгоритмов обработки структур данных.
Для того, чтобы были достигнуты высокие профессиональные навыки в программировании, то для программистов на языках C# и C++ будет полезно знание кроме языков платформы программирования dotNet Framework. Аналогично для бывалых программистов на языка Java следует при разработке приложений учитывать особенности и возможности платформы программирования на языке Java.
Смотрите также…
- Как стать программистом?
- Как стать Web программистом?
- Онлайн школы и курсы IT профессий
- Как изучать простые типы данных языка программирования?
- Как изучать алгоритмы решения задач по математическим преобразованиям?
- Что выбирать язык или платформу программирования?
- Пример процедурного программирования на языке Crystal
- Пример ООП на языке программирования Crystal
- Курсы и высшее образование в профессии программиста
- Интегрированные средства разработки программного обеспечения