Бывший инженер Microsoft Дэйв Пламмер рассказал, почему первая версия диспетчера задач Windows занимала всего 80 КБ. По его словам, утилиту сделали предельно компактной и быстрой, потому что она должна была работать даже тогда, когда система уже находилась в сбойном состоянии.
Пламмер, которого также знают по проекту Dave’s Garage, ранее показывал, как мог бы выглядеть современный диспетчер задач Windows. Позже он объяснил, как создавал исходную версию программы и почему для неё были важны минимальный размер и высокая скорость. Об этом сообщает Tom’s Hardware.
Для сравнения, текущая сборка диспетчера задач занимает около 4 МБ. Во время разработки первой версии Пламмер делал упор на быстрый отклик, поскольку утилита должна была помогать восстанавливать работу ПК после сбоев и зависаний.
Как отметил инженер, если система работает нестабильно или приложение перестало отвечать, диспетчер задач не может запускаться с задержкой и зависеть от большого числа компонентов.
Пламмер объяснил, что ограничения железа в тот период напрямую влияли на архитектуру программы. По его словам, «каждая строка имеет цену; каждое выделение памяти оставляет след». Он добавил, что не подходил к диспетчеру задач как к современной утилите, где сначала берут крупный фреймворк, затем добавляют несколько слоёв удобства и задел на будущее, а в итоге программа потребляет слишком много ресурсов ради показа нескольких чисел.
Он также описал подход того времени так: «диспетчер задач появился из совсем другого мышления». По словам Пламмера, в те годы разработчики остро чувствовали последствия лишних обращений к памяти и слишком частой перерисовки интерфейса.
Инженер признал, что компьютеры сильно изменились и современные ПК стали заметно мощнее. Однако тогда, как он говорит, маленький размер был важен сам по себе, потому что «маленький значило быстрый, а скорость имела значение».
Пламмер также раскрыл, как работала программа. По его словам, диспетчер задач взаимодействовал с другими экземплярами, чтобы проверить состояние зависшего приложения и обменяться с ним данными. Если ответа не было, утилита завершала процесс.
Ещё один принцип старой версии состоял в том, что программа включала и использовала только те части кода, которые были нужны в конкретный момент. Сейчас, по оценке Пламмера, пользователи часто «платят за всё заранее и всё время», независимо от того, нужна ли им эта функциональность.
Он добавил, что старые утилиты отличались от современных и по замыслу, и по масштабу. Помимо размера, у них был более жёсткий подход к лишней работе: разработчики сначала спрашивали, приносит ли эта операция пользу пользователю прямо сейчас, а не просто может ли её выдержать оборудование.
В завершение Пламмер сказал, что не хотел бы возвращения старого железа, но хотел бы сохранить часть инженерной культуры того времени. Он перечислил принципы, которые считает важными: группировать операции, кэшировать нужные данные, пропускать невидимую работу, реже загружать редкие данные и не запрашивать ядро десятки раз без необходимости.
Источник: Tom’s Hardware, Windows Central.





















