Владимир Паронджанов писал(а):
http://www.osp.ru/os/2004/01/183824/
Цитата:
Графика или текст: какой язык нужен программисту?
Интерес к графическим средствам программирования объясняется
распространенным мнением о безусловной предпочтительности графики
для отображения информации.
..............................
..............................
Интерес к графическим средствам программирования объясняется распространенным мнением
о безусловной предпочтительности графики для отображения информации.
Действительно, порой графика дает неплохие результаты,
однако в ряде случаев она явно проигрывает обычной текстовой записи.
Какому средству отдать предпочтение в конкретном случае?
Большинство программистов считает, что графическая форма представления информации предпочтительнее любой другой.
На рынке появляются разнообразные языки визуального программирования.
.....................
.....................
В качестве эпитетов для графических средств используются слова
«дружественный», «интуитивно понятный», «простой», «привлекательный».
Часто графика позиционируется как прогрессивная альтернатива «устаревшей» текстовой форме представления.
-----------------------------------------
-----------------------------------------
Однако при попытках найти строгое теоретическое или экспериментальное обоснование подобным заявлениям
выявляются крайне нелицеприятные для графики факты.
Ни теория, ни эксперимент не позволяют говорить
о несомненном превосходстве графической формы представления алгоритмов.
Более того, специалисты по эргономике утверждают:
нередки случаи, когда графическая форма записи менее понятна, чем обычная текстовая.
Классический пример, демонстрирующий неоднозначность работы с графикой,
был выявлен при анализе графических языков LabView [1].
Далее излагается следующая возможная точка зрения, имеющая право на существование
(в некоторых достаточно широких условиях - не безграничных).
---------------------------------------
Если исходить из альтернативной логики "
Или ... Или ..." или, точнее, "
Либо ... Либо ...": "либо графика либо текст",
то можно спорить с переменным успехом до бесконечности - что лучше?
В разных условиях будут разные преимущества того или этого,
в некоторых условиях будут взаимно-дополнительные достоинства обоих видов отображения
(и их целесообразно применять совместно),
а в некоторых - недостатки обоих видов, и желательно иметь что-то еще.
-----------------------------------------------------
Но есть возможность работать в логике "
И ... И ...":
использовать (в общем случае) и то и другое, а также, возможно, третье и т.д..
В общем случае для решения задач алгоритмизации (и программирования, как машинной алгоритмизации)
необходимо иметь в наличии разные алгоритмические методы и средства (указанные и другие):
для выборочного или совместного применения - в разных постоянных или переменных условиях.
Разные, даже функционально полностью эквивалентные и взаимозаменяемые средства
(с точки зрения формального "механического" исполнения - "тупым" автоматом),
всегда имеют дополнительные свойства и отличия.
Они могут буть предпочтительнее для решения разных проблем и аспектов понимания и объяснения и т.п.
(для не тупого гуманоидного исполнителя, технического писателя или читателя):
более
выразительные для отображения разных смыслов,
которых всегда очень много в описании последовательных и, особенно, параллельных процессов, алгоритмов и программ.
Например,
сложная структура параллельных процессов, алгоритмов и программ (со сложными системами связей по управлению и по данным)
хорошо
в явном виде отображается на двухмерной графике - блок-схемах, временных диаграммах и т.п.
(приспособленных к этому).
Но она
кодируется одномерными линейными исходными текстами,
представляющими собой, по существу, большие
головоломки(понятные только автору, и то - может быть,
поскольку он полагается на формальную отладку).
-----------------------
Далее полезно принять предельно обобщенную интерпретацию термина "текст" типа:
текст - это
любая система знаков (любой природы), взаимосвязанных
общим смыслом.
В данной интерпретации
тексты алгоритмов могут быть:
--
вербальные (словесные) тексты - типа устной или письменной речи:
вольные и формализованные;
--
анимационные алгоритмы - типа "делай как я", обучающие демонстрации, танец, ритуал, театральное действие (определенного типа):
в натуре и в мультимедиа;
--
формулы алгоритмов - структурные и функциональные (структурно-функциональные) - предельно сжатые вербальные тексты:
обычные -
одномерные и особые -
двухмерные (!!!) разных синтаксических классов - инфиксные, префиксные, постфиксные, комбинирвоанные формы и т.д. и т.п.;
-- (двухмерные) структурные и функциональные (структурно-функциональные) графические
схемы алгоритмов:
блок-схемы, штрих-схемы, граф-схемы (диаграммы графов алгоритмов) - статические и динамические (мультимедийные);
--
матричные и табличные формы алгоритмов;
--
псевдокоды алгоритмов - ориентированные на исходные коды разных языков программирования:
разных синтаксических классов и лексических групп.
В принципе все это в общем случае необходимо
для решения разных теоретических и практических задач алгоритмизации и программирования.
В общем случае необходимы строго согласованные и взаимно-обратимые
полиморфные представления алгоритмов:
в разных знаковых формах и в разных их разновидностях разного назначения.
Пока (для ясности

) не рассматриваются исходники программ:
в смысле - литерные тексты конечной программной реализации алгоритмов.
-------------------------------
Но как
объять необъятное - такое множественное полиморфное представление
последовательных и, особенно, параллельных алгоритмов.
Продолжение следует.