Уже подзабытый немного на управляющей должности азарт программиста, знающего, как лучше, разгорелся где-то в области груди Билла. Он включил свой компьютер — на жестком диске у него имелась копия исходных кодов обеих приобретенных программ.
Запустив привычный для него ВордСтар, конкуренцию которому он надеялся составить, Билл открыл тот самый якобы не подлежащий оптимизации модуль в режиме «не-документа», то есть обычного текста без форматирования.
Поиском по тексту добрался до той самой функции. Нашел ее объявление, вернулся обратно, отыскал место вызова. Комментарии, имена переменных и операторы сливались в одинаковые строчки.
Билл прекрасно умел читать исходники, занимался программированием много лет и до сего дня никаких неудобств не испытывал. Он еще раз прокрутил текст к объявлению переменной. Черт, как там назывался второй параметр функции? Проще в распечатке посмотреть, чем прыгать туда-сюда по коду. Или…
На том же диске лежал редактор мальчишки. Почему бы заодно не проверить его в деле, раз уж видеокарту с чипом от NEC, разрекламированную Нортоном в его колонке, не так давно установили на компьютеры всех ключевых сотрудников? Билл запустил CEDT.EXE. Освоение в новой среде оказалось удивительно интуитивным и быстрым. У мексиканца нашелся настоящий талант к обустройству эргономики интерфейса. Стоило Биллу задуматься о том, что ему нужно, взгляд сам натыкался на подсказку, куда нажимать, без единой заминки. Слишком хорошо! Слишком удобно!
Гейтс нашел, как открыть файл, разделил экран на верхнюю и нижнюю половины, наверху оставил объявление функции, место вызова ниже. Теперь он избавился от необходимости держать список и порядок параметров в голове. Комментарии отличались от кода, ключевые слова цепляли взгляд. Алгоритм работы программы почему-то стал понятнее.
Нет, не по неизвестной причине, а потому, что именно того мальчишка и добивался. Это ничего не значит! Если ему пришла в голову пара удачных идей, это не повод верить на слово, что оптимизация невозможна. Четырнадцать потраченных часов… пффф. Работая над интерпретатором Бейсика, Билл и не такие проблемы решал.
Он принялся переписывать блок кода и заметил, что одно из ключевых слов стало подчеркнутым. Досадная опечатка… которую он немедленно поправил. А сколько бы он возился с поиском ошибки по старинке? Не больше пары минут, наверное. А тут секунда. Билл качнулся на стуле назад и вперед.
Привыкнуть к хорошему, оказывается, возможно за десять минут. Билл глянул в сторону не пригодившейся распечатки. Ладно. Он будет объективным, редактор очень хорош. Настолько, что желание вернуться к привычным инструментам не возникало.
Хорошо, стоит признать, что программа удобная. Это еще не значит, что ее автор умеет оптимизировать алгоритмы лучше Билла и способен заранее предсказать результат его усилий.
Как минутная стрелка на наручных часах совершила два оборота — он и не заметил. Зато понял, что проблема злосчастной функции куда сложнее, чем ему казалось. Три испробованных варианта либо работали с той же скоростью, либо не делали того, что требовалось в полной мере. Оптимальнее, чем есть, этот кусок синтаксического парсера не написать и мальчишка честно об этом предупреждал. Билл заподозрил, что он специально создал иллюзию возможного улучшения, чтобы поиздеваться над коллегами. Вполне в его характере.
«BILLG: Потрачено часов — 2» — дописал он в комментарий. Хотелось продолжить и доказать, что Си-Си ошибся, но Билл запретил себе тратить время дальше. Он умнее мальчишек и не попадется в ловушку на время большее, чем они. Он хороший, но отнюдь не гениальный программист, как пишут в некоторой прессе. Если отдать функцию Чарльзу… нет-нет, время подчиненных — это его деньги.
«Однажды это упадет» — пророчила еще одна заметка к коду. Билл как раз оттолкнулся от стола немного сильнее, чем рассчитывал и с грохотом упал. Не в первый раз и не в последний. Хорошо, что остался цел, и что этого никто не увидел.
Он поднялся, аккуратно поставил стул на место. Изучить код наглого мексиканца следовало до конца, но обращение к ежедневнику напомнило о близком совещании с продажниками и маркетингом. Билл нехотя убрал распечатки и продолжил раскачиваться.
Через полчаса к нему зашли Стив Балмер и Марк Бин, курирующий выпуск новых продуктов. Стив вальяжно развалился в свободном офисном кресле слева от Билла. Продуктовый менеджер сел справа и начал зачитывать нудные цифры еженедельных отчетов. Как будто основатель компании сам не умел читать и не владел азами экономики.
— Теперь к планам на ближайшее будущее, — сменил тему Марк. — Мистер Гейтс, на какой месяц мы поставим релиз нового текстового редактора для программистов? Я предлагаю одновременно с нашим «Мультитул Ворд»… то есть просто «Ворд», я хотел сказать. Никак не привыкну к новой сокращенной форме… Поставим на полку рядом. И название… «Майкрософт Студио», например. Одна коробка для программистов, вторая — для клерков. Розничные сети такое любят. Сделаем скидку два по цене трех… то есть наоборот, полутора. Как я понял, это готовый продукт, ничего не надо переделывать.
— Не надо, — согласился Билл, — и выпускать в продажу тоже не надо.
— Как же так…
Марк удивленно заморгал, а Стив улыбнулся подобно большой белой акуле. Он все понял еще на переговорах в Анахайме, когда Колон наслаждался победой, выторговал себе абсурдно большие роялти с каждой коробки. Пятьдесят долларов, помноженные на ноль продаж, дадут ноль, к разочарованию молодого наглеца. И Билл даже не испытывал к нему жалости, несмотря на солидарность между программистами. Сам виноват, раз затеял игры вокруг лицензии.
— Через два года — день в день, у нас в договоре стоит дата — тот же самый редактор выходит под марксистской лицензией мальчишки. Бесплатно, с исходными кодами. Ты предлагаешь мне поставить на коробку логотип Майкрософт и продавать людям вещь, у которой на дне написан срок годности? Первый же журналист, кто это раскопает, напишет «подождите два года и вы получите редактор даром».
— Люди заплатят за возможность начать работу прямо сейчас… — робко возразил Марк.
— Мы бы своим именем прорекламировали его бесплатную версию, — продолжил Билл. — За свой счет объяснили бы каждому владельцу IBM в стране, что существует софт, за который платить не обязательно.
— Так его бесплатная версия все равно выйдет, — не понимал Марк. — Мы ничего не отменили. Мы просто отодвинули.
— Именно, — Билл качнулся назад и вперед. — Мы купили отсрочку. Двадцать четыре месяца на захват рынка.
Стив наконец подал голос:
— Двести пятьдесят тысяч живыми деньгами, Билл. Совет директоров задаст логичный вопрос — зачем?
— Осенью мы выйдем на рынок текстовых процессоров, где половину занимает «Вордстар» с ценником в четыре сотни. И все это время, пока мы будем сражаться за аудиторию, я хочу, чтобы слово «бесплатно» не звучало в одной комнате со словом «редактор».
— Но его редактор для программистов, — сказал Марк. — Совсем другая ниша, не конкурент Ворду. У него нет ни переноса по словам, ни курсивного шрифта, ни выбора размера, ни настраиваемых отступов.
— Сегодня нет, — возразил Билл. — Лицензия мальчишки устроена так, что любой, кто возьмет исходники и что-нибудь допишет, обязан отдать свою правку обратно. Дай этой заразе два года на распространение и тысяча скучающих энтузиастов допишут все необходимое. Через двадцать четыре месяца получиться полностью бесплатный текстовый процессор.
В кабинете стало тихо.
— Значит, за два года Ворд должен занять место в каждой компании, — подвел итог Стив. — Стать стандартом, которому обучают секретарш на курсах.
— И еще одно, — добавил Билл, пододвигая свои заметки, сделанные от руки в ходе работы с «Каналья Эдитором» к Балмеру. — Это то, что мы реализуем в своих проектах, не позволяя разработчикам заглядывать в его код. Подсветка ключевых слов, разделение экрана, подчеркивание строк с ошибками, быстрый вызов компилятора горячей клавишей. Идеи не патентуются, и я хочу видеть это все в наших инструментах. Не завтра, но в планах на ближайшие два года.