Нарисуем - будем жить!

Jan 25, 2006 00:49

Вы никогда не хотели сотворить собственный мир, да так, чтобы всё работало? Хотели, наверное, не отмазывайтесь. Но оставляли бесполезные попытки. А вот некоторые - не оставили. И творят. Отличный высококачественный мир, идентичный натуральному (без консервантов). Да-да, я опять об Open Croquet (который, кстати, теперь называется Croquet Project).

Для тех, кто не читал моих предыдущих восторженных воплей: Croquet моделирует информационные процессы реального мира. «Как он может это делать, если мы не знаем толком, как он устроен, этот самый реальный мир?» - справедливо возмутитесь вы. Ответ очень простой: они [авторы проекта во главе с товарищем Аланом Кеем лично] пробуют несколько вариантов, и выбирают тот, который больше понравится. Глядишь, ещё и лучше получится, чем оно есть на самом деле.

Вернулся я к этой затасканной теме потому, что я слежу одним глазом за проектом. И вот недавно был в общих чертах разработан план следующего релиза, который называется Hedgehog (предыдущий был Jasmine). В нём авторы в общих чертах завершили физическую структуру мира и перешли к устаканиванию структуры логической. Впрочем, всё по порядку.

Так вот, сначала я создал небо и землю...

Многие считают, что пространство у нас содержит три измерения, а время - четвёртое, впрочем, несколько странноватое. Так вот, это ещё никем не доказано. Отдельные извращенцы (сторонники так называемой теории струн) вообще полагают, что измерений - одиннадцать, просто не все измерения одинаково полезны, то есть заметны. Что и говорить о промежуточных вариантах? Дело ясное: ничего никому не ясно. Поэтому, создавая наш мир, вопрос о количестве измерений мы намеренно вынесем за скобки. Позже разберёмся. Определиться бы сначала с тем, что есть...

Есть объекты. Что такое объекты? Ну, упрощённо говоря, будем считать мир не единой бесформенной кашей, а некоей сложной сущностью, в которой можно выделить различные структуры (да, многим удобнее считать мир бесформенной кашей, но это отдельный вопрос). Смотрю, уже редукционисты ликуют, а идеалисты опечалились. Не печальтесь, товарищи идеалисты! Объект - штука далеко не такая простая, как может показаться сначала. И уж во всяком случае не «вещь в себе», как считали отдельные философы. Впрочем, с вещами в себе мы ещё будем разбираться отдельно. Из перечисленного ясно, что у объекта есть: 1) идентичность, то есть каждый объект чем-то отличается от всего остального, 2) (необязательно) внутренняя структура, то есть какие-то дополнительные свойства. Помимо структуры, объект обладает поведением, то есть может как-то взаимодействовать с другими объектами. Почему? Да потому что просто иначе как-то совсем неинтересно получается. Математики могут вспомнить, что такое «алгебраическая структура», для которой определены «операторы». И вообще, тени Бурбаки ликуют и пляшут. Для не математиков, то есть нормальных людей, будем объяснять дальше.

На данном этапе понятно, что в мире таки существуют объекты. Объектом может быть что угодно: Галактика, песчинка на пляже, мысль о вкусной еде, пиксель на экране монитора, последний выдох господина ПЖ... А может ли быть объектом, скажем, произвольное сочетание молекул в бруске металла? Вряд ли. Тут мы призовём на помощь бритвенный станок Оккама с плавающей 3D-головкой и принципы субъективного идеализма, и скажем, что если потенциальный объект никому не нужен - значит, его не существует. Коротко и ясно.

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

Работает это с помощью репликации. Когда мы запрашиваем Web-страницу с сайта, она реплицируется - копируется на локальный компьютер по сети. Так же и пространство объектов в Croquet (оно называется TeaParty) - если мы хотим увидеть с компьютера A объект, расположенный на компьютере B, мы его просто с B на A скопируем.

Но - позвольте-позвольте! Если, положим, на компьютере A нахожусь я, а на компьютере B - туманность Ориона, это что же получается - каждый раз, когда я захочу полюбоваться туманностью Ориона, мне нужно её целиком к себе копировать? Со всеми звёздами, планетами, их обитателями, и мыслями в их голове? Это как-то слишком жирно получается. Тупая репликация не работает. К сожалению, для пользователей Croquet Jasmine другой альтернативы не было - наблюдение за объектами подразумевало полную репликацию их состояния. Зато в Croquet Hedgehog появятся более продвинутые способы субъектно-объектного взаимодействия.

(что-то я расписался. Про то, как надо делать пространственную топологию, время (точнее, потоки времени, так как «время» - не одно-единственное), субъектное восприятие и прочие важные в реальном мире вещи, я расскажу в следующий раз).
Previous post Next post
Up