Дождавшись конца занятия, подошел к Сэму. Он честный парень и его взбесил плагиат Стерлинга. Подойдет, чтобы посоветоваться. Дело в том, что тихо и без помпы я довел Каналья Коммандер 1.0 до бета-релиза. Есть куча чего, что стоило бы улучшить. Команды Юникса пока реализовал не все. О конвейерах, передающих результат работы одной программы в другую, пока остается только мечтать. Но с выходом более продвинутого ДОС и с этим разберемся. Но все же полезная утилита получилась. У нас в студии теперь все два с половиной программиста, работающих с IBM-5150, ее используют. Неплохо бы еще версию под Эппл 2 запилить, но там фундаментальная проблема — отсутствие Си. То есть придется писать все то же самое заново на Паскале, либо и вовсе Ассемблере, сражаясь с рваной видеопамятью. А оно нам вообще нужно?
— Сэм, я тут написал дома на Си одну полезную утилиту, — окликнул я аспиранта. — Не взглянешь для оценки перспектив?
— Не понял… — почесал голову Гарланд. — Откуда у тебя дома PDP-11 или VAX?
— На домашнем IBM-5150, — пояснил я.
— Тоже недешевая игрушка. В Арпанет мне попадалась критическая статья о компиляторе Си под него. Да и вообще, микрокомпьютеры — это баловство для гостиной. Кристобаль, у тебя умная голова, я могу замолвить слово перед доктором Оустерхаутом и выбить для тебя машинного времени за настоящими компьютерами в университете. И, по-хорошему, тебе стоит добиться статуса полноценного студента, а затем и аспиранта. Хоть бы и через общественный колледж. Ты смог бы работать на тридцатидвухбитном VAX и развивать Юникс вместе с нами, вносить свой вклад.
— Сэм, ты недооцениваешь домашние системы. Так взглянешь на мою утилиту?
— Тут у нас в университете нигде IBM и нет. Разве что в бухгалтерии, но там больше Эппл ставят вроде бы…
— Приглашаю в гости. Моя девушка Линда обещала испечь пирог.
— Ну… поехали, — согласился Сэм, — У меня машина в ремонте, подвезешь?
— И с машиной помогу. Мой приятель Рамон отличный автомеханик.
Испечь Эль-Кей обещала вьетнамский банановый пирог Бань Чуой, если точно. Никогда не пробовал, но специально для этого рецепта моя прекрасная кулинар купила сгущенку. Запланирована выпечка для ответочки за угощение от миссис Хендерсон, которое проигнорировать никак нельзя. Нарушишь добрососедские отношения с вредной старушкой — и снова копы каждый день приезжать начнут. Ну и себе тоже. Надо бы мне больше бегать, а то так толстеть начну, сплошь сладости да макарошки.
— Ты все удивляешь и удивляешь! — поцокал языком аспирант. — Это ведь бандитская машина. Не знал бы я, что ты нормальный парень и вообще программист — поостерегся бы с тобой куда-то ехать.
— В Лос-Анджелесе такие в норме, — слегка преувеличил я.
По пути в Эль-Серрито я немного рассказал Гарланду о своем прошлом. Без лишних ненужных ему деталей. Полученный на BBS совет «поискать сотрудников среди нищих аспирантов» показался мне дельным. И раз я такого уже знаю, чего бы не начать с него? Работать на стартап он уже отказывался, да. Но как насчет создания свободного ПО? Как раз цель в рамках того, как мыслит научное сообщество.
Возле дома Катценьяммера суетились Рамон и Билли. Толстяк-барабанщик помогал чикано загружать в кузов его ржавого, как из Безумного Макса, пикапа пару аркадных автоматов, отреставрированных в гараже. Космические вторженцы и Галага, но внутри у них поселятся Коммодоры 64 и Флэппи Бёрд 1.1 — та же игра, но с параллаксом и более детализированными спрайтами.
— Хефе, привет! — помахал мне Рамон. Под левым глазом у него сиял знак отличия Канальи первой степени.
— Кто тебя так? — спросил я.
— Да ерунда, хефе, упал во время уборки, — широко улыбнулся мексиканец. По крайней мере, зубы у него все на месте, значит, кто бы его ни ударил — бил аккуратно.
— Никто никогда в падение не верит, — хохотнул Билли.
Представил всех всем.
— Рамон, Сэм, преподаватель из Беркли. Ему не помешала бы помощь с машиной.
— Без проблем, хефе. Твой амиго — мой амиго.
— Да не стоило… — замялся аспирант, но визитную карточку с адресом Северной Аркадии у механика взял.
— О матерь божья… — протянул Сэм, оказавшись в холле особняка. А это не она, а всего лишь Ктулху. — Вы что, снимаете весь этот дом?
— Нет, всего пару комнат. На статую не обращай внимания, считай ее нашим талисманом. Переобуйся, пожалуйста, в гостевые тапочки. И прибери обувь в шкафчик. Тут гуляет одна очень пронырливая кошка.
Что котики иногда делают с чужими ботинками, мне хорошо известно по прошлой жизни. И не только с обувью, а вообще с вещами. Придя однажды переустанавливать к родственникам винду, я снял новую куртку и небрежно бросил на кресло. Пушистый мерзавец, обитавший у них, воспринял это как посягательство на его территорию и пометил вещь. Никакая химчистка не помогла, на выброс.
Представил программисту Линду, с Брендой они уже были знакомы и, наконец, главное блюдо дня.
На IBM-5150 Сэм взглянул с оттенком брезгливости.
— Крис, я тут только потому, что ты придумал инновационные алгоритмы. Это игрушка для бухгалтера, а не компьютер.
Бренда в соседнем кабинете напоказ громко фыркнула.
— О господи! У вас есть жесткий диск! — понял парень по жужжанию Корвуса. — Он же стоит, как три моих машины!
— Подарок хорошего знакомого. Но скоро это станет не такой уж редкостью. Я читал в журнале БАЙТ, что IBM выпустят компьютер со встроенным винчестером и к его релизу еще и иерархическую файловую систему в стиле Юникс.
На самом деле видел подобную статью, где журналист делился инсайдами. Но если бы и не попалась она мне — остаются и послезнание, и банальная логика. Папкам в ДОСе быть гарантированно. Вот когда они до Эпплов доберутся — даже примерно не знаю. Наверное, тоже скоро, и не удивлюсь, если Джобс на полном серьезе начнет вещать со сцены об инновациях и том, что они раньше всех в мире это сделали. Ведь для компьютеров Эппл и правда первыми окажутся.
— Ладно, показывай, что там у тебя, — смирился Сэм. — Какая-то игра?
— Системная утилита для управления файлами, Каналья Коммандер.
Я пододвинул клавиатуру поудобнее, чего привыкший к универским терминалам-моноблокам Сэм себе позволить не мог, и запустил родной сине-желтый интерфейс с черной полосой командной строки в самом низу.
— Не понимаю. Для чего это нужно?
Я и рассказал. Про весь функционал. Про быстрый перенос файлов из раздела в раздел. Про поиск и фильтрацию. Показал, как легко открыть нужный модуль нажатием пары кнопок, про шорткаты и отображение атрибутов в общей таблице, про перенос части команд Юникса, а в обозримых планах и вообще всех. Сэм смотрел, слушал и мрачнел.
— Ужасно сразу по многим причинам, — сказал он с плохо скрываемым отвращением. — Твой интерфейс рассчитан на полных идиотов. Кто станет запоминать команды Юникс и их ключи, если любую операцию легко выполнить в нажатие нескольких кнопок? И что получится в результате? Полностью безграмотные пользователи, сидящие за компьютером и неспособные даже файл скопировать без твоего Коммандера. Так вот почему Каналья? Это ведь мерзавец на испанском? То есть ты играешь с пользователями дурную штуку, отбирая у них командную строку?
— Не отбирая. Вот она, внизу. Но зачем на самом деле обычному школьнику запоминать ключи и команды, если он всего лишь хочет запустить игру? — возразил я.
— Во-вторых — чудовищная трата ресурсов. Недопустимая. Твоя программа постоянно гоняет туда-сюда огромные объемы информации, а пропускная способность сети не бесконечная. Зачем мне видеть полный список файлов раньше времени? Когда он мне потребуется, я наберу ls и посмотрю сам. А постоянная перерисовка экрана?
— Сэм, это локальный компьютер, а не удаленный терминал, — напомнил я.
— Но ресурсы все равно тратятся. Не сеть, так шины внутри машины. И когнитивный перегруз для самого пользователя. А эта желто-синяя цветовая гамма? Зачем тратить ресурсы на раскраску в разные цвета, если девяносто девять процентов терминалов монохромные, а цветные мониторы есть только у тех, кто профессионально работает с графикой. Таких людей вообще в мире единицы, — взгляд его уперся в графический планшет перед Линдой и аспирант запнулся, поймав ее легкую улыбку.
— Ну ладно… я слегка перегнул. Но всё равно. Ты за двумя панельками прячешь от человека истинные принципы работы операционной системы. Воспитываешь лентяев, лишенных стимула развиваться.
— Но Сэм, это ведь удобно — видеть, какие именно файлы я копирую, — встала на мою сторону Линда. — Теперь для того, чтобы скопировать резервную копию своих рабочих файлов на дискету, я трачу в два-три раза меньше времени.
— О том я и говорю! Крис, ты выдаешь пользователям костыли, но бегать они с ними никогда не научатся. Стоит забрать у вас этот Коммандер — и вы окажетесь ни на что не способны. Ужасно, отвратительно. Но должно быть коммерчески успешно. Именно на то и нацелен платный софт…
— Я собираюсь распространять Каналья Коммандер бесплатно, с открытыми исходниками, — угрюмо буркнул я. Если вполне коммуникабельный Гарланд так упёрся, чего стоит ожидать от всяких узколобых скептиков?
— Это… наверное, благородно… в духе доктора Кнута, — пришел к выводу Сэм, — но вредно для мозгов всех, кто пойдет по легкому пути.
— А для чего усложнять? Философия Юникс ведь приветствует простые решения.
— Простые, но не нарочно сделанные для домохозяек. Компьютер — серьезное оборудование для профессионалов, — не сдался Сэм.
— И нужен для вычисления орбит спутников, а не игрушек, да? Показать ту самую игру, что понравилась профессору Кнуту?
С козырей зашел. Уж если обладатель премии Тьюринга ему не авторитет, то спорить бесполезно.
— Ладно, — согласился Сэм и я в несколько нажатий кнопок запустил 2048 из того раздела, где она находилась. Порт под IBM, написанный на Паскале.
— Милая, ты обещала пирог, а я пока сделаю нам кофе.
Щелкнул тумблером кофеварки, достал из шкафчика ультрапастеризованные сливки в капсулах, запечатанных фольгой. На родине я почти такие же на работу таскал.
— Сливки в кофе? — предложил Сэму, но ответа не услышал. Молодой программист увлеченно складывал степени двойки. А ведь это я еще не самое сильное оружие использовал, не Тетрис.
— Приветики! Я младшенькую похищу на прослушивание в театр? А то мне страшно, аж жуть! Там режиссер нереально строгий, — заглянула к нам Трейси. И даже чичис мисс Сентябрь не отвлекли Сэма от экрана. Он вообще мужик? Я вот уже воспринимаю девушку больше как младшую сестру, о которой нужно заботиться, но все одно не могу удержаться от того, чтобы иногда залюбоваться.
— Привет. Сейчас она принесет обещанный пирог и не возражаю.
Банановый Бань Чуой оказался чудо как хорош. Тот случай, когда сладко настолько, что кое-чему положено слипнуться, но испытываешь не приступ панкреатита, а странное извращенное удовольствие. Чем-то пахлаву по вкусу мне напомнил. Или авену. А уж с горьким кофе, оттеняющим сладкое, вообще здорово. Даже Гарланд, погрузившийся в игру, принюхался, отвлекся и сцапал предложенный ему кусочек. И весь целиком умял.
Отпустило Сэма где-то часа через полтора, когда он все-таки собрал число 2048. Быстрее, чем многие справился.
— Наваждение… — пробормотал аспирант, взглянув на часы, — спасибо, Крис. Ты здорово расширил мой кругозор. Но мнения по поводу надстройки над командной строкой я не изменил. Она вредна.
— Подожди, еще один проект, который ты должен увидеть, — и я украл Гарланда из реальности, запустив Тетрис.
А сам в это время занялся работой. Набросал пре-альфа версию движка под алхимию. На основе имеющейся кодовой базы текстового квеста, с присланными Майклом спрайтами. Как у Бетезды отовсюду торчат уши Морровинда, так и у меня получается, что уже третья игра на основу из «Сорока тысяч способов» цепляется.
Большая часть экрана — список открытых элементов с иконками. Справа — алхимический стол. Перемещаемся по списку стрелочками и добавляем нажатием пробела на стол. Названия элементов не влезают, их даем описаниями в текстовой зоне экрана. По Энтеру проводим синтез и радуем игрока сообщением о том, что всё прошло успешно. Проще некуда, тупо тыкайся во все элементы и ищи сочетания. Но какой же медитативный геймплей, когда их становится много!
— Хватит! — решительно поднялся из-за компьютера аспирант. — Кристобаль, ты настоящий злодей, пожирающий время. Подбросишь меня до линии БАРТ? По поводу твоей утилиты ты меня не убедил. Но понимаю, что всяким секретаршам может понравиться.
— Босс, не слушай его, я пользуюсь для копирования электронных таблиц, необходимых для бухучета, очень удобно, — не выдержала Бренда.
— О том я и говорил! — уже наедине со мной объявил Сэм. — Мисс Бойл, конечно, сообразительная для женщины, но ты сам всё понимаешь.
Ага, очевидно, что мой знакомый так и остался сексистом, хотя и не так плох.
Подвез Сэма до метро и вернулся почти одновременно с Линдой и Трейси, подозрительно веселыми.
— Си-Си! Меня взяли! Это потому, что я красотка и сиськи у меня большие! — воскликнула блондинка. — Зацени, как я отрепетировала: «Я сейчас принесу пистолеты… И с наслаждением я влеплю пулю в ваш медный лоб!»
Девушка наставила прямо на меня указательный палец «пистолетиком».
— Это Чехов?
Шаблон у меня слегка порвался. Антон Павлович и экшен с перестрелками не увязывались. У него обычно всё такое интеллигентное, полное тонкой иронии. Не то, чтобы я знаток.
— Ага, я специально попросила в библиотеке подобрать чтот под меня. Смекаешь? Называется «Медведь». Героиня — молодая вдова, к ней приперся сосед требовать долг ее мертвого мужа, который тот еще козлина. И этот сосед — горячий красавчик и они с ней так орут… ну, ругаются, а в конце у них искра и страсть. Вот прямо под меня роль. Я старалась, не только слова выучила, но и верхнюю пуговицу на рубашке расстегнула. Младшенькая, запомни, пуговка — лучший аргумент в любом споре.
— Трейси, у меня он не сработает, — смутилась моя красавица.
— Ну тогда две расстегни, не прибедняйся. Режиссер сказал, что я прямое попадание в их спектакль, в образ горничной мистера Чехова, которая настолько красотка, что становится в финале актрисой. Имя, правда, странное… Фёкла. По тексту там говорится, что у нее тело богини. Это же про меня! Йеп⁈
— А как пьеса называется?
— Чехов в Ялте, — ответила вместо замявшейся Трейси Линда.
Никогда о ней не слышал. Но я не театрал. Сомнительно, правда, что Антон Палыч сам про себя сочинял.
Моя девушка как мысли прочитала, выудила из сумки Трейси сценарий и передала мне. Полистал. Авторы: Джон Драйвер и Джеффри Хэддоу, «Чехов в Ялте», 1981-й год. Как бы сказала «Няня Вика» — очуметь. Два американца сочинили пьесу про нашего русского классика, тяжело больного, но не унывающего. И ведь с явным уважением к историческим личностям, хотя кое-где и без понимания русской души.
Снимаю отсутствующую у меня шляпу перед ихней американской богемой. Я театр не люблю и не понимаю, но на премьеру схожу и не только потому, что играет наша с Линдой хорошая подруга.
Закончился день звонком из Оукхерста, когда я уже после вечерней пробежки собирался немного подеградировать перед ящиком.
— Тобалито, вы с Линдой ведь приедете к нам на день Благодарения? — спросила теть Лена. — Это семейный праздник, вы обязаны быть. И сеньор Уильямс просил тебе передать, чтобы ты приезжал. У него к тебе важное дело.
Пендехостанский народный пропагандистский праздник в память о том, как индейцы помогли колонистам адаптироваться в Америке. Абсолютно мне непонятный. Но…
— Елена, ты ведь приготовишь индейку? — задал я главный вопрос.
— Симон! — с готовностью подтвердила та.
И о чем тут еще раздумывать, когда в каждом втором фильме или сериале огромная индюшка, запеченная в духовке, подается как апогей кулинарии. Я еду!