Уважаемый Владимир Даниелович!
Если брать реальное содержание текста, заключающееся в том, как правила визуального программирования в ДРАКОНе соотносятся с правилами текстового программирования, почему они шире и т.п. - то ошибок нет.
Обосновать и сформулировать можно и по-другому, но ведь это ваш авторский взгляд и ваш ход мыслей.
Вот здесь общая суть текста выражена ясно:
Цитата:
• Несмотря на наличие целого ряда общих признаков, текстовое
и визуальное структурное программирование — существенно разные вещи.
• Традиционное (текстовое) структурное программирование
является, по-видимому, наилучшим решением соответствующей
задачи для традиционного (текстового) программирования.
• Для визуального программирования подобное утверждение
неправомерно. Можно, конечно, тупо перенести правила текстового
структурного программирования на визуальный случай.
Но это не будет хорошим решением.
Касательно связи с Дейкстрой - в тексте неверно расставляются акценты, что приводит только к обострению противоречий, которых на самом деле нет.
Во-первых, дело в том, что "Дисциплина программирования" Дейкстры - это отнюдь не ограничения структурного программирования. Структурное программирование было "выращено" чуть раньше, и как Вы заметили в тексте, усилиями ряда деятелей-современников. "Дисциплина программирования" - это способ рассуждать о свойствах программ, выводить программы из логических рассуждений так, чтобы их правильность была строго доказана. "Дисциплина программирования" Дейкстры вообще не имеет прямого отношения к вопросам, которые затрагиваются в тематике Дракона и структурного программирования. Факт относительно Дейкстры лишь в том, что программы должны быть некоторым образом упорядочены, а затем над ними можно строго рассуждать. Над Дракон-схемой можно точно также рассуждать в соответствии с "Дисциплиной программирования" Дейкстры, как и над классической структурной программой.
Т.е. противоречия, на самом деле, нет - и не стоит его искусственно педалировать.
Вот этот абзац:
Цитата:
Рассмотрим следующий недостаток. Дейкстрианская революция
состоит в том, что Дейкстра ввел строгую дисциплину в анархическом
царстве процедурного программирования. Но любая дисциплина —
это ограничение свободы. Недостаток в том, что Дейкстра ввел
неоправданно жесткие ограничения. Фактически Дейкстра добился
успеха за счет того, что ввел интеллектуальное рабство и заковал
программистов в кандалы.
явно не научный, а эмоциональный - и не несёт особого содержания. ДРАКОН спокойно и эволюционно расширил структурные конструкции образом, удобным для ряда задач и возможным для двумерного программирования (а для текстового - нет). Вот эту спокойность и эволюционность и стоит подчёркивать, иначе у читателя возникают иллюзии о каких-то противоречиях, которых и нет.
И вот этот абзац тоже:
Цитата:
Первые голоса протеста прозвучали в самом начале его мощной
атаки против засилья анархистов. Оппоненты доказывали,
что знаменитый лозунг Дейкстры «оператор goto вреден»
(GOTO statement considered harmful [4]) в ряде случаев не верен.
Со временем им удалось заметно облегчить тюремный режим и
сделать кандалы более легкими. Они, использовали приемы,
которые я называю «заменителями goto» (см. объяснения чуть ниже).
Опять же, ДРАКОН снимает противоречия, окончательно "убивая" попытки реабилитировать GOTO. Теперь и ряд случаев, на которые классического структурного программирования "не хватало", прекрасно выражаются конструкциями двумерного структурного программирования ДРАКОНа.
А доказательства оппонентнов Дейкстры были связаны с более широким неприятием дисциплины. GOTO против процедур, GOTO против нормальных циклов, вообще "вермишель" против структуры - в этих позициях некоторое число задач, в которых реально что-то было "не так" у структурного программирования, просто терялось.
Таким образом, и этот абзац уже оказывается ни к чему:
Цитата:
• Дисциплина программирования Дейкстры является неоправданно
жесткой. Она вводит излишние запреты и лишает программиста
свободы. Образно говоря, она заковывает программиста
в кандалы и затрудняет его работу.
Поясняю, почему: он даёт впечатление, что было сначала чрезмерно сильное и неверное ограничение, а вот теперь "вернулись немного назад". Но ведь это не так! Двумерное структурное идёт вперёд, а не назад. Оно решает некоторые проблемы, вводит некоторые структуры, которые раньше ещё не были придуманы. Ограничения, которые существовали, не были неверными, они просто были для текста единственно возможными. Появилась возможность их снять - и она была Вами реализована. Вот и всё. Ровный, уверенный, логичный шаг вперёд, без каких-то "откатов" и "возвратов". Разве нет?
==========
Ну а по поводу актуальности двумерных структурных конструкций и наоборот, линейного текста.
У меня уже достаточно наблюдений, чтобы про это сказать.
В ряде задач, связанных с "вычислительной" (в широком смысле слова, в том числе системной и т.п.) алгоритмикой текста достаточно, он лаконичнее и удобнее. Просто потому, что программа состоит преимущественно из множества небольших процедур, в какдой из которых в основном 1 цикл и 1-2 условий (часто просто охран).
Сила ДРАКОНа там, где появляется множество принятий решений, много условий, проверок и маршрутов выполнения. А это происходит в том месте, где программирование соприкасается с, так скажем, бизнес-логикой (в широком смысле), "логикой жизни". На этапе спецификации и т.п. В управляющем ПО. И т.п. Здесь разнесение по горизонтали маршрутов, возможность горизонтального и вертикального слияния одинаковых исходов очень кстати. Также и удобнее все маршруты принятия решения иметь единым алгоритмом, нежели искусственно рвать на части-процедуры.
Кроме того, там, где автоматы. Синтаксические задачи - иногда рисую автомат, иногда просится ДРАКОН-схема.