Степан Митькин писал(а):
Если я правильно понял концепцию ДРАКОН-конструктора, она такова:
1) В каждый момент времени на листе находится правильная ДРАКОН схема.
2) Действия, разрешённые конструктором, приводят к изменённой, но тоже правильной ДРАКОН-схеме.
Это не концепция ДРАКОН-конструктора, а транзакция редактирования, до и после которой схема должна находиться в целостном (и правильном) состоянии.
Степан Митькин писал(а):
1) В идеальном редакторе я должен придумать последовательность шагов, которые приведут схему из точки А в точку Б. Это тяжёлый умственный труд.
По моим оценкам, в среде Тышова до 70% ресурсов отнимает
Степан Митькин писал(а):
2) В графическом, свободном редакторе думать не надо. Можно просто передвинуть иконы туда, куда нужно.
Если при этом разрываются связи линий с блоками (как было в тех версиях, которые я смотрел), то это ХУЖЕ текстового редактора (не говоря уж о среде Тышова). В тексте хотя бы порядок сохраняется всегда, а тут периодически восстанавливать надо.
Выводы:
1) если редактор не поддерживает транзакции редактирования, которые не могут быть завершены с нарушением синтаксиса - это плохой редактор;
2) если редактор поддерживает транзакции редактирования, которые обеспечивают прозрачное для пользователя сохранение (преобразование) семантики, это очень хороший редактор.
Вашу среду пока можно дисквалифицировать по п.1 - нарушить синтаксис легко простым перетаскиванием элементов.
Среда Тышова удовлетворяет п.1, но не п.2.
Может показаться, что п.1 среда Тышова тоже не выполняет, поскольку часто бывают глюки при перетаскивании линий - сбоит автоматическая разводка, приходится исправлять вручную. Однако синтаксис при этих глюках не нарушается!
П.2 частично выполняется средой Тышова. Например, рокировка в развилке удобно изменяет форму представления, сохраняя семантику. Но в чуть более сложных случаях, чем пара полностью вложенных развилок, подобное преобразование становится невозможным (или, по крайней мере, требующим пересечений).
Вопрос, поднятый Эдуардом (о переносе петли цикла), вообще говоря, относится к п.2.
Человек, желающий перенести петлю, может сделать это тремя путями:
а) внести кусок кода в тело цикла (или вынести оттуда);
б) переместить петлю;
в) всё разобрать и собрать заново (как в Вашей среде со свободным рисованием)
Очевидно, что вариант (в) рассматривать нет смысла, а варианты (а) и (б) топологически эквивалентны. Но тут я соглашусь с Паронджановым, что методически верно будет ставить задачу именно в формулировке (а)
Соответственно, и редактор должен если не навязывать, то поощрять вариант (а)...