С обывательской точки зрения происшедшее можно классифицировать как массовые убийства с целью грабежа. Но описанный конфликт не нарушает ни одного правила игры. Собственно говоря, игра в этом и заключается. Конечно, владельцам сервера не слишком нравится, что клан-победитель может конвертировать полученные ценности в обычные деньги, но повлиять на это они не могут — в конце концов, добыча была завоевана «честно», без нарушения правил. И очевидно, что интересовал игроков в первую очередь процесс, а то, что заработанная сумма оказалась велика — ну, бывает. Повезло. Точно так же, как не повезло проигравшим, которые потеряли не только тщательно собираемые сокровища, но и затраченные (или неполученные от продажи) средства.
   Как регулировать такие вопросы? Не с юридической точки зрения (это было бы слишком сложно), но хотя бы в какой системе ценностей нужно рассматривать те или иные действия? Непросто сказать себе «это всего лишь игра», если в результате поражения ты теряешь ощутимые суммы. Если говорить о Second Life, то такая отговорка вообще невозможна — разумеется, это игра, но игра почти всерьез и на вполне серьезные деньги.
   Ответов на этот вопрос пока нет. Исследователей, которых интересует виртуальная экономика, пока немного. Крупных коллизий, неоднозначность которых имеет смысл обсуждать, слава богу, тоже. Но этот несуществующий рынок растет. И, простите, существует. По разным оценкам, объем рынка «воображаемых товаров» составляет от 200 (30 млн. — ежегодный оборот виртуальных продаж на eBay; порядка 100 млн. долларов в год тратится на покупку ножей, мечей и доспехов в Азии) до 900 млн. долларов в год! Численность потребителей оценивается в 10—20 млн. человек.
Большая Эдда
   Последние данные я позаимствовал из статьи одного из самых серьезных исследователей виртуальной экономики Эда Кастроновы (Ed Castronova). Но Эд и сам по себе является живым примером конвертации виртуальных достижений в реальные.
   В 2001 году был он никем и звали его никак. Пожалуй, главной характеристикой 38-летнего Эда Кастроновы было слово «неудачник». Как ученый-экономист он мог признать себя несостоявшимся. Выбранная им специализация никого, кроме самого Эда и его научного руководителя, не интересовала, статьи в научных журналах печатали неохотно (а читали, вероятнее всего, еще неохотнее). Человек другого склада мог бы спиться, но Кастронова нашел отдушину в онлайновых играх. Каждый вечер он подключался к Интернету и увлеченно играл в Everquest. До тех пор, пока не заметил что-то странное.
   В Everquest была своя экономика. По меркам реального мира довольно примитивная, но экономика. В рамках игры для покупки ценностей использовалась своя валюта, но шикарные доспехи или отличную броню можно было приобрести на обычном онлайн-аукционе, заплатив за нее с кредитки. Это заинтриговало Кастронову, и он не поленился и, проанализировав данные шести сотен аукционов, обнаружил, что каждый игрок генерирует в среднем 319 монет в час. В пересчете на американские доллары получалось, что каждый игрок зарабатывает 3,42 доллара в час (считаются, правда, лишь часы, проведенные в игре). А годовой доход на «душу» населения составляет 2266 долларов.
   Результат удивительный. Потому что, если бы Everquest существовала физически, она занимала бы 77-е место в списке самых богатых стран мира. Выше Индии, Болгарии и Китая. Место, конечно, не очень высокое, но, между прочим, в 2001 году Россия тоже болталась где-то в этом районе. При том что наша страна вполне себе существует, а нефть в ней еще не перевелась (но в 2001 году цены были другие).
   Ни на что особенно не рассчитывая, больше из интереса, Кастронова завершил исследование и опубликовал его в Сети. Как ни странно, он оказался первым исследователем, обратившим внимание на «виртуальную экономику», — большинство ученых и не подозревало о таком явлении. Статья — при всей своей научности — была написана просто и доступно, так что о Кастронове узнали не только собратья по цеху, но и онлайновые игроки, интересы которых не ограничиваются виртуальным миром. В отсутствие жесткой конкуренции за несколько лет Кастронова стал одним из ведущих экспертов в области, которую сам же и открыл. Сегодня он работает в Университете Индианы по своей новой специальности; буквально в ближайшие месяцы будет опубликована его первая книга, посвященная виртуальным или, как их называет Кастронова, «синтетическим» мирам, — так несерьезное по меркам взрослых людей, хобби неожиданно принесло человеку хорошо оплачиваемую должность и уважение коллег.
