Самое главное, что на языке программирования селенитских систем легко описываются интенции – намерения, такие как: связаться с Нейтеном, узнать, кто и где прячет Мэри, выяснить, кто организовал покушение на русского бизнесмена Ветрова, уговорить свою девушку, чтобы она осталась уже жить у меня и не бегала каждый день к маме отмечаться, послать информацию близнецам &so on.
– Ты женат, Ганя?
– Женат, не женат. Устаревшие понятия. Хотите выяснить, есть ли у меня девушка? Девушка есть. Ведем ли мы совместное хозяйство? Хозяйства у меня нет, а живем вместе. Уже пару лет.
– Да нет, это я так, к слову. Продолжай, очень даже интересно…
– Но ведь на Земле были уже попытки создать языки намерений: Лисп, Erlang, APL, Scala, Haskel.
– Были, но пока ничего хорошего из этого не получилось. А у них, как я понял, получилось.
– Значит, так – язык интенций. Из намерений возникают:
активности, их несколько уровней;
уведомления о запуске активностей;
уведомления о том, что уже произошли некоторые события.
Намерение вызывает активность и называет его класс.
Могут существовать еще неявные намерения – те, которые вызывают активность неявно. В этом случае система вызывает не активность с определенным классом, а называет интересующие параметры – по типу: интересно, что мы тут такого понаписали? То есть мы хотим найти и прочитать «новость о том, что мой рыжий кот Ларри уволен с поста „главного мышелова“ лугаля Уммы, у которого он подрабатывал втайне от своего настоящего хозяина, то есть от меня». Если находятся параметры, которые совпадают с условиями нашего намерения, тогда и вызывается соответствующая активность. И мы можем прочитать о безобразиях достопочтенного с виду кота Ларри. И никаких файлов. Никакого кодирования программ. Короче, программа как таковая не описывается. Она просто сама запускается и генерируется при появлении соответствующих условий.
Это функциональное программирование, в котором процесс вычислений трактуется как вычисление значений функций в математическом понимании последних.
– Это я понимаю. Сейчас у нас используется императивное программирование, которое описывает процесс вычислений как последовательное изменение состояний, подобно изменению состояний в теории автоматов.
– Вы правы. В императивном программировании значение функции зависит не только от аргументов, но и от состояния, в функциональном – нет понятия о состоянии программы. Ладно, это неважно. Извините, Юрий Сергеевич, я увлекся. Увлекся и отвлекся.
– Да нет, ничего, очень даже интересно. Надеюсь, мы сумеем еще поговорить об этом поподробнее как-нибудь в другой раз.
Вообще-то я хотел узнать, что в твоих силах, что вообще мы можем выяснить, находясь в планетарной сети?
– Узнать можно многое. Вы, наверное, хотели бы выяснить, как найти Мэри.
– Ты прав, юный друг. Абсолютно прав. Шельга уверяет меня, что с ней все в порядке. Тогда почему мы не можем ее найти?
– Мне жаль, мистер Ветров. И вас, и Мэри. Мы с ней знакомы с детства. С моего детства. Она ненамного старше меня. Но она была уже девушкой, а я еще сопливым мальчишкой. Я очень люблю ее, как подругу детства, разумеется, и с радостью помог бы вам обоим. Но ее следов в планетарной сети я пока не нашел. Почему? Кто вообще не находится под контролем медиаречевой системы? Вы знаете об этом – ВУВ-ы и земляне. Возможно, вначале это были ВУВ-ы, наверное, они украли Мэри, а потом передали кому-то из колонистов. Но это лишь предположение. В телефонной системе колонии я тоже не нашел намеков и информации о Мэри. Видно, злоумышленники ведут дела аккуратно и скрытно. Избегают обсуждать что-либо по телефону. Простите меня, Юрий Сергеевич. Но пока я ничем не могу вам помочь.
– Жаль, Ганя, жаль. Меня вот что еще интересует. Лунотрясения. Что ты об этом знаешь? Как они возникают? Откуда приходят?
– Да, сирены – это, конечно, очень интересный феномен. Знаете, я тоже задавался этими вопросами. Пошел по цепочке программных активностей, возникающих при лунотрясениях, и нашел огромный функциональный объект, который их запускает. Стал разбираться, как он устроен. На первый взгляд показалось, что все это устроено весьма примитивно. Вот сейчас мы и поймем, куда скачет этот «троянский конь», подумал я и уже руки потирал: «Ну, мы им покажем, где раки зимуют» – так ведь говорят в России? Начал по цепочке искать, откуда пришел этот функциональный объект, кто его внедрил. Разбирал оператор за оператором, оператор за оператором. И пришел, в конце концов, – куда? – правильно, вы уже все поняли – к самому началу. Пришел, откуда начал. Что же, получается, он сам себя запустил? А откуда взялся с самого начала?
– Мне знаком этот феномен. Настоящее, которое станет будущим, потом это будущее вернется в прошлое и запустит свое прошлое, которое со временем станет нашим настоящим.
– Думаю, тут совсем другой процесс. Это можно сравнить с тем, что курица и яйцо появились одновременно.
– Откуда же они могли появиться одновременно?