Когда Сергей закончил писать в свой блог о способах изготовления каменных орудий, проверенных им на практике, ему пришло уведомление электронной почты. Запустив почтовый клиент, он увидел письмо из Франции. С первых строк оно удивляло архаичностью и громоздкостью словесных конструкций, но при этом было видно, что русским языком автор письма владеет в совершенстве. Несмотря на множество странностей, это было явно не «нигерийское письмо счастья», а что-то поинтереснее. Сергей позвал к ноутбуку Ольгу и они принялись читать:
«Глубокоуважаемый Сергей Александрович!
Сомнения, изводившие меня ранее, не давали ни малейшей возможности донести до Вас предложение, которое, тщу себя смутную надеждою, Вы воспримете с должным энтузиазмом. Невзирая даже на то, что пока я для вас – лишь один из многих незнакомцев, рассылающих письма часто бессмысленные, а то и вредные. Имя мое – Жак Тролль. К глубочайшему моему сожалению, это все, что могу я пока раскрыть. Причины же, подталкивающие меня к столь большой секретности, с радостью несказанной обрисую на первой же нашей встрече.
Перейдем, однако, к самому делу, ибо краткость – сестра таланта, а расходовать попусту Ваше драгоценное время и столь же драгоценный запас аккумуляторов не считаю далее возможным. Дело у меня к Вам следующее. Два месяца уже минуло с тех пор, как ведущий программист, на методах и алгоритмах которого только и держалась немалая наша база данных, покинул компанию, которую я имею честь возглавлять. Команда наша еще держится из последних сил, управляясь худо-бедно с написанными им модулями, однако времена нынешние требуют перемен – причем, перемен быстрых. Единственный же человек, способный видеть всю картину целиком, выполнил формально все обязательства перед компанией, снабдив алгоритмы работы подробнейшими комментариями, и мы не имеем права требовать от него чего-то еще. Однако комментарии эти касаются исключительно того, как состыковать его код с дополнительным модулями; работа же самого кода для всех наших сотрудников остается тайною великой. Задачи свои он выполняет молниеносно и превосходно, причем в десятки раз быстрее аналогов, однако ни я, ни коллеги мои так и не смогли понять, как именно. И именно в Вас надеюсь я найти человека, способного приоткрыть для нас завесу этой тайны.
Дабы удостовериться в Ваших познаниях, я, как любой добросовестный экзаменующий, направляю Вам два файла с тестовыми заданиями. Что код Вы пишете грамотно и красиво, ничуть не сомневаюсь – потому и не прошу ничего программировать. Довольно будет нескольких общих фраз: что, как и при каких обстоятельствах делает этот код. Оставляю себе надежду, что не напугает Вас и экзотичность языка программирования, при помощи которого один из этих файлов был создан. В случае успешного выполнения, буду рад предложить Вам интересную и весьма высокооплачиваемую работу. Единственное же неудобство, которое придется мне доставить Вам в этом случае – согласие на временный (год-полтора, не более) переезд во Францию, в город Нант. Когда мы будем полностью уверены в надежности друг друга, Вы, если пожелаете, сможете вернуться в Россию и работать удаленно.
P.S.: Записки Ваши о Белом море и жизни первобытной читаю с величайшим интересом. Спутница же Ваша, пытающаяся свалить дерево каменным топором на одной из фотографий, столь очаровательна, что мы не можем отказать себе в удовольствии также пригласить ее в гости – разумеется, в случае успешного выполнения Вами тестового задания.
P.P.S: Осознаю, сколь бессмысленно было бы с моей стороны пытаться подтолкнуть Вас к такому шагу одними лишь деньгами. К счастью, мы имеем возможность предложить Вам еще кое-что. Уже много лет, как наша компания курирует музей археологии города Ванн во Франции. Это совсем недалеко от Нанта, и, в случае успешного подписания контракта, мы будем рады предоставить Вам в качестве небольшого, но приятного дополнения свободный доступ ко всем его фондам, включая прекраснейшую коллекцию каменных орудий эпох среднего и верхнего палеолита.
С глубочайшим уважением и надеждой на плодотворное сотрудничество,
Жак Тролль.
Нант, Франция».
Несмотря на все перспективы, вырисовывавшиеся перед ними после получения единственного письма, в голове Сергея вертелось сразу множество вопросов. Он молча смотрел на огонь, пытаясь найти хоть сколь-нибудь осмысленные ответы на них. Почему месье Жак, да вдобавок еще с такой странной фамилией, написал ему – человеку, который непонятно сколько будет выбираться (да и выберется ли вообще) из беломорской глуши, а не откликнулся на одно из тысяч резюме высококлассных программистов в собственной стране, готовых приступить к работе хоть сегодня? К чему такая секретность, не дающая никакой возможности узнать что-либо о работодателе? И, наконец, письмо пришло на почтовый ящик Сергея, с блогом никак не увязанный – тот, который предназначался только «для своих» – и, кстати, единственный, который проверялся им более-менее регулярно в их добровольной изоляции – и при этом Жак упомянул о своем интересе к его странице?
Хотя предложение было, конечно, интригующим. Сергей был готов сорваться в любой момент и в любое место, обещающее интересное приключение, и был уверен в Ольге: они жили вместе уже несколько лет, прекрасно знали друг друга и часто, кажется, даже думали одинаково. Однако в этот раз Ольга быстро вернула его с небес на землю.
– Слушай, а этот твой Тролль – он не слишком толстый? – спросила она с нескрываемым ехидством в голосе.
– Да, Оль, сам над этим думаю, – ответил Сергей, задумчиво проводя зажатым в кулаке каменным рубилом над текстом открытого письма наискось, словно перечеркивая его. – Слишком много нестыковок. Возможно, и тролль. Но вечерами у нас теперь свободного времени – хоть отбавляй. А там и полярная ночь уже не за горами. Из развлечений останутся только наши издевательства друг над другом с помощью варгана, да полярные сияния. Надо посмотреть, что это за задание такое. Если он и вправду толстый – что может быть веселее, чем потроллить тролля, затянуть его в длинную бессмысленную переписку и наблюдать, как он тратит на нас кучу времени и сил в надежде, что получит хоть что-то? Кстати, что именно? Хоть номер кредитной карты ввести не просит – и на том спасибо. Гляну-ка я этот код, с которым не смогли разобраться их чудо-программисты. Каждый архив – всего по три килобайта с хвостиком. Ну, первый, который на «экзотическом языке» – чуть больше. Уж один вечер точно можно потратить на такое развлечение.
Сергей открыл первый файл, и уже через пару секунд истерический хохот вперемежку с набором малопечатных выражений разнесся по лесной хижине. Минут пять потребовалось ему на то, чтобы хоть немного успокоиться.
– Нет, ты посмотри на это! Тролль совсем не толст, как ты подумала, а очень даже тонок и изыскан. В общем, месье знает толк в извращениях. Знаешь, на чем написано первое тестовое задание?
Ольга подсела ближе к монитору. Ее взгляду предстал хаотичный набор из восьми повторяющихся символов, заполнявших весь экран. Треугольные и квадратные скобки, плюсы, минусы, точки и запятые, казалось, не только лишали надежды разобраться в задании, но и явно издевались над адресатом.
– Эзотерический язык программирования Brainfuck6, – ответил Сергей на вопросительный взгляд Ольги. – Содержит всего восемь команд. Разработан одним извращенцем для других извращенцев, а его название полностью оправдывает себя. Теоретически, с помощью этого так называемого… хмм.. языка можно решить бесконечно сложную задачу, но… лишь имея бесконечные ресурсы. А также – железные нервы, крепкий ум, и… – он театрально-мечтательно устремил взгляд в потолок. – И пиво! Оль, у нас осталось пиво? Помнишь, ты вроде прятала куда-то бутылку в день нашего приезда на «особый случай»? В общем – либо этот случай наступил, либо в ближайший час язык оправдает свое название, я сверну мозг и оно нам все равно больше не понадобится.