Вместо заключения
   У синтетических миров есть еще одно свойство, которое, к сожалению, пока никак не используется, а перспективы тут могут быть гораздо шире, чем перспективы эксплуатации искусственной макроэкономики. Хорошо спроектированный виртуальный мир является идеальной тестовой площадкой для экономических или социальных экспериментов. Его можно максимально приблизить к реальному миру, тщательно воссоздав взаимосвязи между субъектами с помощью специально прописанных правил и грамотной организации сообщества, а люди (главный недостаток всех экономических моделей заключается в том, что человеческий фактор в них либо не учитывается, либо усредняется) в нем самые настоящие.
   Представьте, как здорово бы жило наше общество, если б правительство экспериментировало не на нас с вами, а на виртуальных персонажах огромной онлайновой игры. И только после того, как очередная реформа успешно прошла в виртуале, ее бы начинали внедрять в реальную жизнь. Наверняка многие из нас согласились бы терпеть некоторые неудобства, вызванные непопулярными мерами, если б знали, что от этих мер будет какая-то польза.
   Ну и самый идеальный вариант — полное переселение властей предержащих в мир виртуальный. Пускай себе экспериментируют, строят коммунизмы и капитализмы, разделяют и властвуют — пускай делают что угодно, но не с нами и не здесь. Вся остальная страна вполне могла бы жить на абонентскую плату, собираемую с этих господ (наверное, не нужно объяснять, что это шутка?).
   Шутки шутками, но синтетические миры действительно могут оказаться эффективным средством для создания экономических моделей. И не только экономических. Например, разработчики систем ИИ могут создать бота и отправить его в виртуальную реальность, где он будет собирать информацию об «окружающем мире», общаясь с обычными людьми в естественной обстановке. Конечно, сама среда накладывает некоторые ограничения, однако многие взаимосвязи сохраняют актуальность как в реальном, так и в виртуальных мирах.
   Вполне возможно, что о чем-то подобном думал и Эд Кастронова, который недавно заявил, что экономика ему надоела, «математика — наука скучная и глупая (мечтал это сказать с 1986 года)», и теперь он будет уделять особое внимание социальной составляющей виртуальных миров.
   В прошлый раз Эд открыл мир совершенно независимых и закрытых экономик, общей стоимостью под миллиард долларов. Посмотрим, что он обнаружит на сей раз.
   А вы говорите — игрушки.

