checked


Практически всё широко-используемое программное обеспечение можно классифицировать по особенностям интерфейса «человек-программа».

Вы запускаете «Microsoft Word», программа загружается и через несколько секунд в Вашем распоряжении — сверхсложный инструмент редактирования текста. Огромное количество механизмов управления текстом к вашим услугам — главное и контекстные меню, панели инструментов, интерактивные подсказки, инструменты автозамены и проверки правописания, встроенная среда исполнения скриптов на Visual Basic for Applications и ещё много всего1 — всё только и ждёт, чтобы вы приступили к работе.

Ключевая особенность «ждёт, чтобы вы приступили»: Word ничего самостоятельно не делает, пока Вы непосредственно ему не укажете — нажатием кнопки, кликом мыши, комбинацией горячих клавиш. Будем называть подобную модель взаимодействия между человеком и программой событийно-управляемым интерфейсом.

Теперь предположим, что вам необходимо отформатировать диск. Выполняется эта операцией вызовом маленькой системной программки — «format.com». Сама операция форматирования весьма длительна и никакого вмешательства пользователя в процессе своего выполнения не требует. Однако, Вы всё-таки должны указать этой программе некоторые параметры — в первую очередь, логическое имя диска подлежащего форматированию, дополнительно — тип файловой системы, размер сектора и т.п. Вы указываете параметры непосредственно перед запуском, программа стартует и Вы спокойно можете идти пить чай или смотреть «Доктора Хауса».

Как нетрудно заметить, в этом случае Вы тоже управляете программой. Но делаете это лишь единственный раз — при её запуске. Такая модель взаимодействия называется «передачей параметров в командной строке».

Теперь давайте сравним эти способы управления с точки зрения пользователя, впервые обратившегося к возможностям программы

  • Первый — начинать работать можно непосредственно после запуска программы. Все ваши действия сразу же вызывают реакцию программы и методом проб и «недорогих» ошибок вы обучаетесь в новой для себя среде. Такой способ обучения назовём «практическим». Событийно-управляемые интерфейсы — это интерфейсы тактические — действующие в очень коротких временных рамках: «нажал на кнопку — напечаталась буква».
  • Второй — требует изучения аргументов командной строки. Несколько раз вы вполне можете ошибиться при вводе параметров и программа сделает совершенно не то, что вы хотели. Т.е. требуется некоторое время для того, чтобы Вы уверенно смогли управляться с программой. В течение этого времени вы наработаете «теорию управления программой» — совокупность знаний [о том] как реагирует программа на ваши команды. По сути «теория» позволяет управлять будущим — ибо овладевший ей получает то, что хочет. Управление из командной строки — управление стратегическое, на достаточно долгий промежуток времени (пока программа не завершит свою работу).

Нетрудно заметить, что в наше время — время воинствующих дилетантов — всё реже и реже встретишь программы, управляемые из командной строки. Производители программного обеспечения чутко заботятся о нашем времени — как же, ну разве можно тратить его, драгоценное, на изучение каких-то непонятных правил управления какой-то вшивой программки? — нет, ни за что! — мы заботимся о своих пользователях и предлагаем им новый, совершенный графический интерфейс с тысячей прекрасных прозрачных кнопочек.

В результате — по улицам ходят стада «практиков», которые и понятия не имеют, что знание некоторой «теории управления» позволило бы им формировать их будущее.

Однако, посмотрим на нашу классификацию ещё с одной стороны. Со стороны эффективности использования вычислительной системы.

  • Подумайте только, что Ваш великолепный 4-процессорный, 16-ядерный, с оперативной памятью в 8 Гигабайт2 компьютер попросту ничего не делает, пока Вы думаете как начать следующий абзац. Все его вычислительные мощности простаивают. Простаивают. Простаивают. Простаивают.
  • Во втором случае — все вычислительные мощности3 направлены на выполнение поставленной задачи. Ничто не отвлекает Ваш компьютер от Вашего приказа. И, более того, Вы в этот момент совершенно свободны.

Перенесёмся на следующий уровень наших аналогий.

Утро. Мы просыпаемся, умываемся, едем на работу. Разбираем электронную почту, получаем указания от босса: обзвонить пятерых клиентов, заключить договор с таким-то партнёром, потребовать оплату — с такого-то. Написать недельный отчёт, отчитаться по авансам. Обедаем, вспоминаем, что завтра у жены день рождения, звоним в ресторан, заказываем столик. Вечером приезжаем домой, ужинаем, занимаемся чем-то утомительно бесполезным (мы называем это «отдохнуть»), засыпаем…

Ничего не напоминает? Я подскажу, если Вы не догадались.

Жизнь взрослого человека — на 99% событийно-управляемая.

Мы постоянно заняты выполнением каких-то дел, которые сваливаются на нас извне.

Мы мечтаем о том, чтобы шквал этих убивающих нас событий прекратился, но как только мы прячемся от него — мы не знаем чем заняться.

Мы пусты внутри.

У нас нет предположений о том, в какое будущее мы хотим попасть.

Мы — убогие тактики, не стратеги…

Мы — это сложные навороченные «Word’ы», которые, увы, попросту нагревают воздух, если нами не командовать.

Страшно? Познайте Теорию? и управляйте своим будущим.

Примечания

1 Я не пользуюсь этой программой, поэтому не могу перечислить абсолютно все способы управления текстом (↑)

2 я не особо в курсе параметров современных топ-моделей, я просто пытался саркастически описать современный «офисный» компьютер (↑)

3 с точностью до политики распределения ресурсов операционной системой (↑)

Читайте также