Идея статьи навеяна книгой «Философия Java» Брюса Эккеля, в статье дается мое понимание тем, описанных в книге.
Немного истории
На заре компьютерной эры написание программ являлось крайне трудоемким процессом. Это было время зарождения самых основ, начало перехода от математических теорий в прикладную плоскость.
Язык программирования того времени - язык ассемблера, опирался на архитектуру компьютера, на котором писалась программа. Получалось так, что для решения реальной задачи программисту приходилось провести преобразование всех понятий из прикладной области задачи в область архитектуры компьютера, на котором реализуется решение.
Для такого преобразования требуются усилия, оторванные как от непосредственного решения задачи, так и от самого процесса программирования. В результате такого преобразования на свет появляются программы, слабо связанные с прикладной областью, они трудны для понимания и их сложно поддерживать.
Вслед за ассемблером возникли языки более высокого уровня, такие как Fortran, Algol, C - эти языки обладали значительным преимуществом перед ассемблером, но по прежнему заставляли мыслить в контексте структуры компьютера, а не решаемой задачи.
С развитием компьютеров возникает необходимость создания все более сложных и при этом поддерживаемых программ. Как ответ на возникшие трудности появляется объектно-ориентированный подход в программировании (ООП).
Так в чем же сила ООП?
Такой подход имеет общий характер и не накладывает ограничений на тип решаемой задачи. Любые задачи могут быть решены в рамках ООП.
ООП - это гибкая и мощная абстракция, впервые программист начинает мыслить и писать код в контексте самой задачи, воплощая ее термины и элементы в объектах программы. Программисты теперь могут работать без жесткой привязки к архитектуре машины.
Хорошо спроектированную программу легко понять. Читая код, вы видите все элементы исходной задачи и их взаимосвязи, это значительно упрощает поддержку и дальнейшее развитие программы.
#программирование #Java