Тренируйся вон… на кошках

   Говорят, что первым экономистом был Колумб. Отправился наобум открывать Америку, не зная толком, куда направляется (собственно, ехали-то в Индию, а получилось, как всегда). Зато — на государственные средства. А еще, говорят, что экономисты предсказывают двенадцать из пяти последних экономических спадов. И, конечно же, экономисты по праву пользуются народной любовью, уступая лишь метеорологам и политикам.
   Причина подобной любви к экономистам очевидна. Неумение правильно спрогнозировать последствия собственных решений — ахиллесова пята экономической науки. Особенно ярко этот недостаток виден в политэкономии, где масштабы предполагают вовлеченность тысяч и миллионов людей.
   Появляется, к примеру, замечательная теория, позволяющая удвоить ВВП. Как узнать, что произойдет, если применить ее на практике? Неслучайно методы экономического прогнозирования, особенно в последние годы, — тема постоянных и интенсивных научных изысканий. Однако заметных успехов что-то не видно. Так какими же способами прикажете выяснять, как будут развиваться события в экономике?
   Методы прогнозирования, при всем их многообразии, можно разделить на две группы: математические модели и модели, основанные на социально-экономических методах. Приверженцы первых считают, что математика может описать любое действие. А в условиях макроэкономики, когда любые индивидуальные характеристики усредняются, погрешности математических моделей могут быть отброшены. Математические методы делятся на статистические, опережающие, методы аналогий и пр. Общее у них у всех одно — количественные оценки и использование математических функций для описания поступков людей.
   Сторонники социально-экономических методов прогнозирования стоят на позициях экономической психологии. Их главный постулат: экономика в первую очередь — наука о поведении индивидов и социальных групп. А поведение индивида, с этой точки зрения, математикой описывается довольно условно. Оценки здесь весьма общи, опираются, как правило, на качественные характеристики, а их точность весьма приблизительна.
   Конечно, такое деление во многом искусственно — большинство уважающих себя экономических школ давно перешло на симбиоз методов, а кроме того, многие базовые теории экономического анализа (к примеру, теорию игр) нельзя однозначно отнести к той или иной группе.
   Но у этих методов есть одна общая черта. Они все индуктивны и базируются на предположениях и экстраполяциях. То есть, условно говоря, считается, что человек будет вести себя в жизни определенным образом, потому что… Тут следует длинный список различных теорий — от «невидимой руки» и Маркса до показного потребления и тезисов очередной школы маркетинга.
   Понятно, что чем точнее нужна оценка, тем сложнее должна быть модель прогноза. А часто, для относительно правдоподобных оценок, требуются чудовищно сложные системы.
   Из этого тупика есть два выхода. Первый — условно экстенсивный. Примерно таким пользуются метеорологи и астрономы. Будучи не в состоянии прогнозировать мультипараметрические системы индуктивно, они начали активно использовать суперкомпьютеры. Выглядит это так. Берется суперкомпьютер (одна штука), загоняются в него все возможные данные, как-то: сила ветра, температура и атмосферное давление по разным метеостанциям, а также изменение в реперных точках, а суперкомпьютер гоняет терафлопы, симулируя ситуацию и выдавая прогноз. Прогноз может быть довольно точным, но, разумеется, не всегда. Риту вот американские синоптики переоценили, хотя вероятность того, что ураган ослабнет, захлебнувшись в теплых прибрежных водах, оставляли.
   Второй вариант как раз вытекает из темы нашей статьи: возможность виртуализации экономики путем создания замкнутой экономической модели в рамках компьютерной игры. Достигнув определенного уровня развития, этот игровой мир начинает сращиваться с реальностью. На eBay начинают продавать за реальные деньги виртуальные компании, появляется твердый курс виртуальной валюты к доллару или евро, а артефакты, дающие преимущество в игре, становятся предметом спекуляции.
   И когда сращивание реального и виртуального миров доходит до такой степени, мы получаем симулятор жизни. Иными словами, мы не прогнозируем развитие событий — мы просто проигрываем событие в системе с заданными условиями. Происходит симуляция экономических процессов, в которой участники не воображаемы, а реальны, их поступки и реакции не ограничиваются допущениями прогноза, а вполне осязаемы.
   Достоинства этого способа несомненны: мы практически избавляемся от возможных погрешностей оценок, то есть нам не нужно что-то округлять или обобщать — любые действия участников будут лишены неизбежных в других моделях неопределенности и допущений.
   В результате мы получаем полигон для обкатки экономических инноваций, позволяющий обойтись без упреков в экспериментах на народных чаяньях. Представьте, что приватизацию 1993 года и шоковую терапию сначала проверяют на сообществе какого-нибудь крупного игрового сервера. Тяжело вздыхаете? Так-то… С большой долей вероятности можно допустить, что многих ошибок удалось бы избежать.
   Конечно, и этот способ не лишен недостатков. И главный из них — примитивизм системы. Любое копирование жизни, даже самое точное, всегда оказывается скуднее оригинала, упуская полутона и мелкие детали.
   Есть сложности и с социальной выборкой. Все-таки заставить отождествлять для себя игру и жизнь можно лишь небольшую группу людей, как правило, молодых. И даже для самых приспособленных к подобному отождествлению жизнь и игра — разные вещи, где совершенно иные риски и ставки. Не случайно в идеализированных условиях игры, гораздо ярче, чем в жизни, проявляется оптимум Парето — в руках 20% игроков сосредотачивается 80% ресурсов. И всякие попытки админов убрать это распределение приводят к серьезным нарушениям игрового процесса. Сложные системы требуют сложных решений.
   И все же модели, основанные на РПГ, представляются наиболее перспективными полигонами для обкатки самых разных задач (не только экономических), где прогнозировать приходится поведение людей и социальных групп.

