Навигация

Итоги года

Другие ссылки


Реклама

Счётчики


XML людских душ

18.10.2004 Понедельник 06:09

Все выходные просидели с Аней дома. Настроение что-то не очень. На самом деле я знаю, почему оно не очень, но распространяться об этом здесь не хочу.

Я иногда думаю, что человек подобен объекту в терминах классического объектно-ориентированного программирования. Напомню, объекты хранят информацию о своём состоянии внутри себя, в некоторой, специфической для них форме. Форма эта зависит от массы факторов, включающих используемый язык программирования; архитектуру платформы, на которой происходит работа объекта; используемый процессор; используемые объектом способы хранения информации и т.п. Всё это хорошо, ибо такая специфичность даёт объекту возможность эффективно и гибко оперировать хранящимися в нём данными для собственных нужд, используя особенности окружающей среды, в которой он оказался. Но такой подход имеет и отрицательную сторону. А именно, специфичность внутреннего устройства объекта осложняет обмен информацией с другими объектами. Ведь другие объекты могут использовать совершенно другие способы работы с данными. Можно сказать, что различные объекты говорят внутри себя на разных языках. И как общаться между собой, они зачастую не знают.

Чтобы решить эту проблему взаимодействия объектов, придумали стандартный протокол - XML (eXtensible Markup Language), позволяющий передавать данные совершенно любой внутренней структуры. Предполагается, что все объекты должны знать этот протокол если они хотят общаться между собой. XML в подавляющем большинстве случаев нецелесообразно использовать для хранения информации внутри объекта, ибо он совсем не оптимизирован для быстрой и удобной работы с данными. Его плюс только в том, что его поддержка относительно легко реализуется на любой платформе, не используя при этом никаких особенностей ни одной из платформ, и поэтому XML прекрасно подходит на роль компьютерного "эсперанто", универсального языка общения всех со всеми. Процесс перевода данных из внутреннего формата объекта в универсальный формат XML получил название "сериализация" (от англ. serialization - преобразование в последовательную форму). В процессе сериализации внутреннее уникальное устройство объекта вместе со всеми данными (или только теми, которые объект пожелает открыть внешнему миру) как бы выстраивается в упорядоченную цепочку символов, понятных всем другим объектам. Эта цепочка помимо собственно данных содержит также информацию о внутренней их структуре, чтобы дать возможность другим объектам воссоздать внутри себя то, что изначально находится в исходном объекте. Этот процесс воссоздания данных в оригинальном формате из универсального формата XML называется "десериализация" (deserialization) и является обратным по своей сути к сериализации.

Вот, это была преамбула. Теперь идёт собственно амбула. Человек - это тоже объект, хранящий информацию о своём состоянии внутри себя. Сюда включены: память о прошлых событиях; привычки, пристрастия; характер; желания, настроение, мечты... В общем всё то, что принято называть внутренним миром. Этот мир, как и в случае с объектами, весьма специфичен для каждого человека. Даже более того, он уникален. Ведь компьютерные объекты, запрограммированные на одном языке, на одной платформе, использующие одни и те же способы работы с информацией, имеют очень схожий внутренний мир и, наверное, вполне могут обмениваться информацией напрямую, без посредства универсального языка. То же, что творится в голове у каждого из нас - уникально, и нет способа передать что-то, что находится внутри, что волнует, беспокоит или радует, другому человеку, не прибегая к использованию языка-посредника. Аналогом XML в мире "человеческих объектов" является мир изобразительных средств. Самое простое изобразительное средство, которому нас всех учат с раннего детства - обычный человеческий язык: русский, английский, китайский, французский и т.п. Он-то больше всего и похож по своей сути на язык компьютерного общения - XML: то же упорядочивание "объёмных", многомерных данных в простую последовательность символов-слов. До сих пор всё очень похоже на компьютерную модель, с рассмотрения которой мы начали, не правда ли? Однако именно тут и начинаются отличия. А всё дело в том, что внутренний мир человека неизмеримо сложнее внутреннего мира компьютерного объекта. В нём есть то, что человек сам не знает как описать в строгой рациональной форме. Как, например, можно "сериализовать" любовь? Или дружбу? Или полёт души?..

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

Иногда я чувствую себя немым. Потому что в душе кипит буря эмоций, а я не знаю, как сказать об этом другим, чтобы это не выглядело смешно. Я очень жалею, что не умею сочинять музыку. Музыка - это то, что всегда легко задевало нужные струны внутри меня. И я всегда хотел научиться передавать то, что чувствую, с помощью музыки. И потратил, кстати, на это немало усилий - и в музыкальной школе в своё время учился (но не доучился), и MIDI-клавиатуру купил и прог всяких музыкальных и сидел за компом сутками. Но... видно это не моё. Как говорится, "в другой жизни". Впрочем, я всё равно надежды не оставляю.

Вот такое вот эссе неожиданно получилось. А суть была, собственно, в том, насколько близки по своей природе человеческие и компьютерные проблемы. Мы хотим рассказать о себе миру, но иногда это очень сложно сделать. Может, и у компьютеров есть проблема "XML второго уровня"?..