Новый Мир (№ 1 2005)
Шрифт:
Ладно, закончили. Быстренько закруглив остальные сюжетные линии, отправив настройщика-зека в Чечню, а мясоторговца на тот свет (он разбивается на своем джипе, пытаясь объехать выскочившего под колеса черного пса; оказавшийся поблизости мужичонка-прохожий тут же воровато снимает с трупа часы и трусливо бежит по пустынной дороге в сторону горизонта), — режиссер завершает свое мизантропическое полотно крупным планом старушки-вестницы, которая на музыку песни “О черном коте” кокетливо обещает:
“Е-е-е-е не повезет…”
Ну что тут можно сказать? Все недостатки картины — нигилизм, искусственность, всепроникающий дух энтропии, отсутствие смысла и внутреннего единства, сведение сложного к элементарному, структурного — к вязкой бесструктурности извечного сорокинского говна, — мгновенно становятся плюсами, если взглянуть на дело с точки зрения адекватности фильма художественному миру известного прозаика-постмодерниста. Эксперимент под названием “4” имеет
Впрочем, язык кино не универсален. За его границами располагается обширная область экспериментального видеоарта, где подобные разрушительные жесты только приветствуются. Я не берусь оценивать фильм “4” в системе критериев сontemporary art, но очень хочу надеяться, что все дальнейшие попытки перевести прозу Сорокина на язык движущихся изображений будут располагаться именно в этой области. Не надо только называть это словом “кино”.
P. S. И уж совсем не стоит писать, как написано в пресс-релизе, что в фильме “4” ощущается “неискаженное дыхание Родины”. Зачем же так-то? В нашей жизни и без того слишком много вранья!
WWW-ОБОЗРЕНИЕ ВЛАДИМИРА ГУБАЙЛОВСКОГО
Заметки о программировании
Сеть создали и продолжают создавать инженеры и программисты. И поскольку я на протяжении двух с половиной десятков лет тесно связан с программистской работой, то хочу сказать несколько слов о ней и о людях, которые ее делают.
А начну я со старого анекдота. Впрочем, само представление о “старости” и “юности” во всем, что касается цифрового мира, существенно отличается от мира реального. В информационной вселенной время течет несравнимо быстрее. Два года — это уже эпоха. По этим меркам анекдот относится ко времени компьютерных динозавров — годам, наверное, восьмидесятым.
Сын приходит к отцу-программисту и спрашивает:
— Папа, а почему Солнце каждый день восходит на востоке и заходит на западе?
Отец отрывается от дисплея, смотрит на сына долго и недоверчиво:
— Ты проверял?
— Да, — отвечает мальчик.
— Подтверждается?
— Да, — отвечает мальчик.
— Только ничего не трогай!
Конечно, программисты люди немного сдвинутые, немного не от мира сего. Конечно, они витают в каких-то заоблачных высях и вещи, для обычных людей ясные и внятные, для программиста — как гром среди ясного неба. В общем, как это ни странно, в этом вполне обиходном представлении о профессии много истины. Хотя и программисты есть всякие, и некоторые даже носят галстук.
Наш герой был гениальным программистом и был занят своими гениальными мыслями. Когда сын обратился к нему с вопросом, он, как честный человек и добросовестный профессионал, решил ответить точно и по существу. И поэтому сразу начал строить модель, описывающую движение Земли вокруг Солнца. С первого взгляда задача казалась довольно простой. Есть массивное тело — Солнце, и другое — Земля, тело гораздо меньшей массы — движется вокруг него по орбите, которая описывается законом всемирного тяготения. Тела можно считать материальными точками, орбита устойчива... (Вот здесь-то и остановился бы в своих размышлениях любой нормальный человек, но не наш гений.) “Стоп, — подумал он, — но ведь есть еще и Луна”. Система начала усложняться. Хорошо, учтем поправки, которые вносит масса Луны. Система получившихся уравнений уже не решается точно. Модель начала подрагивать. Это программиста насторожило. Но ведь есть же еще и планеты. Нужно учесть еще их массивное движение и влияние на Землю и друг на друга. Дальше стало еще хуже. Необходимо учесть движение комет и других блуждающих тел, а оно принципиально нерегулярно. Голова закипела. Земля, которая летела по своей орбите, как “мерседес” по автобану, в уточненной модели тащилась, как старый латаный “зилок” по проселочной дороге, жутковато кренясь от сложных и переменчивых гравитационных воздействий. Внезапно программист понял, что он не может доказать устойчивость полученной модели. Более того, на больших временнбых промежутках она скорее всего устойчива и не будет. Его очень удивило, почему Солнечная
— Только ничего не трогай!
Нужно ли выяснять, кто такой программист и что такое программирование? Может быть, и нет. Программист программирует — пишет текст на формальном языке, объясняет менеджеру, что делать надо так-то и так-то, а если, мол, не так — значит, ложь и профанация. Менеджер — управляет: ставит задачу, согласует интерфейсы, воспитывает программиста — чтобы не зарывался в частности и не срывал сроки, пытается максимально прояснить у заказчика, чего же этот заказчик, в конце концов, хотел. Заказчик никак не возьмет в толк, почему такие простые и ясные вещи, как его задачи, никак не обретут ту форму и законченность, которая ему изначально очевидна. Все эти люди пытаются добиться только одного — создать программный код, который был бы удобен, устойчив, эффективен и делал именно то, что должен делать.
И никому из этих людей не интересно, что такое программирование. Не создание определенного пакета, над которым они работают, а программирование как специфический род деятельности. Увы.
Исключения крайне редки, но они все-таки есть. Одно из них — верю, что не единственное, — это статья академика Андрея Ершова “Человеческий фактор в программировании” <http://www.softpanorama.org/Articles/ershov72.html>.
Статья датирована 1972 годом. Что произошло в программировании и в цифровом мире за тридцать с лишним лет, трудно себе представить, я не берусь. И тем не менее. “Попытки осмыслить ситуацию с индустрией производства программного обеспечения довольно редки, и одна из немногих удачных попыток принадлежит академику Aндрею Eршову. Его статья „Человеческий фактор в программировании” является одной из немногих статей „советского периода” развития программирования в России, вызвавших в свое время значительный резонанс на Западе”, — пишет в кратком вступлении к републикации в Softpanorama Bulletin (Jan. — March, 1998) Николай Безруков. Отмечая глубокую давность статьи Ершова, он добавляет: “Тем не менее многие положения этой статьи до сих пор звучат удивительно актуально”. С чем я полностью согласен.
Ершов обращает внимание на необходимость учитывать эстетическое начало программирования и крайнюю нежелательность того, что он называет “конвейерным программированием”, подходом к организации работы, который подавляет творческое начало. Ершов пишет: “Конвейерный метод в программировании может либо убить интеллектуальную компоненту в труде программиста, либо вызвать неврозы... Представьте себе человека, обязанного 8 часов в день, 5 дней в неделю, 50 недель в году решать одни кроссворды, и вы поймете, что такое программист, специализирующийся, например, на написании редактирующих программ. Одним словом, раскрепление людей по элементарным операциям в многомодульной системе — далеко не простая задача”. Свою главную мысль Ершов формулирует так: “...я подхожу к тому, чтобы сформулировать центральный тезис моей речи. Он состоит в утверждении, что программирование обладает богатой, глубокой и своеобразной эстетикой, которая лежит в основе внутреннего отношения программиста к своей профессии, являясь источником интеллектуальной силы, ярких переживаний и глубокого удовлетворения. Корни этой эстетики лежат в творческой природе программирования, его трудности и общественной значимости”.
Не все надежды Ершова, высказанные в его замечательной работе, оправдались. Эпоха всеобщей компьютерной грамотности не наступила. Программирование не стало всеобщим занятием и, видимо, не станет. Аналогия между умением писать и читать на естественном языке и умением программировать на формальном, та аналогия, на которой так настаивал Ершов, не стала реальностью. Видно, у этого есть очень глубокие причины, связанные с формальностью языка программирования и содержательностью языка естественного. Программирование не стало менее элитарным занятием за тридцать лет. Просто в некоторых случаях удалось найти общие решения, которые благодаря простоте интерфейсов позволили уйти от трудоемкого процесса создания формального кода. Но общие решения найдены не для всех задач, а если учитывать то, что область приложений непрерывно расширяется, всегда будут такие, которые не укладываются в существующие рамки, а значит, снова и снова нам придется писать программы. Безусловно, за тридцать лет кардинально изменилась сама среда программирования, языки и операционные системы. Но по-прежнему остались формальный язык и неформальный реальный мир, который не описывается формальными конструкциями в общем виде. И именно этот неформальный мир и противостоит области формальной свободы, в которую программист пытается его погрузить снова и снова и не оставляет своих попыток, несмотря на неразрешимость этой задачи.