Поглядели. И эти люди запрещали мне ковыряться в носу? Исходников, конечно, никто не показал, но очень уж шустро по нынешним временам работающий висивиг настроил на подозрительный лад. Кто там орал, что прямой доступ к видеопамяти — это мошенничество? Прям ручки зачесались дизассемблировать и проверить. В целом аскетичненько смотрится, в монохромной гамме, но не только лишь все в наши времена форматирование и выравнивание текста могут. А выделять мышкой и вовсе почти никто не умеет, только ЛизаРайтер на яблочном компе и вот, мелкомягкий Ворд. Наш Каналья Эдитор так не умеет, как и применять форматирование. И линейки сверху для выравнивания абзацев у нас тоже нет и не запланировано.

Смотрится примитивней нашего цветного редактора только до тех пор, пока не задумаешься, как оно работает и что там под капотом. Маленький программистский подвиг. А вот изменение размера шрифта задекларировано, судя по менюшкам, но не работает. Но оно и логично. В текстовом режиме такое невозможно, все буковки одного размера, таков путь. Не знаю, как мелкомягкие тут выкрутились.

— Сэр, а как увеличение и уменьшение шрифта работает? — спросил я у парня в голубой мелкомягкой рубашке с бейджиком «Чарльз», одного из приставленных к компьютерам. Оно мне не очень надо, но интересно же. А Чарльз и Карл это ведь почти одно и тоже?

— При выводе на печать, парень, применяется принтером.

— То есть мне надо помнить, где какой размер я задал?

— А если не помнишь — проверять. Смотри, вот команда форматирования, она показывает настройки выделенного блока.

Офигеть юзабилити! Я, конечно, сейчас придираюсь к пещерным людям за то, что они арбалет не изобрели, но все же могли бы что-то поудобнее придумать, не требующее тыкать мышкой в настройки, чтобы поглядеть, что там наформачено.

— Очень быстро работает, — заметил я.

— Ага, спасибо, я старался, — подтвердил длинноволосый и носатый Чарльз. Чем-то он слегка на нынешнего Джобса похож — наверное, одна мода на прически виновата. Похоже, мне на одного из разрабов Ворда повезло наткнуться.

— Признавайтесь, вы используете прямой доступ к видеопамяти?

— Извини, это внутренняя информация.

Значит, используют. Интересно, сразу так было или Гейтс у нас подход экспроприировал? Код — сомнительно, не настолько он каброн, в плагиате исходников не замечен.

— Простите, вы Крис Коламбус и Линда Ким? — окликнул нас коренастый мужчина славянской внешности. Очередной поляк, наверное.

— Да, — ответили мы почти синхронно.

— Джон Маркофф, журнал ИнфоВорлд. Не дадите несколько комментариев?

Как бы не выяснилось после мероприятия, что Билл Гейтс и Стив Балмер меня тоже били. Но и прослыть букой, гавкающим на репортеров, не хочется.

— Конечно, Джон, спрашивайте.

— Как вы оцениваете начинание мистера Гейтса?

— Исключительно положительно. Мне нравятся и графические интерфейсы, и стандартизация системных вызовов.

— Мистер Балмер на весь зал назвал вас своим любимым разработчиком. Прокомментируйте.

— У мистера Балмера большое сердце и громкий голос, — улыбнулся я. — Думаю, он любит всех разработчиков без исключения.

Глава 20

Интерлюдия. Билл Гейтс

20 августа 1983, Белвью, штат Вашингтон.

Билл качался на стуле. Родители просили его прекратить. Учителя из частной школы требовали. Профессора из Гарварда вежливо намекали, что он мешает другим студентам.

Стив позже шутил о том, что Билл бросил университет исключительно потому, что хотел качаться, и назвал метрономом Гейтса. Правда в том, что раскачивание помогало ему настроиться и сосредоточиться. Пару раз при этом он падал, иногда прямо на совещаниях, и делал вид, что так и задумано, а у него все под контролем.

Вот и сейчас он изучал чужой код в ритме метронома. Отклониться назад, зависнуть на секунду в шатком равновесии и вернуться в нормальное положение. Повторить, повторить, повторить… таков основной цикл его размышлений.

