— Поэтам вроде вас нечего делать в технарском болоте, мальчик мой. Зачем вы растрачиваете себя на бездушные железки, обладая литературным даром? Публично критиковать коллегу — верх неэтичности. Однако я сообщу вам немного общеизвестных фактов — существует отдельная порода академиков, которым важна не чистая наука, а денежные гранты. В технологической среде такие встречаются чаще всего. У мистера Стерлинга с Беркли пожизненный контракт и университетская бюрократия будет защищать его до последнего. Воздержитесь от любых споров с ним. Ни одна жалоба от человека без академического статуса не возымеет действия. Пишите лучше стихи.
— Подумаю об этом, сэр.
Попрощавшись с литератором и Селестой, получившей копию «Мы выпьем кровь», я отправился в Эванс Холл — взглянуть на антагониста лично.
— Сэм, привет, — отыскал я аспиранта Гарланда, примерно представляя, где он ведет занятия.
— Привет. Отошел после вчерашнего стресса? — хлопнул он меня по плечу. — Я подал заявление на перевод. Завтра у вас лекцию по Си придет читать другой преподаватель. Есть шанс, что сам мистер Стерлинг, если замену не найдут.
— Сэм, а где мне его найти? Профессор Стерлинг читает какие-то лекции сам? — «Знай своего врага». Сунь-Цзы ерунду советовать не стал бы. А потому, прежде чем идти и задавать каверзные вопросы, следует посмотреть, насколько вообще хорош оппонент, как оратор. Своего аспиранта он морально задавить смог легко, почти до истерики довел.
— Через пару часов у него лекция по эффективному распределению памяти в Кори Холл, аудитория 135, вход свободный. Да, еще — знакомые принесли мне программу стэнфордской конференции. Прямо перед Стерлингом выступает сам Дональд Кнут. Ты ведь знаешь, кто это?
— Все знают. Высказывание «Преждевременная оптимизация — корень всех зол» — буквально мой девиз. Теперь я обязан там побывать.
Если что, Кнут не предлагал писать неоптимальный код. Он призывал разумно распределять человеческие ресурсы программиста.
Невозможно заниматься компьютерами и не познакомиться с, опять это слово, легендарным Кнутом. Он без малого создал современную информатику, автор монументального труда «Искусство программирования», обладатель премии Тьюринга, один из авторов алгоритма поиска по тексту, через который и в 2026 работает Ctrl-F, создатель типографской программы TeX, из которой потом вырос LaTeX, ставший стандартом для ученых, а количество его математических открытий неизмеримо. О великий Ктулху, если Стерлинг завтра извинится и конфликт себя исчерпает — я всё равно обязан пойти на конференцию и увидеть одного из величайших людей столетия в расцвете сил. Без малейшего сарказма! А может, мне стоит в Стэнфорд поступить и в ученики к Дональду Эрвиновичу записаться?
Но боюсь, совсем разные у нас жизненные ценности окажутся. Я — неплохой практик, Кнут — один из величайших теоретиков. Нет, не крутился в академической элите — нечего и начинать. Но увидеть легенду и, может быть, заполучить его знаменитый в узких кругах чек на $2.56 хочется. Великий математик свои чеки за найденные ошибки и опечатки в его книгах раздаёт. Скорее всего, услышав про игры, он сочтет их баловством и в мягкой форме предложит мне повзрослеть.
При помощи карты на информационном стенде и добрых людей отыскал тот самый Кори Холл — внешне я бы его с российской поликлиникой сравнил. Четырехэтажное здание с рублеными формами.
Найдя заранее нужную аудиторию, я не стал терять время и набросал на листочке черновик дюкесорта. Увы, компилятора Си в голове у меня нет, и даже линтер не установлен, но вроде как все правильно написал, с переключением на пирамидальную сортировку, когда рекурсия залезла слишком глубоко, и на упорядочивание вставками для маленьких хвостовых массивов. Доберусь до компа — наберу и испытаю, и техническое описалово сделаю.
К началу занятия аудитория заполнилась приличными юношами из хороших семей — в том смысле, что белыми с примесью парочки азиатов. Никаких женщин и латиноамериканских каналий. В мою сторону смотрели с удивлением, но претензий никто не высказал и то неплохо.
Последним явился лектор и закрыл входную дверь на задвижку. Он думает, что это он студентов с собой запер. А на самом деле наоборот, себя со мной.
— Опоздавшие, как обычно, не допускаются. Записывайте…
Голос у Стерлинга оказался скрипучим, прокуренным. Собственно, он, никого не стесняясь, задымил прямо во время лекции, стряхивая пепел в пепельницу. Особенно пристально я препода взглядом не сверлил, но к концу академического часа рассмотрел хорошо. Невысокий, плотный, но не толстый, с бульдожьими щеками и сохранивший удивительно много аккуратно зачесанных на пробор волос, совершенно седых. Одет в безупречную серую тройку.
Материал наглый похититель интеллектуальной собственности читал банальный и скучный. И я даже не придираюсь потому что он мне не нравится. На самом деле скучный.
Память надо экономить. Не экономить память не надо. Кучу — пространство динамической памяти — нужно беречь от внешней фрагментации. Не беречь кучу от фрагментации нельзя. Cборщик мусора — академическую блажь мы оставим для ленивых фантазеров. За утечки памяти положены расстрел и порицание.
И оратором бульдог Стерлинг оказался плохим. Я придираюсь, но даже в мистере Джонсоне с его красной угрозой имелись энергия и харизма. Общеизвестно ведь, что выступление лучше начинать с шутки, как и заканчивать. Ни единой попытки понравиться аудитории. Если бы не личное неприязненное отношение к докладчику, я бы на его выступлении захрапел.
— Хорошо запомните сегодняшнюю лекцию, материал будет в билетах на экзамене.
И ушел по-английски, не прощаясь. Тут я, пожалуй, с ним даже солидарен. Необходимость пожать руку каждому коллеге в офисе, когда уходишь домой, меня всегда раздражала. А пропустишь кого — всё, проявил неуважение, вы больше не друзья.
Больше у меня дел в Кори Холле и вообще кампусе не оставалось. Ну разве что Рокки найти и позвать посмотреть на Кнута. Мне кажется, Воз оценит выступление великого математика. Но потом, не сейчас, а сейчас я хочу убедиться, что все правильно придумал.
Из крыла, где парни устроили себе репетиционную, уже звучали аккорды «Мы выпьем кровь». Пока не очень мощно, даже робко, но узнаваемо. И что особенно приятно, к привычным гитаре, барабанам и синтезатору звук Коммодора прибавился — такой, вопиюще электронный бас, пока не особенно красивый. Но с каждой итерацией он становился чуточку лучше. Освоить новый инструмент не так просто, у Томми еще долгий путь.
Линда рисовала векторную эротику, Бренда просчитывала очередной показатель виртуальной экономики, Монти на занятиях в университете. Идиллия.
— Ну, какие новости? — взволнованно спросила моя девушка, оторвавшись от планшета, точно такого же, как у Роберты Уильямс, между прочим. Ее прелесть.
— Отличные. Перед выступлением Стерлинга я смогу взять автограф Дональда Кнута.
— Кого? — переспросили обе девушки сразу.
Стена непонимания. Пришлось устроить небольшую лекцию о величии человека, сравнившего программирование с поэзией и придумавшего современный подход к оценке эффективности алгоритмов.
А далее я сел за комп, открыл редактор кода и выпал из реальности. Остались только я, Си и два в шестнадцатой способов отстрелить себе конечности. Вынырнул из состояния потока, когда за окном уже стемнело, Бренда ушла домой, а Линда принесла мне на ужин макарошки, приготовленные Селестой. Раминь!
Но зарелизить сам алгоритм и убедиться, что он не производительней обычного квиксорта — половина дела. Нужно подготовить тесты, множество тестов, доказывающих, что дюкесорт абсолютно стабилен на любых данных и не сваливается в бесконечную рекурсию там, где джулайсорт поднимает лапки кверху, например, на предварительно отсортированном массиве.
Ночь, она опять звала меня. Я попросту не засну, пока не покрою код тестами и не убежусь, что всё работает, как задумано, на разных наборах данных, подходящих под критичные случаи. Ктулху, может быть, и спит, а мне некогда.