Шрифт:
Интервал:
Закладка:
Он бился долго и безнадежно, сначала пытаясь детально следовать запутанным инструкциям, устаревшим еще до того, как коды программ были скомпилированы и выложены на сервер. Потом он пробовал довериться своей интуиции и здравому смыслу. Интуиция, как и все инструкции, оказалась бессильна.
– Я просто не понимаю, как люди занимаются большой наукой! Если у задачи есть решение, то она уже неинтересна. А если решения нет, то опускаются руки… – жаловался он Джошу.
– Фантазия важнее, чем упорный труд, друг мой северный. Скушай грибочек волшебный!
– Нет уж, наелся… Накормили.
– Ну… Тогда просто уничтожь все следы предыдущих попыток и начинай сначала! Чтобы потом, когда ты все-таки победишь, никто не догадался, насколько тяжело тебе это далось. Люди не любят упорных неудачников и боготворят везунчиков.
Санчес послушал совет Джоша и сделал все наоборот. Он решил поступить как истинный программист: «Если я не могу понять чужую программу – нужно написать свою». Чем ковыряться в чужом коде – лучше начать с пустого экрана. Пусть программа будет менее функциональной, зато понятной. И своей.
«Если гора не идет к программисту, то он сам с горы спустится и всех отымеет», – написал он своему брату в скайпе.
Любая программа чем-то похожа на часовой механизм. При всей своей внешней сложности она должна быть простой для того, чтобы успешно работать. Любые потери энергии или лишние передаточные звенья снижают точность и увеличивают вероятность поломки. За триста с лишним лет с того момента, когда голландский физик Христиан Гюйгенс устал, напевая песенку, отсчитывать время в своих научных исследованиях – и изобрел карманные часы, их механизм постоянно менялся и совершенствовался. Инерционный груз, ударный гонг, ретроградная индикация… Но все эти усовершенствования и новые приспособления не сильно меняли основные принципы – битва между мастерами развернулась за точность и надежность механизма, за его простоту и возможность массового производства.
Так же действовал и Санчес. Из сложного и запутанного механизма, натужно работающего только под постоянным надзором и контролем десятков инженеров, он пытался сделать простую и понятную машинку, исправно тикающую в его кармане.
Пришлось серьезно повозиться. Сформулированная для самого себя задача звучала просто – система должна запускаться на более простых и дешевых серверах, устойчиво эволюционировать и выдавать гарантированные аналитические результаты. Подпитывать систему новыми видами амеб Санчес мог, аккуратно черпая ресурсы из библиотек ДНК и работающего «Большого аквариума» Lab34, чтобы не вызвать подозрений.
Глаза боятся – ноги бегают. Неожиданно для себя Санчес нашел множество мест в коде для оптимизации и упрощения. Он нещадно вырезал тысячи строк чужого кода, удалял неимоверные «навороты», которые десятки наемных программистов нагромоздили «на будущее» поверх поражающих своей простотой и продуманностью алгоритмов Гриши и его «стариков», созданных в то время, когда «ИРА» еще жила под его столом в однокомнатной квартире.
«ИРА» от этого только хорошела, как девочка-подросток, прекратившая злоупотреблять чипсами и шоколадками и серьезно занявшаяся спортом. У нее появились четкие осмысленные формы, быстрая реакция, хорошее чистое лицо-интерфейс и задорный нрав.
«Эх, сейчас бы применить эту диету и систему упражнений в “Большом аквариуме”! Вот был бы эффект…» Санчес с горечью наблюдал, как система в руках наемных программистов Lab34 со временем обзаводилась ненужными функциями, косметическими пластырями и диковинными костылями. Вмешиваться он опасался. Видно было, что систему подправляли каждый раз для показа инвесторам или крупным клиентам, но в глубины кода никто залезать не решался, и дальше косметических усовершенствований дело не шло.
«Может, они разрабатывают новую версию? А эту пока просто оставили в покое», – думал Санчес, но найти на доступных ему серверах следов новых разработок он не мог.
Новая, облегченная версия системы, которую Санчес любовно назвал «Иришкой», была при помощи Джоша запущена на всех компьютерах офиса. Санчес населил ее самыми совершенными амебами, какие имелись в его библиотеке, немного разбавил новыми существами, родившимися в болотах «Большого аквариума», – живучими, агрессивными и плодовитыми, не в пример старым «тепличным» видам. В конце концов, именно они помогли Санчесу так хорошо строить портреты людей. Питанием для «Иришки» стала информация, изначально собранная для системы бронирования: данные по отелям и перелетам, экскурсиям и гидам, ссылки на конкурирующие системы в Интернете и открытые источники, новостные ресурсы и вся внутренняя бухгалтерская отчетность…
Неделю система переваривала информацию, строила, разрушала, перекраивала заново сложные многомерные структуры. Санчес решил особо не вмешиваться для чистоты эксперимента. Они с Джошем тратили пару часов в день на отладку системы бронирования, которая была почти готова, потом быстренько проверяли жизнеспособность «Иришки» и сбегали из офиса кататься на мотороллерах. На пляж, в бар, в ночной клуб, к друзьям или просто болтаться без дела в шумной туристической толпе. После напряженных недель работы мозг и молодые мышцы требовали отдыха, веселья, движения.
Через неделю терпение закончилось и программисты, сгорая от любопытства, засели за компьютеры на третьем этаже.
– Show me your naked body, sweetheart![73] – потирая руки, сказал Джош.
Друзья долго ковырялись в сложных, непривычных новых визуальных образах, построенных амебами. Те продолжали роиться, достраивая свои ульи, но в целом на экране вырисовывалась вполне четкая и понятная картина бизнеса. Вот основные потоки клиентов. Источники доходов, сотрудники, конкуренты, подрядчики… Санчес делал все новые и новые запросы, Джош интерпретировал закономерности, объяснял непонятные вещи. Таким сконцентрированным на работе Санчес его раньше никогда не видел.
– Туристический бизнес оказался значительно проще, чем я думал, – с усмешкой сказал Санчес.
– Ага, сам попробуй! Знаешь, сколько здесь всяких дыр. Смотри, как утекает прибыль, стоит только отвернуться… А что это, кстати?
Санчес и сам обратил внимание на сильный ручеек, уходящий куда-то в сторону от вполне крепкого и плотного шара, представляющего основной бизнес. Санчес положил руки на клавиатуру.
– Думаю, Глеб должен это увидеть. – Джош так разволновался, что даже вскочил.
– Погоди, давай проверим…
– Нет, прямо сейчас.
Джош достал телефон и набрал номер. Он сбивался и глотал слова, пытаясь что-то объяснить в трубку про семантические структуры, но только окончательно запутал собеседника. Тем не менее главного он добился – Глеб обещал приехать.
Он смог добраться до офиса только вечером. Был уставшим и злым – чартерный самолет, под завязку набитый туристами, требовал постоянного внимания, телефон не умолкал от вопросов требовательных клиентов. Глеб постоянно отвлекался на звонки и подолгу любезничал в трубку, успокаивая собеседников и меряя своими широкими шагами загроможденное компьютерами помещение.