РЕПОРТАЖ: Виртуальное присутствие

   Москву посетил Никлаус Вирт (Niclaus Wirth). Известен он в России прежде всего как создатель языка Pascal. Знаменитый профессор Высшей политехнической школы в Цюрихе (ETH; в ней, кстати, учились Альберт Эйнштейн и Джон фон Нейман) и директор Института компьютерных систем при ETH, Вирт уже оставил преподавание и активную научную деятельность.
   Приехал он в Москву в сопровождении своего давнего коллеги, профессора той же ETH Юрга Гуткнехта, активно продолжающего его дело. Вашему покорному слуге удалось побывать на лекции и последовавшей затем пресс-конференции, которая проходила в Главном лектории Политехнического музея, где сорок с лишним лет назад выступал Норберт Винер.
   Организовано было все очень по-домашнему, чему способствовал интеллигентный юмор лектора и живая реакция состоявшей в основном из студентов аудитории, хором помогавшей переводчику, спотыкавшемуся то на «cardinal type», то на «source code».
   Так как все мы теперь завязаны на компьютеры, то от той картинки, которую мы ежедневно видим на экране, в значительной степени зависит наш стиль жизни. По крайней мере, не меньше, чем от телевизионной картинки. Язык программирования Pascal и его потомки Modula-2 и Oberon, как и вся остальная деятельность их создателя Никлауса Вирта, — явление общекультурное, их значение не ограничивается рамками компьютерных технологий. Такое заявление я могу себе позволить, опираясь на взгляды Вирта, никогда не устававшего противопоставлять коммерческий и творческий подход к программированию. Можно выразиться так: швейцарец Вирт является бОльшим противником пресловутого «американского» подхода к человеческой деятельности (когда успех измеряется ростом продаж в текущем квартале), чем многие наши доморощенные «патриоты», муссирующие тему о «бескорыстии русского народа». «Сама мысль о том, что человек может испытывать удовлетворение от хорошо выполненной работы — просто потому, что эта работа творческая и профессиональная, признана абсурдной. Не ценится ничего, кроме экономического успеха и его денежного выражения» — это из интервью восьмилетней давности. Правда, в отличие от этих самых «патриотов», Вирт знает, о чем говорит, потому что довольно долго проработал в Америке, в самой колыбели новых технологий — Стэнфордском университете, а в молодости даже учился у изобретателя оконного интерфейса Дуга Энгельбарта.
   Вирту глупо задавать вопрос типа «а сами-то что сделали такого, чтобы критиковать Microsoft?» Он сильно выделяется из плеяды многих знаменитых теоретиков-академиков, блестящие труды которых так и остались главой в истории компьютерных технологий, не найдя никакого применения на практике. Например, про Oberon поклонники говорят так: он во всем лучше Java, кроме количества затраченных рекламных денег. Sun официально никогда не заявляла, но и не отрицала, что в основу Java были в значительной степени положены идеи Oberon, что выразилось в выплате Вирту (точнее, видимо, ETH) некоей (небольшой, впрочем, по свидетельству Вирта) суммы за исходные коды. И самим понятием виртуальной машины мы тоже обязаны Вирту, — еще в начале 70-х, одновременно с языком Pascal, он придумал абстрактную P-машину, исполняющую специальный P-код, который интерпретировался на каждом конкретном устройстве.
 
   Избранные вопросы-ответы на лекции и после нее
   Что вы думаете о C#?
   — Это просто реакция Microsoft на Java, а если вы хотите, чтобы я ответил на этот вопрос что-либо позитивное, то скажу, что C# — это не такой кошмар, как С++.
   Как вы относитесь к case-технологиям, в частности к языку UML?
   — Я не большой поклонник UML. Графики подходят для реализации маленьких идей, но не для больших мыслей.
   Почему коммерческие продукты делаются не на Oberon, а на С++?
   — Это вас нужно спросить, как представителей университета, — а почему университеты перешли на С++?
   В свое время Sun купила лицензию на Oberon. Означает ли это, что при написании нового компилятора придется покупать лицензию?
   — Нет, конечно. Мы всегда следовали принципу открытых исходников. Компания Sun, как и некоторые другие, купила исходные коды. За очень небольшие деньги, кстати. Они досконально исследовали этот код и через семь лет после выхода Oberon выпустили Java. В Java заимствовано несколько идей из Oberon, но они коррумпировали его синтаксисом языка С. С точки зрения продавцов это был умный ход.
   Что нужно сделать для того, чтобы Европа и Россия могли противостоять засилью Америки в области программирования?
   — Если хотите знать мое личное мнение, то я заметил, что некоторые люди в России очень быстро воспринимают американское мышление и образ жизни. Возможно, прежде чем примерять их на себя, некоторым из этих людей следовало бы внимательно посмотреть, что именно они воспринимают…
   Срастутся ли языки программирования с естественными языками?
   — Язык — это то, на чем мы говорим. А на языке программирования мы говорить не можем. Я бы предпочитал вместо термина «язык» использовать термин «формальная нотация». Каждая программа является математическим объектом, поэтому чем проще, тем лучше. И, конечно, здесь нет места многозначности, которая является свойством естественного языка.
   Визуальное программирование — это революционный шаг?
   — Нет, это просто другой способ выражения ваших мыслей. Некоторым людям удобнее работать с визуальным представлением. В некоторых случаях это даже шаг назад — если помните, на заре программирования было принято записывать программы в виде графов. Мы обнаружили, что такая схема приводит к слишком большому количеству ошибок, как только программа усложняется.
   Сможет ли когда-нибудь компьютер полностью заменить человека?
   — Полностью? Мне бы она не понравилась…
   Вирт считает, что компьютерные системы должны быть прежде всего простыми, понятными и удобными, как для программистов, так и для пользователей, а уже потом — продаваемыми. Он проповедует «принцип чемоданчика» (брать с собой только самое нужное) в противовес «принципу сундука» (хранить все на всякий случай). Характерно, что полное описание Pascal занимало 50 страниц, Modula — 40, а Oberon — 16. «Очевидно, следующее описание займет страницы две», — пошутил Вирт на лекции. Напомним, что «The Java Language Specification» — книга почти в 800 страниц, — это для Java-то, не без оснований гордящейся лаконичностью.
   Современные программисты, кичащиеся своей исключительностью, раскрыв рот, внимают потоку рекламного рэпа: технология ActiveX, технология .NET, case-технология, OLE/COM-объекты, ASP.NET, ADO.NET, VB.NET, XML/XSLT, полиморфизм, множественное наследование, виртуальные классы… Еще в начале 80-х, в пору жарких споров между «паскалистами» и «сионистами», профессор Ньюкаслского университета в Австралии Питер Мойлан замечательно характеризовал подобный подход: «Бытует мнение, что С апеллирует к мужскому началу программистов, которым нравится сражаться с малопонятными ошибками и находить невероятные и хитроумные решения проблем. Многих привлекает и компактность нотации С. Похоже, сторонники этого языка считают, что возможность написать такой, скажем, оператор, как **p++^=q++=*r-s, служит серьезным аргументом в пользу применения С». Сплошное словоблудие, утверждает в свою очередь Вирт: «В ООП не добавлено ни одного действительно нового понятия… Это вообще интересный феномен, когда многие люди узнают о таких важных (и древних!) понятиях, как тип данных, инкапсуляция и (возможно) скрытие информации, лишь начиная изучать объектно-ориентированное программирование. Что ж, одно это оправдывает шум вокруг ООП, даже если позднее неофиты ничего оттуда и не используют». Классы — это типы. Объекты — это сложные переменные, например записи. Методы — это процедуры. Свойства — это переменные. «Единственно, что нового придумали в объектно-ориентированном программировании по сравнению с Modula-2, — это наследование. Но наследуем мы, когда кто-то умирает, разве не так? Не люблю я этого термина, „расширение“ мне кажется более подходящим словом».
   С такими взглядами он решительно не попадает «в струю»: промышленники еще задолго до появления IT уяснили одно свойство потенциальных покупателей: они не соблазняются простотой. И даже, как ни парадоксально, дешевизной! «Надежные и ненавязчивые программы обычно не представляют интереса для разработчика. Желания потребителей значат больше, чем их нужды», — иронически замечал Вирт. Скажем ему спасибо и… вернемся к Visual Basic, а что прикажете делать?
 
   Pascal, Modula-2 и Oberon
   Про язык Pascal знают все — в основном благодаря фирме Borland, которая 20 ноября 1982 года совершила переворот не столько в программировании, сколько в экономике этой области деятельности, выпустив в продажу дискетку с Turbo Pascal 1.0 за 50 долларов (подобные системы стоили тогда по крайней мере раз в десять дороже). Интегрированная среда разработки, встроенный редактор и библиотека времени выполнения умещались в файле turbo.com размером 33 280 байтов. Этим мы обязаны искусству датского программиста Андерса Хейлсберга[Интервью с Хейлсбергом см. «Домашний компьютер» №1, 2004.], который позднее разрабатывал всем известный Delphi, а сейчас трудится в Microsoft над платформой C#. Вирт совсем не против Borland: «Когда вы программируете на Delphi, вы программируете на Паскале. Здесь ничего фундаментально нового нет. Но это была достаточно успешная разработка и во многих случаях помогала продвигать Паскаль. Я никак не участвовал в ней».
   В России, ясное дело, стоимость компилятора не имела значения, но Pascal стал крайне популярен в силу своей простоты и близости к обычной математической записи. Мой знакомый специалист по микроконтроллерам, увидев как-то текст программы на Turbo Pascal, воскликнул: «Ё-мое, да я тут все понимаю!» В значительной степени приверженность российских программеров к Pascal возникла благодаря отлично написанным книжкам В. В. Фаронова, общий тираж которых, по свидетельству самого Валерия Васильевича, достиг полумиллиона экземпляров. Был создан даже компилятор Pascal для знаменитого суперкомпьютера «Эльбрус».
   После Pascal была Modula-2 — почти объектно-ориентированный язык, который, однако, не содержал ни одного из знакомых нам по ООП понятий, даже самого понятия «объект». Бьорн Страуструп колебался, выбирая основу для создания нового объектно-ориентированного языка: С или Modula-2. В конце концов исключительно из коммерческих соображений (как и на десяток лет позднее в случае Java.) выбор был сделан в пользу С, и родился С++.
   К выступлению Вирта в Политехе новосибирские программисты приурочили вручение в дар музею компьютера «Кронос-26», который использовал Modula-2 для расчета параметров спутников. Сейчас эти ребята создали в Новосибирске фирму xTech и выпустили трансляторы Oберона в С и С++ и компиляторы Оберона в родной код для нескольких платформ. Интересно, что их продукция вполне востребована, среди покупателей числятся NASA, Оксфордский университет, Siemens и Агентство оборонных исследований (Великобритания).
   А за самим названием Oberon скрываются по меньшей мере три понятия: название проекта, новый язык программирования, ОС для персональной рабочей станции. Для характеристики проекта предоставим слово самому Вирту: «Проектируя аппаратуру и программное обеспечение для системы Oberon, мы руководствовались следующим основополагающим принципом: стремиться к ясности и простоте. Это просто необходимо при создании любой системы, претендующей на надежность. Лучший путь для достижения ясности и простоты — это создание логичной и ориентированной на получение определенных результатов структуры. А это, в свою очередь, становится возможным, когда модель, положенная в основу проекта, хорошо понимается, когда она достаточно проста и непротиворечива».
   Как ОС, Oberon следует забытому ныне принципу, когда ОС и язык программирования представляют собой единое целое. Лично меня в свое время поразила одна вещь (Вирт упоминал о ней в ходе лекции): в системе Oberon нет отдельно документов, меню и командной строки. Все, что вы видите на экране, есть разбросанный по окнам текст (кроме, разумеется, окон, содержащих графику), обладающий одинаковыми свойствами, независимо от того, расположен ли он в заголовке окна (в Oberon окна называются визуализаторами, viewers) или представляет собой содержание документа. Любой текст можно править и печатать. Если в тексте встречаются зарезервированные слова-команды, их можно выполнять, даже когда они, например, находятся в теме присланного вам e-mail. В качестве команды может выступать любая экспортируемая процедура без параметров, достаточно после ее имени в тексте программы поставить звездочку. Можно вызвать и полный список команд (tool), который открывается в отдельном окне, пардон, визуализаторе. Вирту удалось соединить несоединимое — командную строку («запомни и набери») и парадигму WIMP («наведи и щелкни»).