Программирование в основе всего

Изменено и дополнено 14.02.2006

"Проект "Россия" - мне понравилось это выражение, услышанное в одной из передач "Что делать?" по каналу Культура. Не страна Россия, не империя, а проект. Масштабный исторический проект, идея, вокруг которой века и тысячелетия формировалось особое культурное пространство, в которое в разное время входили и выходили различные страны и территории. Примерно так же, как люди создают проект в каком-нибудь компиляторе языка С++, включая и исключая из него файлы разных типов. Не только о компиляторе может быть речь, но и о проектировании как стадии создания программного продукта. "Соединенные Штаты Америки", "Европа", "Китай" и т.д. тоже можно мыслить в качестве проектов. Можно также говорить о другого рода проектах, например, «иудаизм», «христианство», «буддизм», «мусульманство», проект, который я условно сейчас назову «эзотерика», проекты «наука», «искусство» и т.д. Вообще этому направлению можно придать гораздо большую общность - проектом можно считать, например, жизнь отдельного человека (в рамках доктрины реинкарнаций особенно), а также самого человека и его тело (комплекс тел, если учитывать эзотерику). Или его семью, или профессию. Общественный проект "Школа" как подчасть проекта "Образование". И т.д. и т.п. Трудно даже помыслить, что НЕ является проектом.

Всё это близко, мне кажется, философии объектно-ориентированных языков программирования. При написании программ возникают проблемы, сходные с теми, что возникают в других видах деятельности. За примером далеко не пойду - на этой моей странице имеется несколько статей по разным темам; регулярно возникает необходимость выделить общее в некой подгруппе этих статей и это общее описать в виде отдельной статьи. При этом нужно соответственно изменять и редактировать большинство статей из этой подгруппы. Пока их мало и они небольшие, это не сверхзадача. Но в больших проектах такая задача становится сложной или очень сложной. Как я понимаю, такого рода проблемы типичны для программирования, и объектно-ориентированное программирование (ООП) возникло для их решения. Точнее, это шаг в том направлении, в котором программирование более адекватно отражает естественный процесс познания, о чем речь в статье "Ключевые слова познания". Мы познаем, классифицируя явления. Классифицировать означает выделить явление, указать его отличительные особенности, т.е. опреДЕЛИТЬ. Однако процесс определения подразумевает выстраивание иерархии явлений/понятий/классов, что означает нахождение связей, т.е. это момент нахождения общего. Таким образом познание заключается в постороении иерархии классов, что объединяет два противоположных процесса - разделения и объединения, дифференциации и интеграции. Однако как сделать хорошую классификацию - на этот вопрос не отвечает ООП. Тем не менее, думается, массовое распространение ООП как необходимо включающего в себя этап осмысленного проектирования с учетом возможного будущего развития программного продукта в конечном счете начнет обратно влиять на культуру человеческого мышления в целом, на отношение к разнообразным крупномасштабным проектам типа христианства. Последние складывались достаточно стихийно и малоосмысленно, особенно с точки зрения возможности развития учения. Напротив, те же отцы-основатели христианства стремились нарисовать законченную и статичную картину, которая фактически отражала как достижения, так и заблуждения той стадии развития общества, в которой они пребывали. Этот аспект осмысленности и «будущно-ориентированности» в прекции традиционно понимаемого объектного программирования на человеческую деятельность вообще интересен более всего.

Кроме того, понятие «программировать» может иметь весьма универсальный смысл. Культура развивается по заданным авторитетами направлениям. Задавать направление и программировать – синонимы в этом контексте. Мир управляется идеями, которые по сути являют собой программы развития.

На эту тему мне посоветовали почитать Гради Буча "Объектно-ориентированное программирование и дизайн", а также почему-то Ayn Rand (Айн Ранд), например, её "Atlas shrugged" (у нас обычно называемая "Плечи атланта"). Последняя, впрочем, интересует меня более как идеолог капитализма, но это уже другая тема.


Рецензии