Dave Plummer: Programming, Autism, and Old-School Microsoft Stories | Lex Fridman Podcast #479

Дэйв Пламмер — программист и бывший инженер Microsoft, создавший такие культовые компоненты операционной системы Windows, как Диспетчер задач (Task Manager), встроенную поддержку ZIP-архивов и порт легендарной игры Space Cadet Pinball. В интервью Лексу Фридману он подробно рассказывает о своем пути от школьника, бросившего учебу, до ведущего разработчика в одной из главных технологических корпораций мира.
В ходе беседы Пламмер делится глубокими техническими деталями написания и оптимизации кода в эпоху жестких аппаратных ограничений, обсуждает философию создания архитектуры Windows NT под руководством Дэйва Катлера, а также откровенно говорит о жизни с расстройством аутистического спектра (РАС). Он объясняет, как особенности работы его мозга, такие как монотропизм и гиперфокус, стали его главным профессиональным преимуществом в инженерии.
Ранние годы, первые компьютеры и путь в профессию
Первый опыт с TRS-80 и Commodore 64 01:23: Свой первый опыт программирования Пламмер получил в 11 лет в магазине Radio Shack на компьютере TRS-80 Model 1, где он методом проб и ошибок осваивал язык BASIC, не имея инструкций. Позже он перешел на Commodore 64, который считает величайшим компьютером в истории из-за его массового влияния на индустрию. Из-за поломки дисковода ему приходилось сохранять данные на кассеты и писать код на чистом машинном языке (вводя шестнадцатеричные коды операций вручную), так как у него не было встроенного ассемблера. Первой его серьезной программой стал клон игры Galaga.
Отчисление из школы и работа на заправке 07:01: Пламмер бросил старшую школу, так как перестал ее посещать, и начал работать в магазине 7-Eleven, а затем на автозаправке. Переломным моментом стала необходимость измерять уровень бензина в подземных резервуарах с помощью 20-футовой деревянной палки в сильный мороз. Получив в руки тысячу заноз при температуре -40 градусов, он осознал, что не хочет заниматься физическим трудом всю жизнь. Это заставило его вернуться в систему образования, закончить школу для взрослых и поступить в университет на специальность «компьютерные науки».
Создание HyperCache и попадание в Microsoft 11:20: Во время учебы в университете Пламмер написал программу HyperCache — систему кэширования файлов для компьютеров Amiga, которая значительно ускоряла работу CD-ROM приводов. Программа стала успешной, он продал несколько тысяч копий по 20-40 долларов, заработав приличные деньги. Желая попасть в Microsoft, он нашел в сети Usenet контакты сотрудников компании и разослал им письма с предложением своей кандидатуры. В итоге с ним связались, провели собеседование по телефону и наняли для работы над MS-DOS.
Архитектура операционных систем: от MS-DOS до Windows NT
Ограничения MS-DOS и переход к Windows 95 16:00: Пламмер описывает MS-DOS как простую программу запуска команд, жестко ограниченную архитектурой процессора 8086 (в частности, лимитом базовой памяти в 640 КБ). Разработчикам приходилось использовать сложные хаки (например, управление расширенной памятью через драйверы), чтобы заставить систему работать с более ресурсоемкими задачами. Windows 95 стала гигантским скачком вперед благодаря внедрению 32-битной архитектуры, вытесняющей многозадачности и совершенно новому пользовательскому интерфейсу, включая меню «Пуск».
Разработка Windows NT и влияние Дэйва Катлера 20:38: Windows NT создавалась с нуля как надежная, портируемая и безопасная операционная система, ориентированная на корпоративный сектор. Главным архитектором был Дэйв Катлер (ранее создавший VMS для DEC). Пламмер отмечает, что Катлер внедрил в Microsoft культуру бескомпромиссного качества: он не терпел плохого кода и требовал идеальной архитектуры. NT изначально поддерживала несколько процессорных архитектур (MIPS, Alpha, PowerPC, x86), что заставляло программистов писать чистый код на C/C++, не привязанный к конкретному железу.
Проблема общей памяти и именованные каналы 24:51: В Windows 95 использовался большой сегмент общей памяти для всех процессов оболочки, что было небезопасно и нестабильно. При разработке Windows NT от этого отказались. Пламмер вспоминает, как инженер Боб Дэй написал реализацию именованных каналов (named pipes), чтобы устранить необходимость в общей памяти. Это решение позволило процессам безопасно обмениваться данными, что стало фундаментом для стабильности всей архитектуры NT.
Создание культовых компонентов Windows
Разработка Диспетчера задач (Task Manager) 26:00: Пламмер создал Task Manager дома в свободное время. Главная особенность программы — ее исключительная надежность. Диспетчер задач обходит стандартные публичные API (например, реестр) и обращается напрямую к недокументированным функциям ядра (NtQuerySystemInformation), чтобы получить данные о процессах. Это позволяет Task Manager работать, отрисовывать интерфейс и убивать зависшие процессы даже тогда, когда сама операционная система испытывает критические сбои или нехватку ресурсов.
Интеграция ZIP-архивов (VisualZIP) 33:36: Изначально Пламмер написал расширение оболочки для работы с ZIP-файлами как сторонний shareware-продукт под названием VisualZIP. Программа позволяла открывать архивы как обычные папки в Проводнике. Представители Microsoft связались с ним, чтобы купить технологию, даже не подозревая, что Пламмер уже работает в их компании. В итоге Microsoft приобрела права на код, и эта функция стала стандартной частью Windows, навсегда изменив то, как пользователи взаимодействуют со сжатыми файлами.
Портирование Space Cadet Pinball 34:00: Пламмеру поручили портировать игру 3D Pinball с Windows 95 на Windows NT для демонстрации графических возможностей новой ОС. Поскольку в NT тогда не было аппаратного ускорения графики, а процессоры были слабыми, ему пришлось написать собственный программный рендерер. Он использовал метод «грязных прямоугольников» (перерисовка только тех частей экрана, где произошло движение) и предварительно вычисленные таблицы синусов/косинусов, чтобы игра выдавала стабильные 60 кадров в секунду.
Аутизм, особенности мышления и социальные взаимодействия
Монотропизм как инженерная суперсила 41:00: Пламмер объясняет аутизм через концепцию монотропизма — способности мозга направлять все ресурсы на одну задачу, полностью игнорируя внешние раздражители. Для программиста это невероятное преимущество, позволяющее удерживать в голове сложнейшие архитектурные системы и писать код часами без потери концентрации. Однако обратной стороной является полная неспособность к многозадачности: переключение контекста вызывает сильный стресс и потерю эффективности.
Маскинг и истощение 45:00: Люди с РАС часто используют «маскинг» — сознательное копирование поведения нейротипичных людей в социальных ситуациях (поддержание зрительного контакта, имитация интонаций). Пламмер отмечает, что это требует колоссальных вычислительных ресурсов мозга. После нескольких часов нахождения в офисе или на совещаниях наступает сильное истощение, требующее длительного времени на восстановление в одиночестве.
Буквальное восприятие и коммуникация 49:00: Одной из главных проблем в общении Пламмер называет буквальное восприятие слов. Он не считывает подтекст, сарказм или скрытые намеки. Если в коде или в разговоре есть двусмысленность, его мозг воспринимает информацию прямолинейно. Он советует нейротипичным людям общаться с аутичными коллегами максимально прямо и четко, избегая социальных игр, так как прозрачная коммуникация исключает тревожность и повышает продуктивность.
Ретро-компьютинг и современные проекты
Восстановление мини-компьютера PDP-11 52:00: Сейчас Пламмер увлекается восстановлением старого оборудования, в частности мини-компьютера PDP-11/70. Его привлекает физическая осязаемость старых машин: тумблеры, переключатели и панель с мигающими лампочками (blinkenlights), которая напрямую отображает состояние регистров процессора и шины данных. Для него это способ прикоснуться к «голому железу», где нет скрытых слоев абстракции, присущих современным операционным системам.
Проект Software Drag Racing 56:00: На своем YouTube-канале Dave's Garage Пламмер запустил проект по сравнению производительности языков программирования. Он написал алгоритм поиска простых чисел (решето Эратосфена) на C++, а затем сообщество портировало его на более чем 100 языков. Результаты показали, что низкоуровневые языки вроде Zig, Rust и C++ стабильно лидируют, в то время как Python работает в десятки раз медленнее. Проект стал популярным бенчмарком для оценки чистой вычислительной скорости различных компиляторов и интерпретаторов.
🔍 Анализ: фактчек и польза
ФАКТЧЕК
Создание Task Manager, VisualZIP и порта Pinball — ✅ подтверждается: Дэйв Пламмер действительно является создателем этих компонентов. VisualZIP был его личным shareware-проектом, Task Manager он изначально написал дома в свободное время, а Space Cadet Pinball портировал на C/C++ для архитектур Alpha, MIPS и PowerPC под Windows NT.
Task Manager использует недокументированные функции ядра (NtQuerySystemInformation) — ✅ подтверждается: Использование прямых системных вызовов ядра в обход стандартных высокоуровневых Win32 API — задокументированный факт. Именно это архитектурное решение позволяет Диспетчеру задач работать и убивать процессы даже тогда, когда сама оболочка Windows зависла или исчерпала память.
Microsoft купила VisualZIP, не зная, что автор — их сотрудник — ✅ подтверждается: Представители Microsoft связались с Пламмером для покупки его shareware-утилиты и начали обсуждать оформление командировочных документов. Они не подозревали, что он уже работает в соседнем здании над COM-интерфейсами, что привело к неловкой, но успешной сделке.
Проект Software Drag Racing и сравнение языков — ✅ подтверждается: Репозиторий `PlummersSoftwareLLC/Primes` на GitHub действительно существует и содержит реализации алгоритма «решето Эратосфена» на более чем 100 языках программирования. Бенчмарки наглядно доказывают тотальное доминирование низкоуровневых языков (C++, Rust, Zig) над интерпретируемыми (вроде Python) по скорости вычислений.
Монотропизм как инженерная суперсила при аутизме — 💭 мнение/прогноз, проверить нельзя: Теория монотропизма (концентрация ресурсов мозга на узком спектре интересов) разработана в 1990-х годах и сегодня широко признается в психологии как точное описание когнитивного стиля при РАС. Она отлично объясняет способность к многочасовому гиперфокусу в коде и быстрое истощение от социального «маскинга», однако остается психологическим конструктом, а не измеримым физическим параметром.
ЛИЧНО ДЛЯ ТЕБЯ
Инди-экзиты через экосистемы: История VisualZIP — классический пример успешного инди-хакерства. Пламмер сделал плагин, закрывающий дыру в UX крупной платформы (Windows), и продал его создателям этой же платформы. Твои Telegram-боты и сервисы для стримеров работают по схожей модели: расширение функционала гигантов — отличная стратегия для микро-экзитов.
Архитектура отказоустойчивости: Секрет неубиваемости Task Manager — независимость от публичных API, которые падают вместе с системой. При проектировании твоих веб-проектов и автоматизаций в n8n на собственном сервере стоит применять тот же принцип: контуры мониторинга и перезапуска должны работать на максимально низком уровне и не зависеть от тех же баз данных или API, которые они контролируют.
Ценность понимания «железа» в эпоху AI: AI-инструменты (Claude, ChatGPT) отлично пишут высокоуровневый код, но бенчмарки Software Drag Racing показывают, что выбор языка и архитектуры меняет скорость работы в десятки раз. Твое стремление разбираться в инференсе и устройстве моделей абсолютно оправдано — AI пока не умеет самостоятельно оптимизировать код под кэш процессора или память, это остается задачей инженера.
Цена контекст-свитчинга: Как разработчик-одиночка, ты совмещаешь роли от девопса до продакта. Опыт Пламмера напоминает, что переключение между написанием кода, настройкой сервера и рутиной сжигает колоссальный когнитивный ресурс. Группировка задач по дням (день глубокого погружения в код, день легких автоматизаций в n8n) математически выгоднее для мозга.