Предпринимательство при Сталине

Показалось интересным:

Наверное, если бы я сам прочитал лет пять-шесть назад такой заголовок, то сразу решил бы, что речь идет о ликвидации предпринимателей, как класса, перевоспитании на Беломорканале, наказаниях в ГУЛАГе и прочем «кошмарении малого бизнеса». Ну, как же может быть иначе – Сталин, строительство социализма, НЭП давно прикрыт, плановое хозяйство – какое тут может быть частное предпринимательство? А оказалось – могло быть.

http://kprf.ru/rus_soc/99271.html

Вспоминаются стоящие в alma mater здоровенные сейфы, в которых хранятся разного рода документы факультета, с табличками «Артель такая-то Моспромкооперации».

UPD А вообще, меня всегда удивляло, кто выпускал «живопись», которой в фильме Гайдая торговал Балбес.

Выходит, там у них была целая «артель инвалидов», соответствующая описанию из книги В. Иванова «Желтый металл» (по на водке [info]ecoross1):

…иные «художественные» лишь по имени артели поступают достаточно бесцеремонно. В их ларьках и магазинах сбываются раскрашенные гипсовые фигурки, барельефы и прочие безделушки вопиюще-гнусного вида. Некоторые обширные районы поражены настенной коростой в виде рисованных «ковров». Копии картин известных художников доводятся до издевательства над авторами оригиналов и над публикой, продаются багет и рамки, тронутые проказой, отвратительно обляпанные позолотой, будто бы нарочно в подтверждение поговорки: не все то золото, что блестит. В иных местах, в некоторых областях, наша общественность запустила этот участок. И вкус народа развращается безвестными мазилами и фальсификаторами.

К чему приводит толкиенизм

Это является закономерным следствием любых «национально-освободительных движений», созданных толкиенистами.

Про ООП

Снова услышал такую точку зрения на объектно-ориентированное программирование (цитирую другое ее изложение):

С++ и обжектпаскаль — это приятный синтаксический сахар, что-то типа процедур. Что-то типа — в том смысле, что мы «инкапсулируем» некий функционал в более или менее закрытые кирпичики, у которых все потроха внутри и попортить их сложнее.

сиплюсявые Классы — чуть хитрее. Это структурки и код работы с ними, плюс некие странные механизмы наследования.

В общем, утверждается, что ООП — это некое расширение обычного процедурного программирования, делающее более удобным объединение структур данных и работающего с ними кода. Из этого очень часто делается вывод, что, допустим, C++ — это не более, чем ненужная надстройка над обычным C. Этому способствует, скажем, изучение библиотек WinAPI и MFC — так как вторая является «объектно-ориентированной оберткой» над первой, формируется представление, что ООП мало чем отличается от процедурного программирования.

Так ли это? Действительно ли повсеместное использование ООП — это дань моде? Хотелось бы думать, что нет. И сразу же обращу внимание на то, что библиотека WinAPI на самом деле спроектирована с использованием принципов объектно-ориентированного программирования — именно поэтому при сравнении WinAPI и MFC кажется, что «объекты» во второй дублируют «необъектные» понятия первой. ООП — это не замена записи вида f(h, a, b, c) на h.f(a, b, c), это совсем другое. Как определяет его Гради Буч (в книге «Объектно-ориентированный анализ и проектирование»),

Объектно-ориентированное программирование — это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования.

В следующем же абзаце разъясняется, что в объектно-ориентированном стиле можно писать даже на Pascal, Cobol или даже на ассемблере. Правда, делать это неудобно и предлагается использовать специальные «объектно-ориентированные» языки программирования. Оказывается, что в случае добавления к C некоторого количества фич (превращающих его в C++ образца середины 90-х годов) происходит настоящий «переход количества в качество» — а именно, становится возможным использование совершенно другой методологии, которая оказывается более удобной при разработке больших и сложных программ.

«Странные механизмы наследования», в частности, позволяют выразить отношение «A является B» — говоря другими словами, «классы образуют иерархию наследования». Дело не в механизмах (хотя их реализация — крайне интересная штука), а в том, что они выражают. Апологеты ООП утверждают, что «объектно-ориентированное» мышление изначально присуще человеку. Изначально или нет — судить не нам, но вся средневековая философия была как раз «объектно-ориентированной», а началось это все еще с Платона. А именно, Платон считал, что существует «мир идей» и «мир вещей»:

Во-первых, есть тождественная идея, нерожденная и негибнущая, ничего не воспринимающая в себя откуда бы то ни было и сама ни во что не входящая, незримая и никак иначе не ощущаемая, но отданная на попечение мысли. Во-вторых, есть нечто подобное этой идее и носящее то же имя — ощутимое, рождённое, вечно движущееся, возникающее в некоем месте и вновь из него исчезающее, и оно воспринимается посредством мнения, соединенного с ощущением. В-третьих, есть ещё один род, а именно пространство: оно вечно, не приемлет разрушения, дарует обитель всему роду, но само воспринимается вне ощущения, посредством некоего незаконного умозаключения, и поверить в него почти невозможно

Говоря в терминах программирования, существуют описания классов («тождественная идея … отданная на попечение мысли») и их экземпляры («нечто подобное этой идее»). Но труды Платона развивались и дальше. В частности, для средневекового католического богословия важное значение имела так называемая «проблема универсалий» — то есть проблема существования общих, родовых и видовых понятий. Грубо говоря, существуют ли объективно такие понятия, как «человек», общее для всех людей, или же это — просто созданная разумом абстракция? Для богословия был особенно интересен частный случай этого вопроса — если Бог един в трех лицах (Троица), то существует ли он реально и в каком виде? Переводя на язык современного программирования — есть ли «суперкласс» «Бог», для которого «Бог-отец», «Бог-сын» и «Святой Дух» являются «подклассами»? Вообще, философия Платона, Аристотеля и неоплатоников очень здорово излагается в терминах «абстракция-наследование-полиморфизм».

Так или иначе, человеку свойственно видеть вокруг себя объекты и выделять в них что-то общее. Возможно, поэтому ООП оказалось доступно даже для самых тупых «недопрограммистов». Дело не в том, что C++ или Java — «приятный синтаксический сахар», дело в том, что они позволяют стандартными средствами выражать некоторые простые отношения (типа «А является Б») — которые как минимум для «европеизированного» мышления кажутся естественными.

Считайтэ это «вступительной частью» к следующей записи, где я попытаюсь продемонстрировать, как выглядит программирование, «стыкующееся» с другой «философской» основой — а именно, с идеями Л. Витгенштейна о том, что мир состоит из фактов, а не из объектов.

PS На самом деле я это уже демонстрировал, правда, далеко не в «идеально чистом» виде.