Ночью физик Петя сидел в одних трусах за компьютером и дописывал статью.
Он напечатал:
"Гравитация - это не притяжение.
Это компьютерная оптимизация.
Когда всё разлетается в разные стороны - это требует кучу памяти.
А когда всё падает в одну кучу - памяти почти не нужно.
Короче, мы живём в симуляции, а гравитация - это встроенная функция "сжать всё к чёрту"."
Петя поставил точку, почесал живот и громко сказал в пустую комнату:
- Эй, админы! Если я прав - мигните лампочкой!
В этот момент его симуляция на экране - тысячи точек-планет - внезапно начала сама собираться в огромные шары.
Быстро. Как пылесос.
На экране появилось сообщение:
"Мигнули.
Спасибо, Петя.
Ты сэкономил нам 14 гигабайт на этом сервере.
Гравитация теперь на 0,0003 % эффективнее.
Ты крут."
Петя расхохотался:
- Ха! А можно мне тогда зарплату побольше? И чтобы пиво в холодильнике само появлялось?
Ответ пришёл сразу:
"Зарплату - нет.
Пиво - можно.
Но только светлое. Тёмное занимает слишком много места."
Петя открыл холодильник.
Там стояла бутылка холодного пива, которой пять минут назад точно не было.
Он поднял бутылку вверх и сказал:
- За гравитацию, сукины дети!
Без вас я бы сейчас летал по комнате, как космонавт!
С экрана пришло последнее сообщение:
"Не благодари.
Просто продолжай падать на Землю каждое утро.
Это очень помогает оптимизации."
Петя открыл пиво, сделал глоток и улыбнулся:
- Ладно. Договорились.
На следующий вечер Петя снова сидел в тех же трусах за компьютером, уже с похмелья после вчерашнего "светлого".
На столе стояла пустая бутылка, а в голове крутилась новая идея.
Он открыл новый документ и начал стучать по клавишам:
"А что, если не только гравитация - это оптимизация?
Что, если вся наша жизнь - это большой музыкальный автомат, где вместо шестерёнок и моторчиков используются подручные материалы: случайные события, люди, идеи...
Кто-то там, снаружи, собирает из мусора гениальные вещи просто потому, что это красиво и экономно."
Петя почесал живот и громко сказал:
- Эй, админы! А вы там тоже из подручного хлама строите? Типа как шведский музыкант Мартин Молин из Wintergatan - он уже десять лет делает невероятные музыкальные машины из старого дерева, шестерёнок, LEGO-моторов и металлических шариков. И получается лучше, чем у любого завода!
Экран мигнул.
Появилось сообщение:
"Ха. Заметил.
Мартин - наш любимый пример.
Он берёт то, что другие выбрасывают: обрезки дерева, старые подшипники, шарики, куски металла - и собирает из этого музыку, от которой у людей мурашки.
Мы ему не мешаем. Наоборот.
Такие, как он, помогают нам экономить.
Вместо того чтобы тратить ресурсы на новые материалы, он переиспользует уже существующие элементы.
Оптимизация уровня: "поэзия из мусора"."
Петя рассмеялся:
- То есть вы там тоже фанатеете от Marble Machine?
А я думал, вы только про гравитацию и память думаете.
Ответ пришёл с небольшой паузой:
"Мы думаем про эффективность.
Мартин берёт хаос - кучу хлама в гараже - и сжимает его в порядок, который звучит красиво.
Точно так же, как гравитация сжимает пыль в звёзды.
Только вместо тишины космоса - музыка.
Это один из наших самых удачных паттернов."
Петя откинулся на стуле, задумчиво посмотрел на пустую бутылку и написал:
- Тогда скажите честно...
Я тоже могу стать таким "Мартином" в вашей симуляции?
Собирать из своего бардака что-то крутое, вместо того чтобы просто падать на Землю каждое утро?
Сообщение появилось почти сразу, и в нём впервые чувствовалась лёгкая улыбка:
"Можешь попробовать.
Только помни:
Мартин десять лет пилил, сверлил и ругался над своими машинами.
Оптимизация не бывает мгновенной.
Но если у тебя получится - мы сохраним твой "музыкальный автомат" в архив.
Может быть, даже добавим пару лишних байт на твой аккаунт."
Петя улыбнулся, допил остатки пива из вчерашней бутылки и тихо сказал в экран:
- Ладно. Тогда я начну с малого.
Сначала соберу из своего бардака нормальную статью.
А там посмотрим, получится ли у меня музыкальная машина из слов.
Экран тихо мигнул в ответ.
Где-то далеко, в другой части кода, кто-то отметил:
"Ещё один начал собирать что-то из подручного материала.
Хороший день для оптимизации."
Он встал, всё ещё в тех же трусах, и начал рыться по квартире в поисках "подручных материалов".
Через час на полу лежала целая куча хлама:
- старый вентилятор от компьютера
- пустые бутылки из-под пива
- сломанная гитара без двух струн
- моток медной проволоки
- шестерёнка от старых часов
- пара металлических шариков от компьютерной мыши
- любимая кружка с отбитой ручкой
Петя почесал живот и торжественно объявил:
- Сегодня я создам "Петину гравитационную машину звука"!
Будет падать шарик, крутить шестерёнки, звенеть бутылки и играть что-то вроде марша оптимизации.
Он просидел три часа.
Что-то пилил ножовкой, что-то склеивал скотчем, что-то ругал, когда проволока не хотела держаться.
В итоге получилось странное сооружение:
шарик должен был скатываться по жёлобу из картона, ударять по бутылкам, крутить вентилятор, который, в свою очередь, дёргал струну гитары.
В теории это должно было звучать эпично.
Петя поставил шарик наверх, отошёл на два шага и громко сказал:
- Эй, админы! Смотрите, как я оптимизирую ваш код из мусора!
Он отпустил шарик.
Шарик покатился...
Ударился о первую бутылку...
Бутылка звякнула...
Потом всё заклинило.
Вентилятор жалобно заскрипел, струна гитары жалобно пискнула и тут же порвалась.
Всё сооружение с грохотом развалилось на части.
Петя стоял посреди обломков и молча смотрел на дело рук своих.
Через пару секунд на экране ноутбука, который он забыл выключить, появилось сообщение:
"Попытка засчитана.
10 баллов за энтузиазм.
Минус 40 за исполнение.
Мартин Молин первые восемь лет тоже строил примерно такое же.
Продолжай.
Главное - не останавливаться после первого краха."