в чем смысл абстракции
Смысл абстрактной живописи
Я сам долгое время не понимал смысл абстрактной живописи. Что же привлекает меня в занятиях абстракцией? Что дает для меня? В чем суть абстрактной живописи?
Кто-то скажет, что ничего сложного в такой живописи нет. Любой может нанести на холст набор пятен и линий и создать абстрактную картину. И он будет прав. Абстрактный художник, когда пишет картину, то исходит изнутри и это не зависит от его художественного образования. Важна внутренняя наполненность, духовный мир играет роль, а не умение реалистично изображать предметы.
Можно не верить, что абстракция не уступает по значению классическому искусству. Что это один из важных этапов развития искусства, а не упадок.
Абстрактной живописи возникла, как новый этап в развитии человеческого познания. Ее можно сравнить с открытием теории относительности в физике. Наука перешла к отвлеченным понятиям. Художники стали изображать нечто не существующее, но влияющее на настроение. В 18-19 веке такое было невозможно. Старинные картины похожи на фотографии. Глаза зрителей не воспринимали отвлеченные изображения. Даже людей на карикатуре в 19 веке художники изображали максимально реалистично, так как глаза зрителей не воспринимали упрощенные изображения.
В 20 веке открыли новые факты о работе мозга. О том, что процессы, которые происходят в голове абстрактного художника, наиболее приближены к естественной природе творчества. Мозг в этот момент работает в режиме максимального погружения в подсознание. Появляется возможность проявить то, что скрыто внутри сознания.
Абстрактный экспрессионизм, единственный стиль в живописи, где художник изображает то, о чем еще ничего не знает. Он может создавать образы, о которых никогда до этого не додумался. То же самое касается поэзии. Поэт не знает к какому результату придет. Каким будет произведение? Слова и образы сами приходят в его голову. Смысл стихотворения бывает часто скрыт для автора.
Абстракционизм наиболее идентичен внутреннему миру. Никто другой не сможет повторить картину. Это отпечаток сознания.
Эмоции возникают на поверхности холста с первых секунд работы. Кисть послушно идет туда, куда ведет материал и краски, они управляют рукой. Тогда картина возникает непредсказуемо. Художник становится иногда наблюдателем. Лишь частично поправляя себя. Здесь уже проявляется опыт.
Истинная ценность абстрактной картины таится в глубине холста. Неограниченное множество изображений скрыто под слоями линий. Каждый раз можно увидеть нечто новое.
Абстракция © 2016 Илья Бек
IB 0416
В чем смысл абстракции?
В чем суть абстракционизма?
Абстракционизм — стиль живописи и искусстве в целом, отвергающий реалистичное воспроизведение окружающего мира. Его последователи изображают простые и сложные формы, играют с цветом, используют линии, плоскости и другие объекты, комбинируя их так, чтобы создать у зрителя определённые эмоции.
Что такое абстракция простыми словами?
Абстракция (образовано от латинского слова: abstractio — отвлечение, отделение, исключение). Определение: Абстракция — это идеальный (не существующий в действительности) предмет, созданный в результате абстрагирования — мыслительного процесса образования абстрактных сущностей.
Что такое абстрактная картина?
Абстрактная живопись – это одно из основных направлений современного искусства. Главная идея данного направления – передать гармонию между человеком и искусством, создать определенное гармоничное сочетание линий и цветовых пятен. Абстрактная живопись – это новое искусство, беспредметное и нефигуративное по своей сути.
Что такое абстракция в рисунке?
abstractio – удаление, отвлечение) – беспредметное, нефигуративное искусство – форма изобразительной деятельности, не ставящая своей целью имитацию или отображение визуально воспринимаемой реальности. Абстрактная живопись, графика, скульптура исключают ассоциации с узнаваемыми предметами.
Что показывают абстрактные картины?
Абстракционизм (лат. abstractio – удаление, отвлечение) беспредметное искусство, лишенное конкретных образов. Арт течение, которое не подчиняется классическим канонам рисования. Абстрактные образы перестают изображать действительность, а художественные формы, изображенные художником, не имеют связи с реальностью.
Что значит кубизм?
Что такое абстракция пример?
Что такое абстрактная идея?
Полученный путем абстракции (в 1 знач.); отвлеченный; противоп. конкретный.
Что такое абстрактная концепция?
Понятие «абстрактное» концептуализирует мысленный образ, полученный путём отвлечения (абстрагирования) от тех или иных несущественных свойств или отношений предмета с целью выделения его существенных признаков (см. Абстракция).
Как отличить хорошую абстракцию от плохой?
Обратите внимание на цвета абстрактной картины. Цвета могут быть символичны и вызывать различные эмоции. В качественной абстракции выбор цвета не случаен и работает на общее настроение. С насмотренностью приходит опыт отличать случайное использование цвета от намеренного.
Что такое абстракционизм основоположники этого направления?
Что такое абстрактная живопись и кто из отечественных мастеров?
Какую Живопись называют абстрактной кто из художников впервые?
С. 14). Первые абстрактные произведения появились в конце 1900-х – начале 1910-х в творчестве Кандинского во время работы над текстом «О духовном в искусстве», а первой абстрактной картиной считается его «Картина с кругом» (1911. НМГ).
Какую Живопись называют абстрактной?
Какой сейчас период в искусстве?
Современное искусство (англ. contemporary art; в 1990-х годах в ходу был перевод «актуальное искусство») — совокупность художественных практик, сложившихся во второй половине XX века. Обычно под современным искусством понимают искусство, восходящее к модернизму, или находящееся в противоречии с этим явлением.
Искусство«Я тоже так могу»:
Как понять и полюбить абстрактное искусство
Непонятные пятна, линии и точки как способ заглянуть в себя
Текст: Ксюша Петрова
НА ЭТОЙ НЕДЕЛЕ В ЕВРЕЙСКОМ МУЗЕЕ И ЦЕНТРЕ толерантности заканчивается выставка «Абстракция и образ» Герхарда Рихтера — первая в России персональная экспозиция одного из самых влиятельных и дорогих современных художников. Пока на недавно продлённую выставку Рафаэля и Караваджо и грузинский авангард в ГМИИ им. А. С. Пушкина стоят очереди, Рихтера можно посмотреть в комфортной компании пары десятков посетителей. В таком парадоксе виновато не только то, что Еврейский музей сильно уступает в популярности Пушкинскому или Эрмитажу, но и то, что многие до сих пор относятся к абстрактному искусству скептически.
Даже тех, кто ориентируется в совриске и хорошо понимает, какое значение для мировой культуры имеет «Чёрный квадрат», отпугивает «элитарность» и «недоступность» абстракции. Мы иронизируем над произведениями модных художников, поражаемся аукционным рекордам и опасаемся, что за фасадом искусствоведческих терминов окажется пустота — ведь художественные достоинства работ, напоминающих детские каракули, иногда вызывают сомнения и у профессионалов. На самом деле ореол «недоступности» абстрактного искусства легко развеять — в этой инструкции мы постарались объяснить, почему абстракцию называют «буддийским телевидением» и с какой стороны к ней подойти.
↑ Герхард Рихтер. Ноябрь 1/54. 2012
Не пытайтесь выяснить,
что хотел сказать художник
В залах, где висят полотна эпохи Возрождения, сориентируется даже не очень подготовленный зритель: по крайней мере, он сможет легко назвать, что изображено на картине — люди, фрукты или море, какие эмоции испытывают герои, есть ли в этом произведении сюжет, знакомы ли ему участники событий. Перед полотнами Ротко, Поллока или Малевича мы чувствуем себя не так уверенно — на них нет объекта, за который можно зацепиться взглядом и порассуждать о нём, чтобы, как в школе, выяснить, «что хотел сказать автор». В этом и состоит главное отличие абстрактной, или беспредметной, живописи от более привычной нам фигуративной: художник-абстракционист вообще не стремится изобразить окружающий мир, он не ставит перед собой такую задачу.
Если внимательно посмотреть на последние два века истории западного искусства, становится понятно, что отказ от предмета в живописи — не каприз кучки нонконформистов, а закономерный этап развития. В XIX веке появилась фотография, и художники освободились от обязанности изображать мир таким, какой он есть: портреты родственников и любимых собачек стали делать в фотоателье — получалось быстрее и дешевле, чем заказывать у мастера картину маслом. С изобретением фотографии исчезла необходимость скрупулёзно копировать то, что мы видим, чтобы сохранить это в памяти.
← Джексон Поллок.
Стенографическая фигура. 1942
К середине XIX века некоторые начали подозревать, что реалистическое искусство — это ловушка. Художники в совершенстве освоили законы перспективы и композиции, научились изображать людей и животных с необыкновенной точностью, обзавелись подходящими материалами, но результат выглядел всё менее убедительно. Мир начал стремительно меняться, города становились больше, началась индустриализация — на этом фоне реалистичные изображения полей, батальных сцен и обнажённых натурщиц показались устаревшими, оторванными от сложных переживаний современного человека.
Импрессионисты, постимпрессионисты, фовисты и кубисты — художники, которые не побоялись снова поставить вопрос о том, что важно в искусстве: каждое из этих направлений использовало опыт предыдущего поколения, экспериментируя с цветом и формой. В итоге некоторые художники пришли к тому, что контакт между автором и зрителем происходит не через проекции реальности, а через линии, пятна и мазки краски — так искусство избавилось от необходимости что-либо изображать, предлагая зрителю ощутить ничем не замутнённую радость от взаимодействия с цветом, формой, линиями и текстурой. Всё это отлично сочеталось с новыми философскими и религиозными учениями — в частности, теософией, а локомотивы русского авангарда Василий Кандинский и Казимир Малевич разработали собственные философские системы, в которых теория искусства связана с принципами идеального общества.
В любой непонятной ситуации используйте формальный анализ
Вот кошмар, в котором может оказаться каждый любитель современного искусства: представьте, что вы стоите перед восхитительной, как написано в путеводителе, картиной Агнес Мартин и не чувствуете ровным счётом ничего. Ничего, кроме раздражения и лёгкой грусти — не потому что картина вызывает у вас такие ощущения, а потому что вы вообще не понимаете, что здесь нарисовано и куда нужно смотреть (вы даже не уверены, что кураторы повесили работу нужной стороной). В такой ситуации на помощь спешит формальный анализ, с которого стоит начинать знакомство с любым произведением искусства. Выдохните и попробуйте ответить на несколько детских вопросов: что я вижу перед собой — картину или скульптуру, графику или живопись? С помощью каких материалов и когда это было создано? Как можно описать эти формы и линии? Как они взаимодействуют? Двигаются они или статичны? Есть ли здесь глубина — какие элементы изображения находятся на первом плане, а какие на втором?
← Барнетт Ньюман. Без названия. 1945
Следующий этап тоже довольно простой: прислушайтесь к себе и попробуйте определить, какие эмоции у вас вызывает то, что вы видите. Весёлые эти красные треугольники или тревожные? Ощущаю ли я себя спокойно или картина давит на меня? Контрольный вопрос: пытаюсь ли я понять, на что это похоже, или позволяю своему разуму свободно взаимодействовать с цветом и формой?
Помните, что важна не только картина, но и рама — или её отсутствие. В случае с теми же Ньюманом, Мондрианом или «амазонкой авангарда» Ольгой Розановой отказ от рамы — осознанный выбор художника, который приглашает вас отбросить старые представления об искусстве и мысленно расширить его пределы, буквально выйти за рамки.
Чтобы чувствовать себя увереннее, можете запомнить простую классификацию абстрактных произведений: их принято разделять на геометрические (Пит Мондриан, Элсуорт Келли, Тео ван Дусбург) и лирические (Элен Франкенталер, Герхард Рихтер, Василий Кандинский).
Что такое абстрактное мышление: как и зачем его развивать
Что такое абстрактное мышление
Абстрактное мышление — это мышление об объектах, принципах и идеях, которых нет в физическом мире. С помощью абстрактного мышления мы связываем разные явления между собой и выстраиваем их в общую картину, чтобы использовать полученные выводы на практике.
При абстрактном мышлении объекты заменяют символами, метафорами и аналогиями. Например, чтобы понять неопределенные понятия свободы, счастья или любви — вещей, которых не существуют физических. По-другому такое мышление называют обобщенным: когда перед нами нет четкого набора знаний или данных, мы предполагаем, догадываемся и делаем общие выводы.
Абстрактное мышление помогает отойти от границ и четких определений и мыслить шире существующих понятий.
При конкретном мышлении мы оперируем существующими предметами: деревом, столом или человеком. При абстрактном — используем общие термины, например «неопределенная переменная X». Абстрактное мышление помогает обобщать и комбинировать информацию, которую мы собираем на уровне чувств, и устанавливать ее связь с окружающим миром.
Пример из жизни. Представим, что создаем проект с нуля. Конкретное мышление поможет составить план действий, смету и расписать конкретные инструменты, которые пригодятся в работе. Абстрактное мышление будет отвечать за творческую сторону вопроса. Поможет объяснить инвестору зачем такой проект нужен людям и как он пригодится в будущем. В большинстве случаев человеку следует пользоваться сразу двумя типами мышления и менять их в зависимости от поставленной цели.
Зачем нужно абстрактное мышление
Абстрактное мышление развивает творческую сторону человека. Креативность нужна людям любых профессий. Она помогает придумывать новые идеи, проекты, искать неожиданные инструменты для выполнения сложных или повседневных задач. Креативный подход улучшает общее качество жизни человека и повышает его эффективность. Абстрактное мышление считают продвинутым навыком.
Люди, которые умеют мыслить абстрактно:
Объясним абстрактное мышление через юмор. Комики наблюдают за собой и окружающим миром, собирают, анализируют информацию и превращают ее в стендапы и миниатюры. Их шутки часто строятся на неочевидных связях, подмеченных при помощи абстрактного мышления. Люди других профессий могут пользоваться этим инструментом, чтобы привносить в свою работу идеи из смежных или далеких областей.
Человек, который использует абстрактное мышление, оперирует набранными знаниями и складывает их в определенную систему. Например, применяет забытые навыки из детства во взрослой жизни, слушает исторические подкасты и внедряет новые знания в технической профессии. Грубо говоря — совмещает несовместимое и получает из этого выгоду.
Формы абстрактного мышления
Абстрактное мышление состоит из понятия, суждения и умозаключения. Когда человек начинает мыслить абстрактно, он последовательно проходит через все три формы и в результате приходит к общему выводу.
Понятие. Помогает объединять общие свойства предметов или явлений. Свойства могут различаться по предназначению, но принадлежать к одному кластеру вещей. Например, хрущевка, дуплекс, высотка и таунхаус. Все они относятся к зданиям, но в некоторых живут люди, в других расположены офисы, в третьих — открывают кафе.
Суждение. Это мысль, которая утверждает что-либо о предмете. Суждение бывает правдивым или ложным, простым или сложным. Например, утверждение «Дом стоит на поверхности» — будет простым. Сложный вариант — «Дом стоит на поверхности, потому что у него есть фундамент». Оба утверждения — правдивые.
Суждения становятся ложными, когда мы руководствуемся личным интересом или собственными доводами, а не объективной действительностью. Пример такого суждения — «Дом стоит на поверхности, потому что его держат черепахи».
Умозаключение. Это мысль, которая сформировалась из нескольких суждений. Умозаключение состоит из предпосылки, вывода и заключения. Предпосылка — это суждение о понятии. Вывод состоит из логических размышлений о суждении с добавлением мыслей о других суждениях. Заключение становится результатом абстрактного мышления. Например:
«В доме есть окна» + «В доме нет сквозняка» → «В окнах дома нет щелей»
Как развить абстрактное мышление
Швейцарский психолог Жан Пиаже утверждал [1], что абстрактное мышление формируется в человеке в самую последнюю очередь — в возрасте от 11 до 16 лет. У одаренных детей раньше. При этом часть абстрактного мышления доступна детям, даже если они не могут выстраивать сложные логические цепочки. Например, такие дети делают абстрактные выводы о добре и зле на основе сказок.
Часть психологов утверждают, что абстрактное мышление — не естественная стадия развития. Абстрактное мышление не относится к основным способностям человека, а формируется на почве набранных знаний, опыта и окружающей культуры. При этом абстрактное мышление возможно развить и во взрослом возрасте. Такая работа улучшит креативность и творческую сторону сознания.
Вот несколько способов развить абстрактное мышление.
Решайте головоломки. Пазлы и логические задачи помогут найти неожиданные решения.
Исследуйте оптические иллюзии. Смотрите на вещи под разными ракурсами.
Импровизируйте. Запишитесь в импровизационный театр или создайте такой в кругу друзей. Импровизация развивает воображение и помогает мыслить абстрактно.
Делайте поделки. Исследование PNAS [2] доказывает, что декоративно-прикладное искусство развивает креативность у людей из инженерных, математических и технологических областей.
Если у вас есть дети, займитесь поделками вместе. Например, сделайте гоночные болиды из пластиковых бутылок и катушек от ниток. Посмотрите, как организовать такое обучение дома:
Играйте со словесными оборотами. Метафоры, сравнения и аналогии стимулируют абстрактное мышление. Подумайте, как называть предметы по-другому. Например, вместо зеленой стены представьте стену цвета кактуса или мха.
Придумывайте ассоциации. Начните с одного слова и по цепочке выстраивайте линию ассоциаций с каждым последующим. Здание → дом → уют → семья → счастье. Упражнение укрепит умение искать неожиданные связи между предметами и понятиями.
Когда абстрактное мышление не поможет
Чрезмерно развитое абстрактное мышление может привести к негативным последствиям. Творческие люди часто говорят о своих проблемах с ментальным здоровьем, а люди с сильно развитым конкретным мышлением считают подобные высказывания напускными.
Человек с развитым воображением может представлять худшие сценарии развития событий или катастроф, усугубив свое психическое состояние. Или обобщать предметы, между которыми нет связей. Например, считать себя неудачником после одного незначительного промаха. Абстрактное мышление может усилить беспокойство [3], симптомы депрессии или обсессивно-компульсивного расстройства.
Чтобы избежать подобных последствий оставайтесь в балансе между абстрактным и конкретным мышлением. Такой подход поможет смотреть на мир творчески, но при этом оставаться в рамках реальности и не подрывать психологическое состояние.
Что еще почитать об абстрактном мышлении
Книги о развитии абстрактного мышления:
Причуды абстракций
Что такое абстракция?
Википедия определяет абстракцию и процесс абстрагирования следующим образом:
Абстра́кция (от лат. abstractio — отвлечение) — отвлечение в процессе познания от несущественных сторон, свойств, связей объекта (предмета или явления) с целью выделения их существенных, закономерных признаков; абстрагирование; теоретическое обобщение как результат такого отвлечения.
В европейской философии и логике абстрагирование трактуется как способ поэтапного продуцирования понятий, которые образуют всё более общие модели — иерархию абстракций. Наиболее развитой системой абстракций обладает математика. Степень отвлечённости обсуждаемого понятия называется уровнем абстракции. В зависимости от целей и задач, можно рассуждать об одном и том же объекте на разных уровнях абстракции.
Гради Буч определяет понятие абстракции значительно проще, но смысл тот же:
Абстракция выделяет существенные характеристики некоторого объекта, отличающие его от всех других объектов.
Зачем нужна абстракция?
Абстракции выполняют защитную функцию и помогают нам не сойти с ума от переизбытка информации. Представьте, как бы нам жилось, если при письме шариковой ручкой пришлось бы думать о том, что миллиарды молекул чернил взаимодействуют с молекулами бумаги, чтобы получилась буква. Другими словами, не тратя время на ненужные подробности, мы можем ухватить самую суть — взглянуть на проблему «сверху».
Если бы не фотография с высоты птичьего полета, можно ли было бы себе представить насколько правильно спроектирована Барселона? Кстати, про пример с шариковой ручкой, читать бы тоже не получилось — начертания одной и той же буквы на письме отличаются даже у одного человека.
Абстрактное мышление — это механизм, который позволяет нам перерабатывать и усваивать кучу новых сведений. Если бы не было абстракции, то единственный вариант для нас — это остаться очень примитивными существами.
В Бразилии живет племя небольшое племя индейцев Пираха. Представители этой народности обладают крайне скудным абстрактным мышлением. Их алфавит состоит из трех гласных и восьми согласных. У них нет слов, обозначающих цифры, вместо цифр у них два понятия — несколько и много. У них нет цветов — только понятия светлый и темный, времени и истории — они живут только сегодняшним днем и помнят только то. что помнит старейший из ныне живущих; нет — религии, ремесел, искусства. У них еще много чего нет в нашем привычном понимании. И это все потому, что не развито абстрактное мышление. Правда, справедливости ради, стоит отметить, что при этом они себя ощущают абсолютно счастливыми людьми!
Итак, абстрагирование нам нужно как способ познания и описания окружающего мира, для обмена информацией друг с другом. Абстракции позволяют провести декомпозицию предметной области на набор понятий и связей между ними.
На картинке изображен Legoland в Лондоне. Несмотря на то, что все предметы собраны из детского конструктора, мы без труда узнаем в них дома, окна, двери, городские кварталы, людей.
Барьеры и побочные эффекты абстракций
Чтобы понять ключевые свойства абстракций проведем аналогию с построением проекций на плоскость.
Предположим, что у нас есть три фигуры: шар, цилиндр и параллелепипед, при этом ось симметрии цилиндра, проходящая через центры окружностей в основании, параллельна какой-нибудь оси симметрии параллелепипеда. Очевидно, что можно выбрать две плоскости для построения проекций таким образом, что шар и цилиндр спроецируются в окружности, а цилиндр и параллелепипед — в прямоугольники.
Проекция в нашем примере иллюстрирует абстракцию объекта — геометрической фигуры. Что мы видим — на одной плоскости не отличишь проекции шара и цилиндра, а на другой — цилиндра и параллелепипеда. Этот эффект называется барьером абстракции. Абстракция представляет не весь объект целиком, а только лишь его существенный набор характеристик.Нужно быть готовым к тому, что некоторые очень непохожие друг на друга объекты, могут стать неразличимыми. Если это неудобно, то нужно выбирать другой набор абстракций.
С другой стороны, как мы видим из примера, цилиндр, может проецироваться и в окружность, и в прямоугольник — объекты с различными геометрическими свойствами, отличными от тех, что есть у цилиндра. Наличие у абстракции собственных свойств, отличных от свойств абстрагируемого объекта, называется побочным эффектом абстракции.
На самой первой картинке изображены две фигуры, собранные из щепок, так что при определенном освещении они отбрасывают «человеческие тени». Мне, например, кажется, что там один силуэт мужской, а другой — женский. Это тоже побочный эффект абстракций. Теперь мы можем классифицировать все фигуры по их тени.
Примеры абстракций
Сфера применения | Абстракция | Комментарий |
---|---|---|
Целые числа | Число из кольца Zp, где p = 2^разрядность (8, 16, 32, 64 бита) | Данная абстракция позволяет представить целые числа только из отрезка –p/2+1 до p/2. Побочный эффект – проблема переполнения. |
Вещественные числа | Числа с плавающей точкой | Вещественных чисел несчетное число, а чисел с плавающей точкой — всего лишь конечное. Это значит, что несчетное количество вещественных чисел представлены одним числом с плавающей точкой. Побочный эффект – ошибка округления, из-за который два числа нельзя сравнивать с помощью операции сравнения, а лишь по модулю некоторого маленького epsilon |a-b| a == b, или a/b*1000 может сильно отличаться от a*1000/b. Появилась даже целая дисциплина в математике – численные методы, которая изучает как организовать вычисления с плавающей точкой так, чтобы результаты не сильно отличались от вычислений с вещественными числами. |
Деньги | Числа с плавающей точкой | Погрешность округления чисел с плавающей точкой делает, если не невозможным их использование для финансовых операций, то, по крайней мере, сильно усложняет жизнь. В любом случае, я бы сначала подумал в сторону написания отдельного класса для денежных единиц. |
Изображение | Машинная графика | Машинная графика развивается семимильными шагами, чтобы сделать изображение на экране компьютера все более реалистичным. |
Программное обеспечение | Процедура | Процедура является базовым элементом декомпозиции в процедурном программировании. Побочный эффект — процедура жестко заданная последовательность команд, которую невозможно изменить без переписывания самой процедуры. |
Программное обеспечение | Класс | О классах будем говорить ниже. |
Предметная область | Абстракция сущности и связи между сущностями | Побочный эффект — отражает представление, заблуждения, предубеждения и т.д. о предметной области конкретного субъекта. |
Бизнес-логика | Процедура | Как уже говорилось выше — побочный эффект процедуры — жесткая последовательность команд. Бизнес-логика же подвержена изменениям, как правило содержит много исключений, о которых пользователи обычно забывают рассказать. Попытка представить бизнес-операцию в виде процедуры часто делает терпит неудачу. |
Программное обеспечение | Поток для распараллеливания операций | Многопоточное программирование получилось настолько сложным для восприятия, что немного людей в нем разбирается. |
Квадрат — это прямоугольник, у которого все стороны равны. | Класс квадрат нельзя наследовать от прямоугольника. | Классы — это абстракции. У них есть свои собственные свойства, которые отличаются от математических объектов и которые делают невозможным наследование. |
Классы
Гради Буч так определяет ООП:
Объектно-ориентированное программирование — это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования.
В этом определении самый важный момент — это иерархия наследования. Потому что именно наследование отличает ООП от всех других методологий.
Два основных принципа человеческого мышления — это группировка и обобщение. Классы — это, по сути, абстракции механизмов группировки и обобщения человеческого мозга. Естественно, со своими побочными эффектами и барьером. При этом группировка достигается тем, что похожим объектам сопоставляется один класс, а обобщение в ООП достигается за счет иерархии классов. Иерархии классов реализуются через полиморфизм.
ООП, кстати, интересно еще хотя бы и тем, что это, пожалуй, последняя парадигма программирования на данный момент, которая поддерживается на аппаратном уровне.
Главный побочный эффект классов — они отражают опыт, стереотипы, предубеждения того программиста, который их написал. Отсюда следует, что разные люди получат разный набор классов для одной и той же задачи. Более того, один и тот же человек, решая одну и туже задачу, но в разные моменты времени, получит разный набор классов, просто потому что его жизненный опыт меняется.
Второй побочный эффект, который стоит отметить — чужой код всегда менее понятный, чем свой собственный.
Разберемся почему так происходит. Когда человек пишет код, для него естественнее двигаться снизу вверх — от более низкоуровневых компонент к более высокоуровневым. Сначала написали один класс, потом второй, который зависит от первого, затем третий, который зависти от первого и второго, четвертый — от третьего и т.д.
Когда же человек пытается понять чужой код, он как раз двигается наоборот — сверху вниз. То есть сначала понимает общую суть, затем разбивает на компоненты, потом пытается понять суть каждого компонента и т.д. Часто эти движения мысли снизу вверх и сверху вниз у разных людей не совпадают. Естественно, что изучающему чужой код было бы легче, если разбиение кода на компоненты совпадало с его собственными убеждениями, как надо делать. Если это не так, придется затрачивать определенные усилия, чтобы понять ход мыслей разработчика. Поэтому, когда кто-то говорит, что здесь «полный хардкод», но если я перепишу, то будет все проще и понятнее. Это всегда 100% правда… Но только для него, для остальных ценность переписывания уже не так очевидна.
Кстати, если ничего не предпринимать специально, то при разработке снизу вверх, код становится сильно связанным между собой, то есть не повторно используемым. Чтобы побороть этот эффект надо следовать принципу инверсии зависимостей (The Dependency Inversion Principle).
Проиллюстрируем как проявляется описанный побочный эффект на простом примере. Многие жители крупных городов закупаются в крупных супермаркетах. Предположим, что жена отправляет мужа за покупками и, чтобы он не забыл, как обычно, чего-нибудь, составляет список «для тех кто в танке».
Постараемся проследить ход ее мыслей:
— Так чего я сегодня буду готовить на ужин?
— Надо приготовить чего-нибудь вкусненькое, чтобы побаловать ребенка.
— Так, нужна будет мука, молоко.
— Кажется в миксере сели батарейки.
— Стоп! Ребенку нужны витамины. Морковь. Буду делать морковный сок. и мандарины. Скоро же Новый год!
— А хлеб дома есть? Нет, кажется, нет.Значит, надо купить!
— Еще надо купить масло.
— Забыла про ребенка — витамины. Купить яблоки.
— Чего-то ручка плохо пишет. Наверное скоро кончатся чернила. Надо купить!
— Так, ребенку надо купить сока.
— А еще игрушку — пусть порадуется.
— Картошка у нас есть на борщ? На борщ хватит, но на неделю нет. Значит тоже надо купить.
— Чуть не забыла учительница просила принести две тетради.
— К борщу нужна сметана.
— Вроде сахар кончился.
— Ребенок любит виноград.
— И еще надо купить бутилированной воды.
Когда приходит муж в магазин то, что он обнаруживает? Указанные в списке товары оказываются в разных частях магазина. Обычно список длинный, поэтому запомнить что-либо, что было уже куплено достаточно трудно. На это накладывается, что какие-то отделы временно закрыты — идет выгрузка товаров, какого-то товара нет в продаже, плюс толчея, зимняя одежда. Более опытные товарищи ходят с карандашом или ручкой с очень озабоченным видом и постоянно смотрят в свой список. Но, в итоге, все равно, что-нибудь да забудешь купить. По своему опыту могу сказать, что это «что-нибудь» окажется самым важным, из-за чего вообще и стоило ехать в магазин.
Еще одно важное наблюдение — невозможно по самим абстракциям определить насколько удачными они получились. Это можно сделать, только если мы попытаемся их использовать на практике. И тут уж выясняется, что одни абстракции лучше подходят для задачи, а другие — хуже. А если еще немного изменить исходные условия, то и прежний «хороший» набор абстракций уже может не работать. Например, второй список покупок из примера перестанет работать, если прийти с ним в другой магазин с иным порядком выкладки товаров. Он станет ничем не лучше, чем первый.
Отсюда вывод — невозможно придумать набор классов, который подойдет на все случаи жизни. В статье The Open-Closed Principle это называется стратегическая замкнутость.
Естественный вопрос, а как сразу создавать хорошие абстракции. Увы, но на этот счет нет точного ответа. Зато со временем выработался набор практик, который говорит, как надо поступать, и обещает, что в этом случае будет хороший результат. К таким практикам относится рефакторинг, стандарты кодирования, code review, объектная гимнастика и т.д. Цель данных практик — направить ход мыслей группы разработчиков в одном направлении, тогда шансов, что чужой код будет понятнее, станет больше. Отношение к каждой из практик у отдельно взятого человека зависит лишь от приобретенного им опыта использования практики. Часто слова «Это не работает» надо интерпретировать как «Я пробовал — у меня не получилось». Нет никаких объективных аргументов «ЗА», равно как и «ПРОТИВ».
Так зачем нужно тогда ООП?
Проведем параллели между естественным языком и ООП
естественный язык | ООП |
---|---|
Слово | класс |
Правила | Синтаксис |
Жанр | Архитектура |
литературные приемы | паттерны |
ООП — это инструмент, который создавался с прицелом на большие по размеру программы. Но, это всего лишь один из инструментов, который потребуется, чтобы написать крупный проект.
Меня всегда удивляют, статьи в стиле Почему я люблю X или Почему я не люблю X. Все прекрасно понимают, что X — инструмент. Ведь нет же таких статей про лопату. Хотя, кто знает, ведь ООП существует несколько десятилетий, а лопата несколько тысяч, и быть может где-нибудь в в каменном веке шли жестокие холивары на тему, что лучше лопатка мамонта или мотыга из камня?