Код, надо признать, отличный. Билл выделил трех авторов, работавших над ним, не только по комментариям с указанием даты и времени внесения изменения, но и по стилю.

Фин — аккуратный и академичный, явный выходец из MIT, там всегда умели готовить программистов. Примерно половина кода его, всё, что касается непосредственно базового функционала редактирования текста.

Восемьдесят процентов оставшегося написал «Джонни», то есть Джон Харрис, бывший разработчик аркад под домашние компьютеры из компании Кена Уильямса. Его код — немного неряшливый, с кучей опечаток в комментариях и на удивление оптимальный, сражающийся за каждый такт процессора. Билл не смог поймать его хотя бы на одном недостаточно быстром действии.

Си-Си — наглый мальчишка и писал так, словно насмехался над тем, кто изучает его исходники, и использовал мексиканские ругательства в духе «просто не трожь эту переменную, пендехо, она осталась от Крейга и я не знаю, что она делает». Его код Билл мог бы охарактеризовать как «прагматичный» — он сознательно допускал небрежности там, где они не несли потерь скорости исполнения, и извинялся за них, а следующую функцию, важную для надежности, писал не хуже Джонни. Крейг — это Финсетт, у него канальи купили лицензию на код редактора.

Самоучка из трейлерного парка? Сомнительно. За его стилем чувствовались годы опыта, многолетней привычки, тысячи набитых шишек и снисходительное «я знаю Си лучше тебя».

«Не пиши так, приятель! На файле в двадцать тысяч строк сумма перевалит за 32767 и уйдет в минус! Будешь ловить этот баг месяц! В математике числа бесконечные, а шестнадцатибитные целые заканчиваются на 32767. Здесь шестнадцать бит, Карл! ШЕСТНАДЦАТЬ!» — возмущался Си-Си, закомментировав и переписав академичную строчку Крейга из алгоритма бинарного поиска, самого типового, как взятого из учебника Кнута… а ведь мальчишка прав.

Комментариев от Карла в исходниках не находилось и кто это такой, осталось непонятным. Возможно, наставник Колона. Карл Маркс, если учесть его радикальные идеи? Все же логичный вывод сделали в прессе. Роджер Фигг не на пустом месте заподозрил мальчишку в мошенничестве и присвоении чужого труда. Вот только чьего? Какого-нибудь профессора из Беркли или Стэнфорда? Того же самого, что отдал подростку алгоритм быстрой сортировки, избавленный от уязвимостей? Карла?

«Год — всегда четыре цифры, не две, бабосо. Двухтысячный наступит неминуемо», – поучал он в другом комментарии. Какой подросток вообще заглядывает на двадцать лет вперед? А взрослый? Билл невольно вспомнил все те случаи, когда и он экономил, записывая год, как 77 или 81. Надо переписать! Он взял ежедневник и записал себе задачу на будущее.

Под распечатками лежала вырезка из калифорнийской «Силикон бэй», которую подготовила Пэм Эдстром из пресс-службы. Тот же Фигг, на этот раз с более корректным интервью, напечатанным слово в слово, хоть и не без критики отвратительной коммунистической лицензии. Согласно статье, в Каналья Эдиторе восемьдесят процентов кода написал Джон Харрис по совместно составленному техзаданию. Примерно такие выводы Билл и сделал, но он видел другую истину.

Джонни написал основное мясо программы, но ее скелет — деление по модулям, шапки файлов с описанием того, что должно лежать внутри, вся архитектура решения — вышел из под руки Си-Си.

Скромность, однако, не сделала программиста непогрешимым. Следующий комментарий будто оставили специально для Билла:

'СС: Дорогой коллега. Если ты решил, что эту функцию можно ускорить, знай — нельзя. Когда лично поймешь мою правоту, оставь ниже счетчик потраченных часов для следующего бабосо, решившего, подобно мне, что он тут самый умный. И не жалуйся потом, что я не предупреждал. Потрачено часов — 14

Джонни: Все верно, быстрее не получается. Потрачено часов — 6′

Мальчишки просто не увидели очевидного способа оптимизации, им не хватило опыта и насмотрености. Возможно, Гейтс ранее переоценил их профессионализм.