из переписки Владимира Паронджанова и Геннадия Тышова.
Уважаемый Геннадий Тышов!
Вы сделали великое дело. Создали дракон-редактор. И смело показали
его в открытом доступе. Вы сделали это ПЕРВЫМ. Огромное Вам спасибо.
Благодаря Вам появилась возможность превратить Дракон из туманной
абстракции в конкретный факт. Попробовать его на зуб. Пощупать руками.
Попинать ногами. Более тщательно выявить его недостатки. И обрушить
на него новую волну критики. А критика — это величайшая ценность,
которая позволяет двинуть дело вперед.
Ваш редактор в некоторых отношениях ПРЕВОСХОДИТ наш редактор.
Ваш редактор имеет БОЛЕЕ РАЗВИТУЮ СИСТЕМУ РАБОТЫ С УЗЛА-
МИ И ЛИНИЯМИ.
У нашего, конечно, тоже есть достоинства — он полностью отработан,
вылизан и работает, как часы. Но это мелочь.
По изложенным выше причинам я бы не хотел сейчас критиковать
Ваш редактор. Он заслуживает благодарности и похвалы, а не критики.
Но есть одно замечание, которое мне хотелось бы высказать уже сейчас.
Отвечая Александру Ильину, Вы сказали (Пятница, 18 Апрель, 2008 21:42):
Цитата:
«Вы успешно осваиваете Дракон-редактор. Надо освоить объеди-
нение линий, икона "Конец" должна находиться на одной вертикали
(шампуре) с заголовком».
Конечно, Вы правы. Правило шампура — важное правило языка Дракон.
И его, конечно, надо соблюдать.
Однако здесь есть одно «но». Причем очень важное.
Александр Ильин — это ЦАРЬ. Не царское это дело — помнить и
соблюдать дурацкие правила. ЦАРЬ должен МЫСЛИТЬ. А помнить и
соблюдать правила должен НЕГР. Негром является дракон-редактор.
Задача состоит в том, чтобы воспитать такого негра. Беда в том, что
ваш негр — большой либерал. Он дает царю слишком много свободы.
Позволяет ему делать явные глупости. В результате царь оказывается
в неудобном положении. Это плохо. Это неуважение к царю. Потому
что царь не должен ошибаться. Ведь он — царь. Цари не ошибаются.Негр должен быть не либералом, а цербером. Допустим, царь по забывчи-
вости или по другой причине собирается совершить ошибку. Цербер
должен в зародыше пресекать такие попытки. То есть полностью исклю-
чать возможность ошибочных действий (ошибок графического синтаксиса).
В частности, любые попытки царя нарушить «правило шампура» НЕ ДОЛЖНЫ
исполняться. Независимо от того, что хочет или не хочет царь, правило
шампура должно соблюдаться АВТОМАТИЧЕСКИ.
К сожалению, для примитива Ваш редактор эту задачу не решает. А он
обязан ее решать.
Ни в коем случае нельзя загружать ЦАРЯ подобной черновой работой.
Повторю еще раз: не царское это дело! Надо создать для царя по-на-
стоящему ЦАРСКИЕ условия. То есть обеспечить для него макси-
мальный интеллектуальный комфорт.
Таким образом, либерализм вашего негра уменьшает степень автома-
тизации работы пользователя. Что, конечно, плохо.
Это с одной стороны. А с другой, либерализм вашего негра — большое
достоинство. Например, Илья Ермаков хочет разместить элементы так,
как ему нужно для наглядности. Негр не повинуется — Илья недоволен.
Цитирую (Илья Ермаков Пятница, 18 Апрель, 2008 21:00):
Цитата:
«Позиции элементов не сохраняются (не могу выровнять опера-
торы в разных ветках относительно друг друга — всё равно сбрасыва-
ются)».
Илья прав — негр должен исполнять РАЗУМНЫЕ приказы царя.
Так что задача существенно усложняется: с одной стороны негр
должен быть цербером, с другой — либералом. Это не так просто.
Можно ли этого добиться? Полагаю, да. Но как это сделать?
Рискуя ошибиться, изложу свое понимание проблемы. In my
humble opinion, решение состоит в следующем. Редактор
должен работать в двух режимах Назовем их:
• цербер-режим,
• либерал-режим.
На первом этапе по умолчанию выбирается цербер-режим.
В чем его суть? Редактор работает как цербер-автомат.
Либерализм категорически запрещен. Шаг налево, шаг
направо — расстрел. На этом этапе пользователю запре-
щено работать с узлами и линиями.
Но! Это вовсе не значит, что каких-то узлов и линий не будет.
Вовсе нет. В цербер-режиме формируется ПОЛНОСТЬЮ
ЗАКОНЧЕННАЯ дракон-схема Которая полностью соответ-
ствует правилам языка Дракон, описанным в моей
книге.
Если речь идет о программировании, формируется ПОЛНО-
СТЬЮ ЗАКОНЧЕННЫЙ код программы. (Например, в том
смысле, как это делает Александр Ильин).
В конце исполнения цербер-режима формируется логически
правильная, но, возможно, недостаточно удобная дракон-
схема. Которую, надо подправить вручную с помощью
дракон-редактора. Например, сделать некоторые предус-
мотренные у Тышова операции с узлами и линиями.
Чтобы сделать схему «покрасивее», чем это сделал цербер.
Или, например, расположить элементы так, как хочет Илья
Ермаков.
Для этой цели следует перейти в либерал-режим.
В либерал-режиме изменяется (улучшается) только графика.
Алгоритм и программный код на выходе редактора НЕ МОГУТ
ИЗМЕНЯТЬСЯ Такие изменения блокируются.
Цитата:
Иными словами, в либерал-режиме разрешаются только
косметические улучшения графики, которые никак не влияют
на алгоритм и программный код.
Они (алгоритм или код) остаются инвариантом относительно
проводимых графических преобразований.
Сказанное мною следует воспринимать с осторожностью по
следующим причинам.
1. Геннадий Тышов выбрал непривычный для меня алгоритм
работы дракон-редактора. Анализируя этот новый для меня
стиль, я мог что-то не понять и ошибиться в суждениях.
2. Наш редактор работает только в цербер-режиме. Он не умеет
елать либерал-операции.
3. В моей книге описан только цербер-режим работы дракон-
редактора. В ней, насколько я помню, ничего не говорится о
либерал-операциях (в явном виде).
4. Я давно мечтал о либерал-операциях, но по разным при-
чинам мне неудалось добиться их реализации в нашем
редакторе.
5. Поэтому мои рассуждения о либерал-операциях не опи-
раются на опыт практической работы. И следовательно,
могут содержать ошибки.
6. Геннадий Тышов продемонстрировал, что его редактор
умеет выполнять некоторые либерал операции. Этот неожи-
данный для меня факт является воплощением моей старин-
ной мечты. Но Тышов заплатил за либерализацию
неоправданно высокую цену — он ухудшил характеристики
цербер-режима. В результате этого некоторые операции,
которые должны выполняться автома-
тически, возлагаются на пользователя, что провоцирует
ошибки.
7. Терминологию я выдумывал на ходу. Извините, если
коряво получилось.