Мания совершенства
АрхивПрограммисты в массе своей - люди особого сорта, перфекционисты. Они одержимы манией совершенства. Примечателен контраст - снаружи программист может выглядеть лохматым, небритым и с натруженными руками в мозолях от пивных кружек, но внутри каждого из них скрывается ангелоподобное существо, напоминающее «Кружевницу» с картины В. А. Тропинина, - вот так же оно нанизывает кружева операторов, чтобы явить миру чудо красоты своих программ. Иначе зачем, скажите на милость, создаются все новые и новые версии freeware-продуктов, причем автор иногда спрашивает на весь Интернет - присвоить ли очередной версии номер 1.52бис или сразу замахнуться на 2.0?
Манию совершенства можно реализовать двумя путями - добавляя все новые и новые функции к уже созданному продукту (это магистральная исхоженная дорога) либо подтягивая программу к предельно совершенному образцу - идеалу. Именно на втором пути встает вопрос об идеальной программе.
В конце 60-х годов теперь уже прошлого века ленинградский экономист-кибернетик И. М. Сыроежин задался целью сравнить эффективность этих двух путей синтеза систем. По его оценке, движение от идеала давало вдвое более эффективные решения.
Сыроежин разработал метод предельной мобилизации ресурсов, который назвал несколько необычно: «От ПИРа к РЕКОРДу» (по свидетельству лидера фирмы «ТРИЗ-ШАНС» И. Л. Викентьева, похожая идея для технических систем была предложена еще в 20-30-х годах авиаконструктором Р. Бартини, а в 50-х - отцом ТРИЗ Г. С. Альтшуллером).
Вот схема этого метода:
-
Рассматриваются абсолютные (лучшие из известных) ограничения по каждому из факторов.
-
На их основе вырабатывается ПИР - практически идеальное решение.
-
По каждому из факторов устанавливается предел достижения при полной концентрации имеющихся и привлеченных ресурсов только на нем.
-
Наиболее близкий к ПИР предел выбирается за основу первого РИР-1 - работоспособного идеального решения.
-
Для РИР-1 рассчитываются потребные ресурсы, оценивается превышение потребности над наличием.
-
Вносятся изменения в решения по каждому из факторов с учетом ограниченности ресурсов, и синтезируется РИР-2, снова производится суммарная оценка ресурсов и т. д., пока не будет найдено такое распределение ресурсов, при котором все они будут применены с пользой, а общее отступление от ПИР будет минимально.
-
Полученное в итоге решение оформляется как РЕКОРД - рекомендуемая организация дела.
Попробуем применить этот метод к текстовым редакторам. Сопоставление редакторов показывает, что в основе их всех лежит один и тот же принцип электронной пишущей машинки, так что все они - лишь вехи на пути расшивки «узких мест»: поочередно добавляются многооконность, вставка картинок и таблиц, проверка орфографии, гиперссылки и интеграция с Интернетом. Но базовая модель одна и та же: перед нами лежит лист бумаги, на котором мы правим текст.
Чтобы сформулировать представление об идеальном текстовом редакторе, нам придется обратиться к моделям языкового мышления.
К счастью, для определения места современных текстовых редакторов нам не понадобится вникать в сложности лингвистических и риторических теорий. Достаточно признать истинными четыре принципиальных положения:
-
Всякий текст имеет два плана - план содержания (смысловая модель) и план выражения (модель оформления смысла в системе знаков). Идеальный текстовый редактор должен давать пользователю оперировать и тем и другим планом в их взаимосвязи.
-
Информация, передаваемая текстом, предполагает наличие у читателя каких-то изначальных знаний, обращаясь к которым, автор конструирует смысловые модели. Соответственно, в плане содержания различают тему (то, что заранее известно участникам коммуникации) и рему (то новое, что автор текста вносит в тему). Важно, что автор текста иногда ограничивается упоминанием темы в заголовке, а весь текст посвящает реме. В популярных текстах, ориентированных на несведущую аудиторию, тема излагается достаточно подробно. Но идеальный текстовый редактор должен ориентировать автора не на занижение интеллектуального и профессионального уровня читательской аудитории, а, напротив, на повышение этого уровня. Это значит, что редактор должен быть оснащен справочным аппаратом, в который автор может прятать знания по теме и из которого читатель при необходимости мог бы восполнять знания, недостающие ему для понимания ремы. Пока лишь мы можем, подражая печатной литературе, давать сноски к примечаниям внизу страницы или в конце текста, но это уже позапрошлый век!
-
План выражения обладает собственной гармоничной завершенностью, которая описывается понятием «стиль». Стиль отражает особенности словарного запаса автора, привычные ему обороты и даже ограничения объема смысловой модели, которую автор способен изложить без повторов. Статобработкой текста как системы знаков можно установить авторскую принадлежность текста, степень подобия стилям других авторов и даже культурный уровень и мировоззренческую ориентацию автора. Но еще важнее другое: для различных проблемных ситуаций есть свои уместные стили коммуникаций, позволяющие эти ситуации разрешать. О. Розеншток-Хюсси, исходя из самых общих отношений «прошлое-будущее» и «внутреннее-внешнее», различал четыре обобщенных типа кризисов. Отношению «внутрь-вовне» соответствует пара бедствий «анархия-война», отношению «прошлое-будущее» - пара «упадок-революция». Стили, позволяющие разрешать эти кризисы, - соответственно, лирический, логический, драматический, эпический. Идеальный текстовый редактор должен быть способен автоматически проводить статобработку текстов и распознавать соотношение хотя бы этих четырех базовых стилей, с тем чтобы автор мог оценивать стиль своего изложения на предмет его соответствия рассматриваемой проблемной ситуации.
-
В отдельный принцип необходимо вынести положение, прямо не вытекающее из моделей языкового мышления, но отражающее общую тенденцию развития интерфейсов любых программ. Бесспорно, что каждое новое поколение программных комплексов (типа MS Office) все более и более насыщается интеллектуальными функциями. Это утверждение может быть воспринято как банальность - вот, редакторы стали проверять орфографию, потом грамматику, потом предлагать синонимы и т. п. Но с позиций идеала предельно заострим постановку вопроса. Речь идет об оснащении интерфейсов программ, редакторов в том числе, функциями усиления интеллекта пользователей. Это увеличение объема оперативной памяти человека за счет размещения на экране большого числа смысловых единиц и их образного оформления. Это ускорение смысловой обработки текстов путем автоматизации ряда операций - от калькулятора до автоматического реферирования. Это переход от шаблонов текстов к эвристикам - эффективным методам синтеза текстов общего и специального профиля. Данный перечень функций отнюдь не является исчерпывающим и служит иллюстрации положения, что интеллект можно так же усиливать, как рычаг увеличивает прилагаемую силу. (Кстати, подобные программы были подробно описаны на сайте «СофтТерры» в статье «Усилители интеллекта - жемчужины в море утилит»)
Итак, идеальный текстовый редактор обязан оперировать как минимум двумя взаимосвязанными семантическими полями (планом содержания и планом выражения), подключать стандартные или созданные автором справочники (описания темы), автоматически проводить диагностику стиля. Интерфейс этого редактора должен быть насыщен функциями усиления интеллекта пользователя.
На этом можно было бы закончить настоящую заметку, но чтобы не выглядеть безответственным резонером, выдвигающим непомерные требования к работягам-программерам (в своем почтении к ним я уже объяснялся), обозначу возможные способы подтягивания современного уровня программ к идеалу и сопоставлю их с уже имеющимися прецедентами.
Работа со «смысловыми срезами»
Дайте пользователю возможность производить накопительную загрузку файлов. В этом режиме меню «Открыть» мы можем путешествовать по директориям и выбирать файлы, текст которых добавляется в накопительное окно (фактически создается новый файл, с которым работает редактор).
Когда файлы загружены, нужно иметь возможность произвести выборку предложений или абзацев, содержащих заданное ключевое слово (либо корень слова, либо словосочетание, либо варианты словосочетаний). Эта выборка открывается в дополнительном окне редактора, ее можно редактировать и сохранять в отдельный файл. Если выборка неудачна, то вспомогательное окно закрывается и производится новая выборка…
Работа с «картой смыслов»
Текстовый файл дополняется образом (из графического файла, из редактора блок-схем, из чертежика, набрасываемого пользователем), на который можно наносить метки - числа или слова, несущие гиперссылки к абзацам текста. При этом активизация той или иной метки ведет к появлению в параллельном экране соответствующего абзаца и следующего за ним текста. Частным случаем образа является морфологическая таблица Цвикки, используемая как эвристический прием в изобретательстве.
Что это дает? ГИГАНТСКИЕ возможности. Первое - восполнение смыслов. Если образ правильно составлен и текст правильно размечен, то на карте вы видите не только все содержание текста, но и потенциально возможное, но нереализованное поле смыслов (на этом зиждется эвристический эффект морфологической таблицы). Второе - включение образного мышления при работе с текстами. Хочу подчеркнуть: «карта смыслов» - это не иллюстрация, а полноценный партнер текста. Автор ли при написании, читатель ли при проработке текста - и тот и другой получают дополнительный инструмент фиксации и развития мысли.
Единственный пример, который удалось найти в этой области (ау, кто еще знает?), - «Локатор» в программе «Лоцман» 3.0.
Работа с «конфигуратором»
Текстовый файл при работе в режиме «конфигуратора» (термин, введенный В. А. Лефевром в конце 60-х годов) представляет собой многооконный документ, в котором смысловые единицы в различных окнах связаны гипертекстовыми ссылками. При этом желательно, чтобы пользователь мог открывать на экране одновременно несколько окон и при помещении курсора в помеченный абзац (либо при выделении метки, если в данном окне открыта схема или рисунок) во всех открытых окнах появлялись абзацы, связанные гиперссылками с помеченным, либо подсвечивались метки, к которым ведут гиперссылки от абзаца.
Режим конфигуратора позволяет реализовать массу интереснейших методик:
-
Мы получаем возможность работать над текстом в режиме диалога с самим собой или даже полилога, что существенно усиливает творческие способности.
-
Читатель может концентрировать содержание сразу по нескольким задачам, сортировать хвалебные и ругательные реплики, не теряя при этом связи с контекстом.
-
Загрузив в окна несколько источников и устанавливая смысловые связи между фрагментами текстов, мы получаем инструмент анализа семантических пространств текстов для синтеза интегрального смысла. При этом в некоторых окнах могут находиться «карты смысла», что облегчает синтез.
-
Конфигуратор дает пользователю виртуальную среду, в которой тот сможет разместить свои абстрактные идеи и идеальные образы, чтобы затем насыщать их конкретным материалом. Метод предельной концентрации ресурсов Сыроежина или знаменитый в философии со времен Гегеля метод восхождения от абстрактного к конкретному - песни из этого концерта.
Завершить обзор хотел бы пожеланием успехов «кружевницам» и призывом: поле вспахано - пора сеять… Готов поучаствовать в обсуждении ТЗ на подобные программы и обмене действующими образцами.
Полную версию статьи под названием «Идеальные программы» вы сможете прочитать на сайте «СофтТерры» по адресу www.softerra.ru/review/util/6714.