предпосылки и история появления объектно-ориентированного программирования (ооаип ооп объектно ориентированное мышление и программирование)

Предпосылки и история появления объектно-ориентированного программирования (ООАиП ООП Объектно ориентированное мышление и программирование)

Предпосылки и история появления объектно-ориентированного программирования (ООАиП ООП Объектно ориентированное мышление и программирование)
Автор
Автор: к.п.н. Румянцев Сергей Александрович
(0)
Предпосылки и история появления объектно-ориентированного программирования
В процессе развития производства программного обеспечения происходило последовательное его усложнение. На заре появления ЭВМ программы писались на языке машинных команд. Машинные команды – это операции которые умеет выполнять ЭВМ или центральный процессор. Они как правило пронумерованы от нуля и представлены в шестнадцатеричной системе. За каждой командой закреплен индивидуальный номер.
По увеличения производительности компьютеров возникла необходимость представлять программы в более удобочитаемом виде, нежели набор цифр. Это предвосхитило появление языка Ассеблера. каждому оператору этого языка соответствует как правило одна конкретная машинная команда, но оператор имеет говорящее название. Таким образом программы стали более читаемыми.
Однако с развитием техники программы настолько увеличились в объеме, что возникла необходимость разработки языков программирования, каждому оператору которого соответствует несколько машинных команд. Таких языков было разработано множество. Самым популярным из них оказался язык Си. Причиной популярности этого языка была его машинно-ориентированность. То есть разработчики постарались сделать так, чтобы одному оператору языка С, соответствовало как можно меньший набор машинных команд (или языка Ассемблера). Необходимость экономии ресурсов компьютера заставила разработчиков использовать наиболее машинно-ориентированный язык и представленных на рынке. Таким образом язык С стал промышленным и повсеместно используемым, благодаря своей быстроте.
Дальнейшее увеличение производительности компьютеров позволило разработчикам писать более объемные и сложные программы, для понимания которых и удобочитаемости, стало не хватать возможностей существующих языков. Это обусловило появление объектно ориентированных языков, в том числе и языка С++, как расширения процедурного языка С, с добавлением к нему объектно-ориентированных средств (возможность создавать классы, использовать наследование и т.д.).
Важно отметить, что языки С и С++ легли в основу новых языков различного назначения: Java, JavaScript, PHP,C#. Новые языки стараются походить на язык С++, и как правило представляют из себя его урезанную версию. Таким образом рынок производства программного беспечения практически полностью принадлежит Си-подобным языкам.
В дальнешем развитии языка С++, явно выразиталсь тенденция накопления кода и использования наработок других программистов, что заключалос в появлении библиотек, различного назначения. Библиотек влючают в себя некоторое количество классов, которые можно использовать в своих программах.
Отсутствие в языке С++ графической составляющей (кнопки, окна, обсласти ввода текст и т.д.) привело к появлению графических библиотек и сред программирования со встроенными графическими библиотеками (Borland C++ Builder; MS Visual Studia; библиотека Qt позволяющая компилировать программы с графической составляющей под все популярные операционные системы; Imbar Codero Code Gear Studia как дальнешее развитие Borland C++ Builder).
При интеграции в новые области применения (веб программирование) так получилось, что сообщество стало ориентировать не на язык С++, а на язык PHP. Сам же PHP в своем развитии, старается быть как можно более пожим на язык С++. Предполагаемый си подобный конкурент языка С++ - С# на проверку оказывается упрощенной, структуированной и более очевидно обустроенной версией языка С++.
Некоторые современные решения с использование Си подобных языков, на столько развились, что разработчик решений на этих языках, в некоторых случаях имеет возможность вообще не уметь программировать. Например при использовании CMS – фактически готовых сайтов, которые надо только заполнить информацией, написанных на языке PHP, значительно реже на язые С#, и очень редко на языках Pyton и Perl. Отдельные приложения позволяют генерировать C++ код, являющий собой целые трехмерные пространства для копьютерных игр и др.

Однако знание объектно-ориентированного программирования (далее ООП) даже для информатиков, не планирующих становиться программистами, необходимо для понимания основ работы программного обеспечение и средств генерации кода, ориентирования в технической документации, предугадания проблем с программным обеспечением и оборудованием.
ООП позволяет не только писать программный код с ускоренными темпами, но делать более логичным и структированным код и техническую документацию. Использование ООП породило новый унифицированный язык моделирования – UML. UML позволяет стадартизированно представлять в виде рисунков и схем структуру, последовательность и принципы работы кода при ООП, что необходимо для технической документации, управления разработками, взаимодействия между программистами, отчета перед заказчиками.
В целом ООП позволяет писать достаточно сложные и объемные тексты программ, выполняющие более сложные задачи, чем процедурное программное обеспечение. При этом ООП позволяет, как правило сэкономить рабочее время программиста, за счет усилленой эксплуатации ресурсов компьютера пользователей. Именно поэтому постоянно растут требования к производительности компьютера, но вместе с тем общество получает возможность работать со все более совершенными и умелыми программами. В качестве примера можно привести сравнение между операционной Windows и операционной системой, написанной на Ассемблере; операционная система написанная на ассемблере занимает объем 1,5Мб, в угоду 8000мб операционной системы Widows, однако Widows очевидно мощнее.
В целом ООП код имеет улучшенные качества сопровождения и модернизации.
Домашнее задание: прочитать введение и материалы до главу 1 (не включительно).

Автор: к.п.н. Румянцев Сергей Александрович
Автор
Автор: к.п.н. Румянцев Сергей Александрович
 

Рейтинг@Mail.ru